论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙硬件开发:HarmonyOS下的LiteOS-M
鸿蒙硬件开发:HarmonyOS下的LiteOS-M
惊雷无声
金牌会员
|
2022-6-26 09:43:14
|
显示全部楼层
|
阅读模式
楼主
主题
985
|
帖子
985
|
积分
2955
前言
先来看看HarmonyOS的技术架构:
HarmonyOS当前分为以下几种系统类型:轻量系统 、小型系统、标准系统。针对不同量级的系统,分别使用了不同形态的内核,在轻量系统上,可以选择LiteOS-M;在小型系统和标准系统上,可以选用LiteOS-A;在标准系统上,可以选用Linux。
总的来说,在轻小型系统中,HarmonyOS所使用的内核为LiteOS,在标准系统中使用Linux。
而目前Huawei LiteOS支持多种芯片架构,如Cortex-M series、Cortex-R series、Cortex-A series等。LiteOS有两个应用方向,分别是LiteOS-M和LiteOS-A。
LiteOS-M适用于轻量级的芯片架构,面向的MCU一般是百K级内存,例如cortex-m、riscv32;而LiteOS-A则适用于小型的芯片架构,面向设备一般是M级内存,例如cortex-a。我使用的hi3861v100,芯片架构为riscv32,所适配的就是LiteOS-M内核。
这是官方文档中的一段描述:
所以接下来要学习的暂时是LiteOS-M。详见
HarmonyOS/文档/指南/入门
。
整体框架
首先看看LiteOS-M的内核架构图。可以看到应用于轻量级内核的LiteOS-M整体的架构非常简单,底层支持的内核目前只有Cortex-M和RISC-V系列,在此之上抽象出统一的硬件架构。以该硬件架构为基础,加入OS内核和拓展模块,再继续将这两部分抽象出来,适配到CMSIS和POSIX两个标准上,这样在应用层所编写的程序,就可以具有良好的移植性和可拓展性。
那么这个架构在程序中是如何体现的?上一篇
鸿蒙硬件开发:DevEco Device Tool V2.1正式版以及windows平台编译链的更新
中,已经下载了HarmonyOS的源码并成功运行了一个程序。根据这个工程的目录结构和内容来分析一下。
可以看到有一个kernel文件夹,其中存放着的就是LiteOS的两个分支。
liteos_m分支的目录结构如下:
在README中可以看到对各个文件夹功能的描述。
├── components # 可选组件
│ ├── cppsupport # C++支持
│ └── cpup # CPUP功能
├── kal # 内核抽象层
│ ├── cmsis # cmsis标准接口支持
│ └── posix # posix标准接口支持
├── kernel # 内核最小功能集支持
│ ├── arch # 内核指令架构层代码
│ │ ├── arm # arm32架构的代码
│ │ └── include # 对外接口存放目录
│ ├── include # 对外接口存放目录
│ └── src # 内核最小功能集源码
├── targets # 板级工程目录
├── utils # 通用公共目录
那么根据上方的LiteOS-M架构图,一层一层分析。
硬件架构抽象层
姑且这么叫。在官网可以看到对这部分的定义。可以看到现有的工程已经对特定的架构进行了适配支持。
那么在文件夹中查看,可以看到
/kernel/liteos_m/kernel/arch
目录下对risc-v和arm两种架构的实现。
risc-v中实现了riscv32架构。
而arm中实现了四种cortex架构。
可以看到这些架构都按照上图的命名规则进行了实现。那么接下来的OS内核的实现就可以通过这个统一的接口来对底层的硬件内核进行操作,从而在OS层实现了对硬件架构的屏蔽作用。
OS层
还是姑且这么叫吧,我随便起的
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
惊雷无声
金牌会员
这个人很懒什么都没写!
楼主热帖
基于 Sealos 的镜像构建能力,快速部署 ...
记一次实战 Shiro反序列化内网上线 ...
蚂蚁金服杨军:蚂蚁数据分析平台的演进 ...
超融合走向红海,下一代超融合是新蓝海 ...
Linux之iptables(NAT表)——实验篇 ...
联合评测 DapuStor Roealsen5 NVMe SSD ...
【学习笔记】WPF-02:XMAL基础 ...
Neo4j
学习TraceLogging事件,使用ETW记录, ...
1亿条数据批量插入 MySQL,哪种方式最 ...
标签云
运维
CIO
存储
服务器
浏览过的版块
Nosql
移动端开发
前端开发
程序人生
快速回复
返回顶部
返回列表