图书目录

目录

第一篇基 本 原 理

第1章OpenHarmony概述

1.1初识OpenHarmony

1.1.1OpenHarmony背景

1.1.2OpenHarmony版本

1.2OpenHarmony架构

1.2.1技术特性

1.2.2系统类型

1.2.3详细特征

1.3内核、南向与北向开发

1.4OpenHarmony内核子系统

1.5LiteOSM内核

1.5.1LiteOSM概述

1.5.2LiteOSM架构

1.5.3LiteOSM接口

1.5.4LiteOSM功能模块

1.6编程实践一: 开发环境构建

1.6.1安装WSL2

1.6.2安装Ubuntu及其必要工具

1.6.3使用Linux常用命令

1.6.4VS Code的安装使用

1.6.5实践与思考

第2章OpenHarmony硬件与仿真

2.1RISCV架构

2.1.1RISCV计算机

2.1.2RISCV系统结构

2.1.3RISCV SoC系统

2.1.4RISCV仿真

2.2RISCV CPU

2.2.1RISCV指令集

2.2.2RISCV寄存器

2.3RISCV virt虚拟系统

2.4编译、链接与调试

2.4.1编译

2.4.2链接

2.4.3构建

2.4.4Makefile 

2.4.5调试

2.4.6ELF文件结构

2.5Qemu与OpenHarmony仿真运行

2.5.1Qemu命令的使用

2.5.2编译、运行与调试

2.6编程实践二: 源码、编译与仿真环境搭建

2.6.1下载内核源码

2.6.2安装工具链GCC

2.6.3安装QEMU RISCV

2.6.4编译运行内核

2.6.5内核源码的修改

2.6.6Linux中调试内核

2.6.7VS Code中调试内核

2.6.8实践与思考

第二篇系统启动、任务管理与进程间通信

第3章OpenHarmony启动

3.1内核启动与系统初始化阶段

3.2主程序阶段

3.3内核初始化阶段

3.4用户程序初始化与任务调度

3.5编程实践三: 启动分析

3.5.1跟踪调试los_start.S 

3.5.2跟踪调试main()函数 

第4章OpenHarmony任务管理

4.1任务创建

4.1.1任务数据结构

4.1.2任务创建过程

4.2任务初始化与运行

4.2.1任务初始化

4.2.2任务运行

4.2.3任务启动

4.3编程实践四: 任务创建

4.3.1API编程

4.3.2源码分析

第5章OpenHarmony任务调度

5.1任务上下文切换

5.1.1上下文定义

5.1.2上下文切换

5.2任务调度

5.2.1任务初始化

5.2.2启动任务内核

5.2.3启动任务调度

5.3编程实践五: 任务调度

5.3.1API编程

5.3.2源码分析

5.3.3内核实现

第6章OpenHarmony进程同步

6.1信号量与生产者消费者模型

6.1.1信号量

6.1.2互斥锁

6.1.3生产者消费者模型

6.2编程实践六: 信号量与互斥锁分析与使用

6.2.1API编程

6.2.2源码分析

6.2.3内核实现

第7章OpenHarmony进程间通信

7.1消息队列

7.2编程实践七: 消息队列与管道

7.2.1API编程

7.2.2源码分析

7.2.3内核实现

第三篇内存、中断与文件系统管理

第8章OpenHarmony内存管理实验

8.1静态内存管理

8.2动态内存管理

8.2.1Buddy伙伴系统

8.2.2动态内存管理

8.2.3内存分配与释放

8.2.4动态内存管理接口

8.2.5动态内存使用流程

8.3编程实践八: 内存管理

8.3.1API编程

8.3.2源码分析

8.3.3内核实现

第9章OpenHarmony芯片与中断管理

9.1芯片抽象

9.1.1芯片常量

9.1.2公共常量

9.2中断管理

9.2.1中断系统

9.2.2OpenHarmony中断接口

9.2.3OpenHarmony中断处理流程

9.2.4RISCV中断

9.3编程实践九: 中断管理

9.3.1API编程

9.3.2源码分析

9.3.3内核实现

第10章OpenHarmony文件系统

10.1文件系统

10.1.1VFS文件系统

10.1.2FAT文件系统

10.2文件系统操作

10.2.1FAT32文件系统制作

10.2.2挂载与卸载

10.3编程实践十: 文件系统操作

10.3.1API编程

10.3.2源码分析

10.3.3内核实现

第四篇轻量系统构建

第11章OpenHarmony RISCV virt轻量系统安装

11.1预备工具

11.1.1安装Ubuntu及VS Code

11.1.2准备命令工具

11.1.3注册码云gitee账号及SSH公钥

11.1.4安装配置git客户端

11.2获取源码及工具链

11.2.1通过repo获取源码

11.2.2下载工具链

11.3安装编译构建工具hb

11.3.1安装hb命令

11.3.2检查hb命令

11.3.3使用hb命令

11.4编程实践十一: 构建RISCV virt系统

11.4.1设置hb并构建目标

11.4.2常见错误处理

第12章Ninja与GN构建技术

12.1Ninja技术与GN概述

12.1.1Ninja与GN工具安装与构建

12.1.2Ninja

12.1.3GN

12.2GN文件语法规则

12.3构建过程与工具链

12.3.1构建配置

12.3.2构建目标

12.3.3CONFIGS与CONFIG

12.3.4工具链

12.4编程实践十二: GN构建

12.4.1simple_build概述

12.4.2.gn文件

12.4.3build/BUILDCONFIG.gn文件

12.4.4build/toolchain/BUILD.gn文件

12.4.5build/BUILD.gn文件

12.4.6BUILD.gn文件

第13章OpenHarmony编译子系统

13.1OpenHarmony编译构建框架

13.1.1编译构建概述

13.1.2编译子系统架构

13.1.3目录结构

13.2OpenHarmony配置规则

13.2.1产品配置规则

13.2.2子系统配置规则

13.2.3部件配置

13.2.4模块配置

13.2.5芯片解决方案

13.3hb配置参数及其解析

13.3.1参数结构

13.3.2参数文件的位置

13.3.3参数文件示例

13.4编程实践十三: 编译构建过程

13.4.1编译构建流程

13.4.2hb set的运行

13.4.3hb主程序及初始化

13.4.4hb构建模块接口分析

13.4.5hb构建模块ohos_build分析

参考文献