一、实验目的
(1)熟悉Linux或Windows上LiteOS-M嵌入式开发环境的配置;
(2)熟悉LiteOS-M内核的目录结构和模块;
(3)熟悉LiteOS-M内核的编译、下载和测试流程。
二、实验内容
针对华为Hi3861嵌入式CPU开发板配置开发环境,并完成“HelloHuawei”,“HelloWorld”字符串输出;
三、实验环境
宿主机操作系统:Arch Linux(内核版本:6.4.1-arch2-1)
编译工具:gcc/riscv-gnu-toolchain-bin/riscv64-linux-gnu-gdb
编辑工具:vim/vscode
主要依赖包:ohos-build, qemu_system_riscv32, clang, llvm, ninja, gn
四、实验设计思路
4.1 华为LiteOS-M内核目录和源文件结构
/kernel/liteos_m
├── arch # 内核指令架构层目录
│ ├── arm # arm 架构代码
│ │ ├── arm9 # arm9 架构代码
│ │ ├── cortex-m3 # cortex-m3架构代码
│ │ ├── cortex-m33 # cortex-m33架构代码
│ │ ├── cortex-m4 # cortex-m4架构代码
│ │ ├── cortex-m55 # cortex-m55架构代码
│ │ ├── 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 # 栈回溯功能
│ ├── 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 # cmsis标准接口支持
│ └── posix # posix标准接口支持
├── kernel # 内核最小功能集支持