OpenHarmonyLiteOS-M 源码目录

Posted 嵌入式up笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenHarmonyLiteOS-M 源码目录相关的知识,希望对你有一定的参考价值。

文章目录

【OpenHarmony】LiteOS-M 源码目录

上一节我们简单的分析了一下 LiteOS-A 内核源码的目录,本节我们看一下 LiteOS-M 的内核源码目录,OpenHarmony LiteOS-M 内核本质上就是一个 RTOS,具有实时操作系统的特性,是面向 IoT 领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,开源仓库如下:OpenHarmony / kernel_liteos_m

download 后如下:

下面分析一下目录

一、arch

arch 存放针对芯片架构的代码文件,展开如下

比如 arm 是针对 arm 核架构的代码,目前支持的 arm 架构有如下几个:

以 m4 为例子,点进去可以看到两个文件夹,分别为 gcc 和 iar,gcc 是针对 gcc 编译器的代码,iar 则是正对 iar 编译器的代码

二、components

组件相关目录:

  • backtrace :栈回溯功能,可以在程序运行出问题时,主动把出问题时的调用栈信息打印出来
  • cppsupport:C++支持
  • cpup:CPUP 功能,用于查询系统CPU的占用率
  • dynlink:动态加载与链接
  • exchook:异常钩子,发生异常时调用钩子函数
  • fs:文件系统支持
  • lmk: Low memory killer 机制
  • lms:Lite memory sanitizer 机制
  • net:Network 网络功能
  • power :低功耗管理
  • shell:shell 命令行功能
  • trace:trace 调试工具

三、driver

存放驱动框架 Kconfig

四、kal

内核抽象层,用于提供接口来屏蔽多内核差异,为上层应用提供基础的内核能力,比如提供线程管理、内存管理、文件系统、网络管理、外设管理等功能

需要关注两个接口:

  • cmsis:提供 cmsis 标准接口支持
  • posix:提供 posix 标准接口支持

五、kernel

存放内核基本功能源码,目录如下:

include 是对外暴露的头文件

src 存放内核源码

mm 文件夹存放内存分配代码

los_event:事件相关代码

los_init:内核初始化相关代码

los_mux:互斥量相关代码

los_queue:队列相关代码

los_sched:线程调度相关代码

los_sem:信号相关代码

los_sortlink:排序链表的操作代码

los_swtmr:内核定时器相关代码

los_task:线程相关操作代码

los_tick:内核时间戳相关代码

六、target

存放一些板级别工程支持目录

七、testsuites

存放内核测试案例,如下,各种内核操作的测试样例:

八、tools

存放一些小工具,比如下面的内存分析小脚本

用来分析工程的内存使用

九、utils

通用公共目录

以上是关于OpenHarmonyLiteOS-M 源码目录的主要内容,如果未能解决你的问题,请参考以下文章

OpenHarmonyLiteOS-M内核启动流程

OpenHarmonyLiteOS-M内核启动流程

鸿蒙轻内核源码分析:异常钩子模块系统中断异常,如何转储异常信息

鸿蒙轻内核M核源码分析:中断Hwi

鸿蒙轻内核M核源码分析:中断Hwi

鸿蒙轻内核 M 核源码分析:数据结构之任务排序链表