【鸿蒙南向开发】OpenHarmony_LiteOS-M内核移植


📚往期笔录记录🔖:

🔖鸿蒙(HarmonyOS)北向开发知识点记录~
🔖鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
🔖鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
🔖嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
🔖对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
🔖鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
🔖记录一场鸿蒙开发岗位面试经历~
🔖持续更新中……


一、LiteOS-M 介绍

LiteOS-M 内核是面向轻量级物联网操作系统内核。具有小体积、低功耗、高性能的特点。根据与硬件相关性,主要分为以下两大块:

  • 硬件相关层
    • arch 向上提供统一的 HAL 接口。以及 HAL 硬件及平台相关接口的实现
  • 硬件无关层
    • Kernel: LiteOS 内核源码,任务调度、信号量等实现
    • Componets 可选组件,网络、文件系统等模块
    • Utils 工具相关,提供错误处理、调测等能力
    • KAL 内核抽象层。向上层提供标准的操作系统接口

组织结构如下图所示:

源码中目录结构如下:

.
├── arch # 内核指令架构层目录 
├── components # 可选组件
├── drivers # 驱动框架Kconfig 
├── kal # 内核抽象层 
├── kernel # 内核最小功能集支持 
└── utils # 通用工具

二、LitesOS 源码介绍

2.1、硬件无关代码

以下是 LiteOS 的核心功能源码。

./kernel
├── include
│   ├── los_config.h //系统时钟、系统节拍、堆栈、任务、裁剪等配置
└── src
    ├── los_event.c //事件初始化
    ├── los_init.c //内核初始化 内核启动
    ├── los_mux.c //互斥锁
    ├── los_queue.c //队列
    ├── los_sched.c //任务调度
    ├── los_sem.c //信号量
    ├── los_sortlink.c //排序链表
    ├── los_swtmr.c //软件定时器
    ├── los_task.c //任务创建
    ├── los_tick.c //Tick时钟
    └── mm
        ├── los_membox.c //静态内存管理
        └── los_memory.c //动态内存管理

2.2、硬件相关代码 以 cortex-m3 为例

./arch
├── arm 
│   ├── cortex-m3 特定体系架构层
│   │   └── keil
│   │       ├── los_arch_atomic.h # 头文件  与平台相关的arch原子操作定义
│   │       ├── los_arch_context.h # 任务调度初始化
│   │       ├── los_arch_interrupt.h # 头文件 中断接管与处理
│   │       ├── los_arch_timer.h # 头文件  systick底层实现
│   │       ├── los_atomic.S # 与平台相关的arch原子操作实现 对内存的一些操作 没看到使用
│   │       ├── los_context.c # 任务调度初始化
│   │       ├── los_dispatch.S # 中断开关、任务调度等实现
│   │       ├── los_exc.S # 异常向量处理(向量号为负值)
│   │       ├── los_interrupt.c #  中断接管与处理
│   │       ├── los_startup.s # 向量表->复位向量,main入口
│   │       └── los_timer.c # systick底层实现
├── include   通用体系架构层
│   ├── los_arch.h # 定义arch初始化 
│   ├── los_atomic.h  # 定义通用arch原子操作 
│   ├── los_context.h # 定义通用arch上下文切换 
│   ├── los_interrupt.h # 定义通用arch中断 
│   ├── los_mpu.h # 定义通用arch内存保护 
│   └── los_timer.h # 定义通用arch定时器 

三、内核及编译平台介绍

arm 处理器目前在智能手机及平板电脑占有率达到 95%。Cortex-M 系列在中低端嵌入式硬件也占据了绝对的领导地位。以下 arm 家族内核介绍:

Cortex 系列ARM 公司在经典处理器 ARM11 以后的产品改用 Cortex 命名,并分成 A、R 和 M 三类,旨在为各种不同的市场提供服务。Cortex 系列属于 ARMv7 架构,由于应用领域不同,基于 v7 架构的 Cortex 处理器系列所采用的技术也不相同,基于 v7A 的称为 Cortex-A 系列,基于 v7R 的称为 Cortex-R 系列,基于 v7M 的称为 Cortex-M 系列。

  • Application Processors(应用处理器):面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过 1GHz),支持像 Linux,Android,MS Windows 和移动操作系统等完整操作系统需要的内存管理单元(MMU)。 如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择 ARM 应用处理器.
  • Real-time Processors (实时处理器):面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持 MMU,不过通常具有 MPU、Cache 和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如 200MHz 到 >1GHz ),响应延
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值