diff --git a/README.md b/README.md
index 3408294d..8806b76f 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@
- [Directory Structure](#section161941989596)
- [Constraints](#section119744591305)
- [Usage](#section3732185231214)
+- [Contribution](#section1371123476307)
- [Repositories Involved](#section1371113476307)
## Introduction
@@ -21,24 +22,46 @@ The directory structure is as follows. For more details, see [arch_spec.md](arch
```
/kernel/liteos_m
+├── arch # Code of the kernel instruction architecture layer
+│ ├── arm # Code of the ARM32 architecture
+│ │ ├── arm9 # Code of the ARM9 architecture
+│ │ ├── cortex-m3 # Code of the cortex-m3 architecture
+│ │ ├── cortex-m33 # Code of the cortex-m33 architecture
+│ │ ├── cortex-m4 # Code of the cortex-m4 architecture
+│ │ ├── cortex-m7 # Code of the cortex-m7 architecture
+│ │ └── include # Arm architecture public header file directory
+│ ├── csky # Code of the csky architecture
+│ │ └── v2 # Code of the csky v2 architecture
+│ ├── include # APIs exposed externally
+│ ├── risc-v # Code of the risc-v architecture
+│ │ ├── nuclei # Code of the nuclei system technology risc-v architecture
+│ │ └── riscv32 # Code of the risc-v architecture
+│ └── xtensa # Code of the xtensa architecture
+│ └── lx6 # Code of the lx6 xtensa architecture
├── components # Optional components
│ ├── backtrace # Backtrace support
│ ├── cppsupport # C++ support
-│ └── cpup # CPU percent (CPUP)
+│ ├── cpup # CPU percent (CPUP)
│ ├── dynlink # Dynamic loading and linking
│ ├── exchook # Exception hooks
│ ├── fs # File systems
-│ └── net # Networking functions
+│ ├── lmk # Low memory killer functions
+│ ├── lms # Lite memory sanitizer functions
+│ ├── net # Networking functions
+│ ├── power # Power management
+│ ├── shell # Shell function
+│ ├── fs # File systems
+│ └── trace # Trace tool
+├── drivers # driver Kconfig
├── kal # Kernel abstraction layer
│ ├── cmsis # CMSIS API support
│ └── posix # POSIX API support
├── kernel # Minimum kernel function set
-│ ├── arch # Code of the kernel instruction architecture layer
-│ │ ├── arm # Code of the Arm32 architecture
-│ │ └── include # APIs exposed externally
│ ├── include # APIs exposed externally
│ └── src # Source code of the minimum kernel function set
├── targets # Board-level projects
+├── testsuites # Kernel testsuites
+├── tools # Kernel tools
├── utils # Common directory
```
@@ -46,62 +69,27 @@ The directory structure is as follows. For more details, see [arch_spec.md](arch
OpenHarmony LiteOS-M supports only C and C++.
-It applies only to Cortex-M3, Cortex-M4, Cortex-M7, and RISC-V chip architectures.
+Applicable architecture: See the directory structure for the arch layer.
As for dynamic loading module, the shared library to be loaded needs signature verification or source restriction to ensure security.
## Usage
-The OpenHarmony LiteOS-M kernel build system is a modular build system based on Generate Ninja (GN) and Ninja. It supports module-based configuration, tailoring, and assembling, and helps you build custom products. This document describes how to build a LiteOS-M project based on GN and Ninja. For details about the methods such as GCC+Makefile, IAR, and Keil MDK, visit the community websites.
+The OpenHarmony LiteOS-M kernel build system is a modular build system based on Generate Ninja (GN) and Ninja. It supports module-based configuration, tailoring, and assembling, and helps you build custom products. This document describes how to build a LiteOS-M project based on GN and Ninja. For details about the methods such as GCC+gn, IAR, and Keil MDK, visit the community websites.
### Setting Up the Environment
-Before setting up the environment for a development board, you must set up the basic system environment for OpenHarmony first. The basic system environment includes the OpenHarmony build environment and development environment. For details, see [Setting Up Ubuntu Development Environment](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/quick-start/quickstart-lite-env-setup-linux.md). You need to install Python3.7+, GN, Ninja, and hb. For the LiteOS-M kernel, you also need to install the Make build tool and [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads).
+Before setting up the environment for a development board, you must set up the basic system environment for OpenHarmony first. The basic system environment includes the OpenHarmony build environment and development environment. For details, see [Setting Up Development Environment](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/quick-start/quickstart-lite-env-setup.md).
### Obtaining the OpenHarmony Source Code
-Obtain the latest OpenHarmony source code through Git clone on a Linux server. For details about how to obtain the source code, see [Source Code Acquisition](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/get-code/sourcecode-acquire.md). This document assumes that the clone directory is `~/openHarmony` after the complete OpenHarmony repository code is obtained.
+For details about how to obtain the source code, see [Source Code Acquisition](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/get-code/sourcecode-acquire.md). This document assumes that the clone directory is `~/openHarmony` after the complete OpenHarmony repository code is obtained.
-### Obtaining the Source Code of the Sample Project
+### Example projects that are already supported
-The following uses the development board Nucleo-F767Zi as an example to describe how to build and run the `OpenHarmony LiteOS-M` kernel project. In the local directory, run the following command to clone the sample code:
+Qemu simulator: `arm_mps2_an386、esp32、riscv32_virt、SmartL_E802`, For details about how to compile and run, see [qemu guide](https://gitee.com/openharmony/device_qemu)
-```
-git clone https://gitee.com/harylee/nucleo_f767zi.git
-```
-
-The code is cloned to **~/nucleo_f767zi**. Run the following commands to copy the **device** and **vendor** directories in the code directory to the corresponding directories of the **openHarmony** project:
-
-```
-mkdir ~/openHarmony/device/st
-
-cp -r ~/nucleo_f767zi/device/st/nucleo_f767zi ~/openHarmony/device/st/nucleo_f767zi
-
-chmod +x ~/openHarmony/device/st/nucleo_f767zi/build.sh
-
-cp -r ~/nucleo_f767zi/vendor/st ~/openHarmony/vendor/st
-```
-
-For details about the directory of the sample code, see [Board-Level Directory Specifications](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/porting/porting-chip-board-overview.md). If you need to port the development board, see [Board-Level OS Porting](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/porting/porting-chip-board.md).
-
-### Building and Running
-
-Before the build, configure the **bin** directory of the cross compilation toolchain in the **PATH** environment variable or set **board_toolchain_path** in the **device/st/nucleo_f767zi/liteos_m/config.gni** file to the **bin** directory of the cross compilation toolchain.
-In the **OpenHarmony** root directory, run the **hb set** command to set the product path, select **nucleo_f767zi**, and run the **hb build** command to start the build.
-
-Example:
-
-```
-user@dev:~/OpenHarmony$ hb set
-
-[OHOS INFO] Input code path: # Press Enter and select nucleo_f767zi.
-
-OHOS Which product do you need? nucleo_f767zi@st
-
-user@dev:~/OpenHarmony$ hb build
-```
-
-The image is generated in the **~/openHarmony/out/nucleo_f767zi/** directory. You can download the image file to the board by using the STM32 ST-LINK Utility software and run the image.
+Bestechnic: `bes2600`, For details about how to compile and run, see [Bestechnic developer guide](https://gitee.com/openharmony/device_soc_bestechnic)
### Community Porting Project Links
@@ -125,6 +113,20 @@ The LiteOS-M kernel porting projects for specific development boards are provide
This repository provides the project code for porting the OpenHarmony LiteOS-M kernel to support the Nucleo-F767ZI development board. The code supports build in Ninja, GCC, and IAR modes.
+## Contribution
+
+[How to involve](https://gitee.com/openharmony/docs/blob/HEAD/en/contribute/contribution.md)
+
+[Commit message spec](https://gitee.com/openharmony/kernel_liteos_m/wikis/Commit%20message%E8%A7%84%E8%8C%83)
+
+[Liteos-M kernel coding style guide](https://gitee.com/openharmony/kernel_liteos_m/wikis/OpenHarmony%E8%BD%BB%E5%86%85%E6%A0%B8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83)
+
+How to contribute a chip based on Liteos-M kernel:
+
+[ Board-Level Directory Specifications](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/porting/porting-chip-board-overview.md)
+
+[Mini System SoC Porting Guide](https://gitee.com/openharmony/docs/blob/HEAD/en/device-dev/porting/porting-minichip.md)
+
## Repositories Involved
[Kernel Subsystem](https://gitee.com/openharmony/docs/blob/HEAD/en/readme/kernel-subsystem.md)
diff --git a/README_zh.md b/README_zh.md
index 48d53a34..8fff9f9f 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -4,6 +4,7 @@
- [目录](#section161941989596)
- [约束](#section119744591305)
- [使用说明](#section3732185231214)
+- [贡献](#section1371123476307)
- [相关仓](#section1371113476307)
## 简介
@@ -19,24 +20,45 @@ OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系
```
/kernel/liteos_m
+├── arch # 内核指令架构层目录
+│ ├── arm # arm 架构代码
+│ │ ├── arm9 # arm9 架构代码
+│ │ ├── cortex-m3 # cortex-m3架构代码
+│ │ ├── cortex-m33 # cortex-m33架构代码
+│ │ ├── cortex-m4 # cortex-m4架构代码
+│ │ ├── cortex-m7 # cortex-m7架构代码
+│ │ └── include # arm架构公共头文件目录
+│ ├── csky # csky架构代码
+│ │ └── v2 # csky v2架构代码
+│ ├── include # 架构层对外接口存放目录
+│ ├── risc-v # risc-v 架构
+│ │ ├── nuclei # 芯来科技risc-v架构代码
+│ │ └── riscv32 # risc-v官方通用架构代码
+│ └── xtensa # xtensa 架构代码
+│ └── lx6 # xtensa lx6架构代码
├── components # 可选组件
-│ ├── backtrace # 回溯栈支持
+│ ├── backtrace # 栈回溯功能
│ ├── cppsupport # C++支持
│ ├── cpup # CPUP功能
│ ├── dynlink # 动态加载与链接
│ ├── exchook # 异常钩子
│ ├── fs # 文件系统
-│ └── net # Network功能
+│ ├── lmk # Low memory killer 机制
+│ ├── lms # Lite memory sanitizer 机制
+│ ├── net # Network功能
+│ ├── power # 低功耗管理
+│ ├── shell # shell功能
+│ └── trace # trace 工具
+├── drivers # 驱动框架Kconfig
├── kal # 内核抽象层
│ ├── cmsis # cmsis标准接口支持
│ └── posix # posix标准接口支持
├── kernel # 内核最小功能集支持
-│ ├── arch # 内核指令架构层代码
-│ │ ├── arm # arm32架构的代码
-│ │ └── include # 对外接口存放目录
│ ├── include # 对外接口存放目录
│ └── src # 内核最小功能集源码
├── targets # 板级工程目录
+├── testsuites # 内核测试用例
+├── tools # 内核工具
├── utils # 通用公共目录
```
@@ -44,60 +66,28 @@ OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系
开发语言:C/C++;
-适用架构:当前只适用于cortex-m3、cortex-m4、cortex-m7、risc-v芯片架构。
+适用架构:详见目录结构arch层。
动态加载模块:待加载的共享库需要验签或者限制来源,确保安全性。
## 使用说明
-OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。本文主要介绍如何基于gn和ninja编译LiteOS-M工程,GCC+Makefile、IAR、Keil MDK等编译方式可以参考社区爱好者贡献的站点。
+OpenHarmony
+LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。本文主要介绍如何基于gn和ninja编译LiteOS-M工程,GCC+gn、IAR、Keil MDK等编译方式可以参考社区爱好者贡献的站点。
### 搭建系统基础环境
-在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境,详细介绍请参考官方站点[Ubuntu编译环境准备](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-linux.md)。开发者需要根据环境搭建文档,完成下述软件的安装:Python3.7+、gn、ninja、hb。对于LiteOS-M内核,还需要安装Make构建工具和[ARM GCC编译工具链](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)。
+在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境,详细介绍请参考官方站点[开发环境准备](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md)。开发者需要根据环境搭建文档完成环境搭建。
### 获取OpenHarmony源码
-开发者需要在Linux服务器上通过Git克隆获取OpenHarmony最新源码,详细的源码获取方式,请见[源码获取](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/get-code/sourcecode-acquire.md)。获取OpenHarmony完整仓代码后,假设克隆目录为`~/openHarmony`。
+详细的源码获取方式,请见[源码获取](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/get-code/sourcecode-acquire.md)。获取OpenHarmony完整仓代码后,假设克隆目录为`~/openHarmony`。
-### 获取示例工程源码
+### 已支持的示例工程
-以开发板Nucleo-F767Zi为例,演示如何编译运行`OpenHarmony LiteOS-M`内核工程。在本地目录,执行下述命令克隆示例代码。
+Qemu模拟器: `arm_mps2_an386、esp32、riscv32_virt、SmartL_E802`, 编译运行详见: [Qemu指导](https://gitee.com/openharmony/device_qemu)
-```
-git clone https://gitee.com/harylee/nucleo_f767zi.git
-```
-
-假设克隆到的代码目录为`~/nucleo_f767zi`。 执行如下命令把代码目录的`device`、`vendor`目录复制到`openHarmony`工程的相应目录。
-
-```
-mkdir ~/openHarmony/device/st
-
-cp -r ~/nucleo_f767zi/device/st/nucleo_f767zi ~/openHarmony/device/st/nucleo_f767zi
-
-chmod +x ~/openHarmony/device/st/nucleo_f767zi/build.sh
-
-cp -r ~/nucleo_f767zi/vendor/st ~/openHarmony/vendor/st
-```
-
-关于示例代码目录的说明,可以参考资料站点[板级目录规范](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/porting/porting-chip-board-overview.md)。如果需要自行移植开发板,请参考[板级系统移植](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/porting/porting-chip-board.md)。
-
-### 编译运行
-
-编译运行前,交叉编译工具链`bin`目录配置到`PATH`环境变量中或者配置`device/st/nucleo_f767zi/liteos_m/config.gni`文件中`board_toolchain_path`配置项为交叉编译工具链`bin`目录。
-在`OpenHarmony`根目录,执行`hb set`设置产品路径,选择`nucleo_f767zi`产品,然后执行`hb build`开启编译。如下:
-
-```
-user@dev:~/OpenHarmony$ hb set
-
-[OHOS INFO] Input code path: # 直接按回车,然后选择nucleo_f767zi产品即可
-
-OHOS Which product do you need? nucleo_f767zi@st
-
-user@dev:~/OpenHarmony$ hb build
-```
-
-最终的镜像生成在`~/openHarmony/out/nucleo_f767zi/`目录中,通过`STM32 ST-LINK Utility`软件将镜像文件下载至单板查看运行效果。
+恒玄科技: `bes2600`, 编译运行详见: [恒玄开发指导](https://gitee.com/openharmony/device_soc_bestechnic)
### 社区移植工程链接
@@ -121,6 +111,22 @@ LiteOS-M内核移植的具体开发板的工程由社区开发者提供,可以
该仓包含OpenHarmony LiteOS-M内核移植支持`Nucleo-F767ZI`开发板的工程代码,支持Ninja、GCC、IAR等方式进行编译。
+## 贡献
+
+[如何贡献](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md)
+
+[Commit message规范](https://gitee.com/openharmony/kernel_liteos_m/wikis/Commit%20message%E8%A7%84%E8%8C%83)
+
+[Liteos-M 内核编码规范](https://gitee.com/openharmony/kernel_liteos_m/wikis/OpenHarmony%E8%BD%BB%E5%86%85%E6%A0%B8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83)
+
+如何基于Liteos-M内核贡献一款芯片:
+
+[板级目录规范](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/porting/porting-chip-board-overview.md)
+
+[轻量系统芯片移植指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/porting/porting-minichip.md)
+
+[轻量系统芯片移植案例](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/porting/porting-minichip-cases.md)
+
## 相关仓
[内核子系统](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
diff --git a/arch_spec.md b/arch_spec.md
index 86d8b4a1..d63cfca1 100644
--- a/arch_spec.md
+++ b/arch_spec.md
@@ -1,42 +1,61 @@
```
.
+├── arch --- Code of the kernel instruction architecture layer
+│ ├── arm --- ARM32 architecture
+│ │ ├── arm9 --- ARM9 architecture
+│ │ │ └── gcc --- Implementation of the GCC toolchain
+│ │ ├── cortex-m3 --- Cortex-m3 architecture
+│ │ │ └── keil --- Implementation of the keil toolchain
+│ │ ├── cortex-m33 --- Cortex-m33 architecture
+│ │ │ │── gcc --- Implementation of the GCC toolchain
+│ │ │ │ │── NTZ --- Cortex-m33 Non-TrustZone architecture
+│ │ │ │ └── TZ --- Cortex-m33 TrustZone architecture
+│ │ │ └── iar --- Implementation of the IAR toolchain
+│ │ │ │── NTZ --- Cortex-m33 Non-TrustZone architecture
+│ │ │ └── TZ --- Cortex-m33 TrustZone architecture
+│ │ └── cortex-m4 --- Cortex-m4 architecture
+│ │ │ │── gcc --- Implementation of the GCC toolchain
+│ │ │ └── iar --- Implementation of the IAR toolchain
+│ │ └── cortex-m7 --- Cortex-m7 architecture
+│ │ │── gcc --- Implementation of the GCC toolchain
+│ │ └── iar --- Implementation of the IAR toolchain
+│ ├── csky --- csky architecture
+│ │ └── v2 --- csky v2 architecture
+│ │ └── gcc --- Implementation of the GCC toolchain
+│ ├── xtensa --- xtensa architecture
+│ │ └── lx6 --- xtensa lx6 architecture
+│ │ └── gcc --- Implementation of the GCC toolchain
+│ ├── risc-v --- Risc-v architecture
+│ │ ├── nuclei --- Nuclei architecture
+│ │ │ └── gcc --- Implementation of the GCC toolchain
+│ │ └── riscv32 --- Riscv32 architecture
+│ │ └── gcc --- Implementation of the GCC toolchain
+│ └── include
+│ ├── los_arch.h --- Arch initialization
+│ ├── los_atomic.h --- Atomic operations
+│ ├── los_context.h --- Context switch
+│ ├── los_interrupt.h --- Interrupts
+│ ├── los_mpu.h --- Memory protection unit operations
+│ └── los_timer.h --- Timer operations
├── components --- Components available for porting and header files exposed externally
-│ ├── backtrace --- Backtrace
-│ ├── cppsupport --- C++
-│ ├── cpup --- CPUP
-│ ├── dynlink --- Dynamic loader & linker
-│ ├── exchook --- Exception hook
-│ ├── fs --- File System
-│ └── net --- Network
+│ ├── backtrace --- Backtrace support
+│ ├── cppsupport --- C++ support
+│ ├── cpup --- CPU percent (CPUP)
+│ ├── dynlink --- Dynamic loading and linking
+│ ├── exchook --- Exception hooks
+│ ├── fs --- File systems
+│ ├── lmk --- Low memory killer functions
+│ ├── lms --- Lite memory sanitizer functions
+│ ├── net --- Networking functions
+│ ├── power --- Power management
+│ ├── shell --- Shell function
+│ ├── fs --- File systems
+│ └── trace --- Trace tool
+├── drivers --- driver Kconfig
├── kal --- Kernel Abstraction Layer, APIs exposed externally, including CMSIS APIs and part of POSIX APIs
│ ├── cmsis --- CMSIS
│ └── posix --- POSIX
├── kernel --- Code for defining the minimum kernel function set
-│ ├── arch --- Code of the kernel instruction architecture layer
-│ │ ├── arm --- ARM32 architecture
-│ │ │ ├── cortex-m3 --- Cortex-m3 architecture
-│ │ │ │ └── keil --- Implementation of the Keil toolchain
-│ │ │ ├── cortex-m33 --- Cortex-m33 architecture
-│ │ │ │ │── gcc --- Implementation of the GCC toolchain
-│ │ │ │ └── iar --- Implementation of the IAR toolchain
-│ │ │ └── cortex-m4 --- Cortex-m4 architecture
-│ │ │ │ │── gcc --- Implementation of the GCC toolchain
-│ │ │ │ └── iar --- Implementation of the IAR toolchain
-│ │ │ └── cortex-m7 --- Cortex-m7 architecture
-│ │ │ │ │── gcc --- Implementation of the GCC toolchain
-│ │ │ │ └── iar --- Implementation of the IAR toolchain
-│ │ ├── risc-v --- Risc-v architecture
-│ │ │ ├── nuclei --- Nuclei architecture
-│ │ │ │ └── gcc --- Implementation of the GCC toolchain
-│ │ │ └── riscv32 --- Riscv32 architecture
-│ │ │ │ └── gcc --- Implementation of the GCC toolchain
-│ │ └── include
-│ │ ├── los_arch.h --- Arch initialization
-│ │ ├── los_atomic.h --- Atomic operations
-│ │ ├── los_context.h --- Context switch
-│ │ ├── los_interrupt.h --- Interrupts
-│ │ ├── los_mpu.h --- Memory protection unit operations
-│ │ └── los_timer.h --- Timer operations
│ ├── include
│ │ ├── los_config.h --- Configuration parameters
│ │ ├── los_event.h --- Events management
@@ -60,6 +79,8 @@
│ │ └── Src --- Application codes
│ └── riscv_nuclei_gd32vf103_soc_gcc
│ └── riscv_sifive_fe310_gcc
+├── testsuites --- Kernel testsuites
+├── tools --- Kernel tools
└── utils
├── internal
├── BUILD.gn --- Gn build config file
diff --git a/arch_spec_zh.md b/arch_spec_zh.md
index 8cca39a5..93e847e9 100644
--- a/arch_spec_zh.md
+++ b/arch_spec_zh.md
@@ -1,42 +1,60 @@
```
.
+├── arch --- 内核指令架构层代码
+│ ├── arm --- ARM32架构
+│ │ ├── arm9 --- arm9架构
+│ │ │ └── gcc --- gcc 编译工具链实现
+│ │ ├── cortex-m3 --- Cortex-m3架构
+│ │ │ └── keil --- Keil编译工具链实现
+│ │ ├── cortex-m33 --- Cortex-m33架构
+│ │ │ │── gcc --- GCC编译工具链实现
+│ │ │ │ │── NTZ --- Cortex-m33非TrustZone架构实现
+│ │ │ │ └── TZ --- Cortex-m33 TrustZone架构实现
+│ │ │ └── iar --- IAR编译工具链实现
+│ │ │ │── NTZ --- Cortex-m33非TrustZone架构实现
+│ │ │ └── TZ --- Cortex-m33 TrustZone架构实现
+│ │ └── cortex-m4 --- Cortex-m4架构
+│ │ │ │── gcc --- GCC编译工具链实现
+│ │ │ └── iar --- IAR编译工具链实现
+│ │ └── cortex-m7 --- Cortex-m7架构
+│ │ │── gcc --- GCC编译工具链实现
+│ │ └── iar --- IAR编译工具链实现
+│ ├── csky --- csky架构
+│ │ └── v2 --- csky v2架构
+│ │ └── gcc --- GCC编译工具链实现
+│ ├── xtensa --- xtensa架构
+│ │ └── lx6 --- xtensa lx6架构
+│ │ └── gcc --- GCC编译工具链实现
+│ ├── risc-v --- Risc-v架构
+│ │ ├── nuclei --- Nuclei架构
+│ │ │ └── gcc --- GCC编译工具链实现
+│ │ └── riscv32 --- Riscv32架构
+│ │ └── gcc --- GCC编译工具链实现
+│ └── 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定时器
├── components --- 移植可选组件,依赖内核,单独对外提供头文件
-│ ├── backtrace --- 回溯栈支持
-│ ├── cppsupport --- C++支持
-│ ├── cpup --- CPUP功能
-│ ├── dynlink --- 动态加载与链接
-│ ├── exchook --- 异常钩子
-│ ├── fs --- 文件系统
-│ └── net --- 网络功能
+│ ├── backtrace --- 栈回溯功能
+│ ├── cppsupport --- C++支持
+│ ├── cpup --- CPUP功能
+│ ├── dynlink --- 动态加载与链接
+│ ├── exchook --- 异常钩子
+│ ├── fs --- 文件系统
+│ ├── lmk --- Low memory killer 机制
+│ ├── lms --- Lite memory sanitizer 机制
+│ ├── net --- Network功能
+│ ├── power --- 低功耗管理
+│ ├── shell --- shell功能
+│ └── trace --- trace 工具
+├── drivers --- 驱动框架Kconfig
├── kal --- 内核抽象层,提供内核对外接口,当前支持CMSIS接口和部分POSIX接口
│ ├── cmsis --- CMSIS标准支持
│ └── posix --- POSIX标准支持
├── kernel --- 内核最小功能集代码
-│ ├── arch --- 内核指令架构层代码
-│ │ ├── arm --- ARM32架构
-│ │ │ ├── cortex-m3 --- Cortex-m3架构
-│ │ │ │ └── keil --- Keil编译工具链实现
-│ │ │ ├── cortex-m33 --- Cortex-m33架构
-│ │ │ │ │── gcc --- GCC编译工具链实现
-│ │ │ │ └── iar --- IAR编译工具链实现
-│ │ │ └── cortex-m4 --- Cortex-m4架构
-│ │ │ │ │── gcc --- GCC编译工具链实现
-│ │ │ │ └── iar --- IAR编译工具链实现
-│ │ │ └── cortex-m7 --- Cortex-m7架构
-│ │ │ │ │── gcc --- GCC编译工具链实现
-│ │ │ │ └── iar --- IAR编译工具链实现
-│ │ ├── risc-v --- Risc-v架构
-│ │ │ ├── nuclei --- Nuclei架构
-│ │ │ │ └── gcc --- GCC编译工具链实现
-│ │ │ └── riscv32 --- Riscv32架构
-│ │ │ │ └── gcc --- GCC编译工具链实现
-│ │ └── 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定时器
│ ├── include
│ │ ├── los_config.h --- 功能开关和配置参数
│ │ ├── los_event.h --- 事件
@@ -60,6 +78,8 @@
│ │ └── Src --- Application相关代码
│ └── riscv_nuclei_gd32vf103_soc_gcc
│ └── riscv_sifive_fe310_gcc
+├── testsuites --- 内核测试用例
+├── tools --- 内核工具
└── utils
├── internal
├── BUILD.gn --- Gn构建文件