> 文档中心 > 【OpenHarmony】LiteOS-M 源码目录

【OpenHarmony】LiteOS-M 源码目录

文章目录

  • 【OpenHarmony】LiteOS-M 源码目录
    • 一、arch
    • 二、components
    • 三、driver
    • 四、kal
    • 五、kernel
    • 六、target
    • 七、testsuites
    • 八、tools
    • 九、utils

【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

【OpenHarmony】LiteOS-M 源码目录

四、kal

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

请添加图片描述

需要关注两个接口:

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

五、kernel

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

【OpenHarmony】LiteOS-M 源码目录

include 是对外暴露的头文件

src 存放内核源码

请添加图片描述

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

los_event:事件相关代码

los_init:内核初始化相关代码

los_mux:互斥量相关代码

los_queue:队列相关代码

los_sched:线程调度相关代码

los_sem:信号相关代码

los_sortlink:排序链表的操作代码

los_swtmr:内核定时器相关代码

los_task:线程相关操作代码

los_tick:内核时间戳相关代码

六、target

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

【OpenHarmony】LiteOS-M 源码目录

七、testsuites

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

请添加图片描述

八、tools

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

【OpenHarmony】LiteOS-M 源码目录

用来分析工程的内存使用

九、utils

通用公共目录