1.【需求描述】 L0 支持Trace,提供两种工作模式:在线模式、离线缓存模式, 用于按时间线追踪系统事件,如任务切换、中断、ipc等。 2.【方案描述】 (1).在内核模块预置静态代码桩 (2).触发桩后,收集系统上下文信息 (3).离线模式则写入内存,用户可通过dump导出; (4).在线模式通过pipeline对接IDE进行可视化解析和展示; BREAKING CHANGE: 1.新增一系列trace的对外API,位于los_trace.h中. LOS_TRACE_EASY简易插桩 LOS_TRACE标准插桩 LOS_TraceInit配置Trace缓冲区的地址和大小 LOS_TraceStart开启事件记录 LOS_TraceStop停止事件记录 LOS_TraceRecordDump输出Trace缓冲区数据 LOS_TraceRecordGet获取Trace缓冲区的首地址 LOS_TraceReset清除Trace缓冲区中的事件 LOS_TraceEventMaskSet设置事件掩码,仅记录某些模块的事件 LOS_TraceHwiFilterHookReg注册过滤特定中断号事件的钩子函数 Close #I41Y9Y Signed-off-by: LiteOS2021 <dinglu@huawei.com> |
||
|---|---|---|
| .gitee | ||
| components | ||
| figures | ||
| kal | ||
| kernel | ||
| targets | ||
| testsuits | ||
| utils | ||
| .gitignore | ||
| BUILD.gn | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| README_zh.md | ||
| arch_spec.md | ||
| arch_spec_zh.md | ||
| config.gni | ||
README.md
LiteOS Cortex-M
Introduction
The OpenHarmony LiteOS Cortex-M is the kernel designed for the lightweight operating system OS for the Internet of Things IoT field. It features small size, low power consumption, and high performance. In addition, it has a simple code structure, including the minimum kernel function set, kernel abstraction layer, optional components, and project directory, and is divided into the hardware-related and hardware-irrelevant layers. The hardware-related layers provide unified hardware abstraction layer HAL interfaces to improve hardware adaptability. The combination and classification of different compilation toolchains and chip architectures meet the requirements of the Artificial Intelligence of Things AIoT field for rich hardware and compilation toolchains. Figure1 shows the architecture of the OpenHarmony LiteOS Cortex-M kernel.
Figure 1 Architecture of OpenHarmony the LiteOS Cortex-M kernel

Directory Structure
The directory structure is listed as below, for the detailed directories, please refer to arch_spec.md.
/kernel/liteos_m
├── components # Optional components
│ ├── backtrace # Backtrace support
│ ├── cppsupport # C++ support
│ ├── cpup # CPU possession (CPUP)
│ ├── exchook # Exception hook
│ ├── fs # File system
│ └── net # Network support
├── kal # Kernel abstraction layer
│ ├── cmsis # CMSIS-compliant API support
│ └── posix # POSIX API support
├── kernel # Minimum function set support
│ ├── 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 function set of the kernel
├── targets # Board-level projects
├── utils # Common code
Constraints
Programming languages: C and C++
Currently applicable architectures: Cortex-M3, Cortex-M4, Cortex-M7, and RISC-V
Usage
LiteOS Cortex-M provides projects for three chip architectures, which are located in the targets directory. The methods of compiling and using these projects are as follows:
- Cortex-M3:
The kernel/liteos_m/targets/cortex-m3_stm32f103_simulator_keil directory is the Keil project directory created based on the STM32F103 chip architecture. You can download and install Keil development tools from the Internet. To compile the Cortex-M3 project, go to the cortex-m3_stm32f103_simulator_keil/project directory and double-click the los_demo.uvproj file to open the desired project. After the compilation is successful, burn the file to the corresponding board using JLINK or STM32 ST-LINK Utility.
- Cortex-M4:
The kernel/liteos_m/targets/cortex-m4_stm32f429ig_fire-challenger_iar directory is the IAR project directory created based on the STM32F429IG chip architecture. You can download and install IAR development tools from the Internet. To compile the Cortex-M4 project, go to the cortex-m4_stm32f429ig_fire-challenger_iar/project directory and double-click the los_demo.eww file to open the desired project. After the compilation is successful, burn the file to the corresponding board using JLINK or STM32 ST-LINK Utility.
- Cortex-M7:
The kernel/liteos_m/targets/cortex-m7_nucleo_f767zi_gcc directory is the Makefile project directory created based on the STM32F767ZI chip architecture. The compilation commands are as follows:
cd kernel/liteos_m/targets/cortex-m7_nucleo_f767zi_gcc
make clean; make
After the compilation is successful, the executable file NUCLEO-F767.hex is generated in the cortex-m7_nucleo_f767zi_gcc/build directory. Burn the file to the corresponding board using STM32 ST-LINK Utility.
Repositories Involved
kernel_liteos_m