顶部
收藏

嵌入式系统开发 ——基于分布式系统OpenHarmony


作者:
朱明、马艳华 主编 吴晨、卢炳先、覃振权 编
定价:
58.00 元
版面字数:
520千字
开本:
16开
装帧形式:
平装
版次:
1
最新版次
印刷时间:
2024年
ISBN:
978-7-04-062214-0
物料号:
62214-00
出版时间:
2024-07-31
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

本书为示范性软件学院联盟建设的首批软件工程系列教材之一。本书以OpenHarmony 3.1.1版本为基础,针对初学者,从OpenHarmony的系统构成和开发环境构建入手,对内核的关键源码进行分析和解读。主要内容包括内核架构、中断与异常处理、启动与时间管理、任务调度、内存管理(以电子资源形式提供)、进程间通信和文件系统等,有助于读者深入理解操作系统的工作方式,易于进行系统的应用开发。同时,对硬件驱动程序框架(HDF)、驱动程序配置与加载、驱动消息管理和开发,以及系统服务框架、用户程序框架进行了分析和解读,并在相应的过程中增加了丰富的开发示例。

在理论内容的基础上,本书以Hi3861作为轻量系统的基础硬件,从基本接口入手,以实例的方式介绍了轻量系统的基础硬件开发技术,展示了遥控小车等项目的开发技术。同时,以小熊派的BearPi-HM Micro开发板作为小型系统的基础硬件,展示了智慧农业等项目的开发技术,方便读者快速入门。

本书可作为高校计算机科学与技术、软件工程等本科专业“嵌入式开发课程”教材,也可供相关开发人员参考。

  • 目录
    • 前辅文
      • 第1章 OpenHarmony的系统构成
        • 1.1 OpenHarmony系统特点
          • 1.1.1 OpenHarmony的起源
            • 1.1.2 OpenHarmony的主要技术特点
              • 1.1.3 OpenHarmony的设备分类
                • 1.1.4 OpenHarmony的技术架构
                • 1.2 OpenHarmony的内核层
                  • 1.2.1 轻量系统的内核子系统
                    • 1.2.2 小型系统的内核子系统
                      • 1.2.3 标准系统的内核子系统
                      • 1.3 OpenHarmony内核层的驱动子系统
                        • 1.4 OpenHarmony的系统服务层
                          • 1.5 OpenHarmony的框架层
                            • 1.6 OpenHarmony Shell
                              • 1.6.1 OpenHarmony Shell的基本功能和特点
                                • 1.6.2 OpenHarmony Shell命令
                                • 1.7 系统编译构建
                                  • 1.7.1 系统开发环境配置
                                    • 1.7.2 OpenHarmony系统的编译构建过程
                                      • 1.7.3 系统的编译命令
                                        • 1.7.4 Docker编译环境
                                        • 本章小结
                                          • 思考题1
                                          • 第2章 OpenHarmony的内核基础
                                            • 2.1 LiteOS内核的芯片类型适配及内核架构
                                              • 2.2 LiteOS-M内核架构
                                                • 2.3 LiteOS-A内核架构
                                                  • 2.4 内核抽象层
                                                    • 2.5 中断与异常处理
                                                      • 2.5.1 中断的基本概念
                                                        • 2.5.2 LiteOS-M内核的中断
                                                          • 2.5.3 LiteOS-A内核的中断
                                                            • 2.5.4 LiteOS内核的异常处理
                                                            • 2.6 启动与时间管理
                                                              • 2.6.1 LiteOS-M内核的启动过程
                                                                • 2.6.2 LiteOS-A内核的启动过程
                                                                  • 2.6.3 LiteOS内核的时间管理
                                                                    • 2.6.4 软件定时器
                                                                    • 2.7 任务调度
                                                                      • 2.7.1 LiteOS-M内核的任务调度
                                                                        • 2.7.2 LiteOS-M内核的任务创建
                                                                          • 2.7.3 LiteOS-M内核的任务调度时机
                                                                            • 2.7.4 LiteOS-A内核的任务调度
                                                                              • 2.7.5 LiteOS-A内核的任务创建
                                                                                • 2.7.6 LiteOS-A内核的进程创建
                                                                                  • 2.7.7 LiteOS-A内核的任务调度时机
                                                                                  • 本章小结
                                                                                    • 思考题2
                                                                                    • 第3章 OpenHarmony的内核进阶分析
                                                                                      • 3.1 LiteOS内核的进程间通信
                                                                                        • 3.1.1 事件
                                                                                          • 3.1.2 互斥锁
                                                                                            • 3.1.3 队列
                                                                                              • 3.1.4 信号量
                                                                                                • 3.1.5 用户态快速互斥锁
                                                                                                  • 3.1.6 自旋锁
                                                                                                    • 3.1.7 读写锁
                                                                                                      • 3.1.8 信号
                                                                                                        • 3.1.9 LiteIPC
                                                                                                        • 3.2 LiteOS-A内核的内核态与用户态
                                                                                                          • 3.2.1 系统调用
                                                                                                            • 3.2.2 异常
                                                                                                              • 3.2.3 中断
                                                                                                                • 3.2.4 内核态访问用户态数据
                                                                                                                • 3.3 LiteOS内核的文件系统
                                                                                                                  • 3.3.1 LiteOS-M内核的FAT文件系统
                                                                                                                    • 3.3.2 LiteOS-M内核的LittleFS文件系统
                                                                                                                      • 3.3.3 LiteOS-A内核的虚拟文件系统
                                                                                                                      • 3.4 网络连接
                                                                                                                        • 本章小结
                                                                                                                          • 思考题3
                                                                                                                          • 第4章 OpenHarmony的硬件驱动程序框架
                                                                                                                            • 4.1 HDF概述
                                                                                                                              • 4.1.1 HDF的框架结构
                                                                                                                                • 4.1.2 HDF的框架特点
                                                                                                                                  • 4.1.3 HDF的重要数据结构
                                                                                                                                  • 4.2 驱动程序配置文件
                                                                                                                                    • 4.2.1 驱动程序开发的基本步骤
                                                                                                                                      • 4.2.2 基于HCS的配置管理
                                                                                                                                        • 4.2.3 配置文件的基本语法
                                                                                                                                          • 4.2.4 配置文件的生成
                                                                                                                                          • 4.3 驱动程序加载
                                                                                                                                            • 4.3.1 用户态驱动程序服务启动配置
                                                                                                                                              • 4.3.2 驱动程序加载过程
                                                                                                                                                • 4.3.3 驱动服务管理
                                                                                                                                                • 4.4 驱动消息管理
                                                                                                                                                  • 4.4.1 驱动消息接口
                                                                                                                                                    • 4.4.2 驱动消息管理示例
                                                                                                                                                    • 4.5 用户态程序使用驱动程序接口
                                                                                                                                                      • 4.5.1 HDI部署模式
                                                                                                                                                        • 4.5.2 HDI实现
                                                                                                                                                        • 4.6 HDF开发实例
                                                                                                                                                          • 4.6.1 虚拟HDF开发实例
                                                                                                                                                            • 4.6.2 GPIO驱动框架
                                                                                                                                                              • 4.6.3 相机驱动框架
                                                                                                                                                              • 本章小结
                                                                                                                                                                • 思考题4
                                                                                                                                                                • 第5章 OpenHarmony的服务框架
                                                                                                                                                                  • 5.1 服务框架的基础数据结构
                                                                                                                                                                    • 5.1.1 结构体Vector
                                                                                                                                                                      • 5.1.2 服务
                                                                                                                                                                        • 5.1.3 特性
                                                                                                                                                                          • 5.1.4 对外接口
                                                                                                                                                                            • 5.1.5 消息
                                                                                                                                                                              • 5.1.6 结构体SamgrLiteImpl
                                                                                                                                                                              • 5.2 服务框架的启动和注册
                                                                                                                                                                                • 5.2.1 服务框架的启动过程
                                                                                                                                                                                  • 5.2.2 服务框架的注册过程
                                                                                                                                                                                  • 5.3 异步调用
                                                                                                                                                                                    • 5.3.1 消息调用的相关接口
                                                                                                                                                                                      • 5.3.2 无锁队列机制
                                                                                                                                                                                      • 5.4 跨进程调用
                                                                                                                                                                                        • 本章小结
                                                                                                                                                                                          • 思考题5
                                                                                                                                                                                          • 第6章 OpenHarmony的用户程序框架
                                                                                                                                                                                            • 6.1 Ability的模型
                                                                                                                                                                                              • 6.1.1 FA模型
                                                                                                                                                                                                • 6.1.2 PageAbility开发
                                                                                                                                                                                                  • 6.1.3 ServiceAbility开发
                                                                                                                                                                                                    • 6.1.4 DataAbility开发
                                                                                                                                                                                                      • 6.1.5 Stage模型
                                                                                                                                                                                                        • 6.1.6 Ability开发
                                                                                                                                                                                                          • 6.1.7 ServiceExtensionAbility开发
                                                                                                                                                                                                          • 6.2 Ability与任务
                                                                                                                                                                                                            • 6.3 Ability和用户界面
                                                                                                                                                                                                              • 6.3.1 ArkUI概述
                                                                                                                                                                                                                • 6.3.2 声明式开发范式
                                                                                                                                                                                                                  • 6.3.3 类Web开发范式
                                                                                                                                                                                                                    • 6.3.4 UI与Ability框架的关系
                                                                                                                                                                                                                      • 6.3.5 UI与Ability调用的关系
                                                                                                                                                                                                                      • 6.4 Ability加载器
                                                                                                                                                                                                                        • 6.4.1 元功能组件
                                                                                                                                                                                                                          • 6.4.2 Ability的注册和加载
                                                                                                                                                                                                                          • 6.5 AppSpawn应用孵化器
                                                                                                                                                                                                                            • 6.5.1 AppSpawn的启动
                                                                                                                                                                                                                              • 6.5.2 AppSpawn的IPC
                                                                                                                                                                                                                              • 本章小结
                                                                                                                                                                                                                                • 思考题6
                                                                                                                                                                                                                                • 第7章 轻量系统的基础技术
                                                                                                                                                                                                                                  • 7.1 Hi3861芯片的特性与开发环境
                                                                                                                                                                                                                                    • 7.1.1 Hi3861芯片的功能特性
                                                                                                                                                                                                                                      • 7.1.2 Hi3861芯片的开发环境配置
                                                                                                                                                                                                                                        • 7.1.3 HelloWorld示例程序
                                                                                                                                                                                                                                        • 7.2 GPIO接口开发示例
                                                                                                                                                                                                                                          • 7.2.1 GPIO接口基础配置
                                                                                                                                                                                                                                            • 7.2.2 GPIO接口输出示例
                                                                                                                                                                                                                                              • 7.2.3 GPIO接口输入中断示例
                                                                                                                                                                                                                                              • 7.3 UART接口开发示例
                                                                                                                                                                                                                                                • 7.3.1 修改串口设置
                                                                                                                                                                                                                                                  • 7.3.2 UART接口示例程序
                                                                                                                                                                                                                                                  • 7.4 I2C接口开发示例
                                                                                                                                                                                                                                                    • 7.4.1 I2C接口外设连接
                                                                                                                                                                                                                                                      • 7.4.2 OLED开发示例
                                                                                                                                                                                                                                                      • 7.5 看门狗开发示例
                                                                                                                                                                                                                                                        • 7.5.1 超时复位示例
                                                                                                                                                                                                                                                          • 7.5.2 正常喂狗示例
                                                                                                                                                                                                                                                          • 7.6 ADC接口开发示例
                                                                                                                                                                                                                                                            • 7.7 PWM接口开发示例
                                                                                                                                                                                                                                                              • 7.8 WiFi开发示例
                                                                                                                                                                                                                                                                • 7.8.1 WiFi相关接口
                                                                                                                                                                                                                                                                  • 7.8.2 STA开发示例
                                                                                                                                                                                                                                                                    • 7.8.3 AP开发示例
                                                                                                                                                                                                                                                                      • 7.8.4 开发工具封装
                                                                                                                                                                                                                                                                      • 本章小结
                                                                                                                                                                                                                                                                        • 思考题7
                                                                                                                                                                                                                                                                        • 第8章 轻量系统的应用开发
                                                                                                                                                                                                                                                                          • 8.1 空气质量检测仪项目
                                                                                                                                                                                                                                                                            • 8.1.1 项目硬件组成
                                                                                                                                                                                                                                                                              • 8.1.2 外设驱动及项目实现
                                                                                                                                                                                                                                                                              • 8.2 交通信号灯系统项目
                                                                                                                                                                                                                                                                                • 8.2.1 硬件控制
                                                                                                                                                                                                                                                                                  • 8.2.2 WiFi网络构建
                                                                                                                                                                                                                                                                                    • 8.2.3 UDP网络通信
                                                                                                                                                                                                                                                                                      • 8.2.4 信号灯状态改变
                                                                                                                                                                                                                                                                                      • 8.3 天气预报显示屏项目
                                                                                                                                                                                                                                                                                        • 8.3.1 硬件与WiFi连接
                                                                                                                                                                                                                                                                                          • 8.3.2 获取天气预报信息
                                                                                                                                                                                                                                                                                            • 8.3.3 解析JSON获得数据
                                                                                                                                                                                                                                                                                              • 8.3.4 数据显示
                                                                                                                                                                                                                                                                                              • 8.4 无线遥控小车项目
                                                                                                                                                                                                                                                                                                • 8.4.1 硬件组装
                                                                                                                                                                                                                                                                                                  • 8.4.2 电机控制
                                                                                                                                                                                                                                                                                                    • 8.4.3 网络与通信服务端
                                                                                                                                                                                                                                                                                                      • 8.4.4 小车基本控制
                                                                                                                                                                                                                                                                                                        • 8.4.5 超声波避障
                                                                                                                                                                                                                                                                                                        • 本章小结
                                                                                                                                                                                                                                                                                                          • 思考题8
                                                                                                                                                                                                                                                                                                          • 第9章 小型系统的应用开发
                                                                                                                                                                                                                                                                                                            • 9.1 STM32MP157处理器的特性与开发环境
                                                                                                                                                                                                                                                                                                              • 9.1.1 STM32MP157处理器的内存映射
                                                                                                                                                                                                                                                                                                                • 9.1.2 STM32MP157处理器的硬件平台
                                                                                                                                                                                                                                                                                                                  • 9.1.3 DevEco Studio开发环境搭建
                                                                                                                                                                                                                                                                                                                    • 9.1.4 命令行开发环境搭建
                                                                                                                                                                                                                                                                                                                      • 9.1.5 烧录固件并启动开发板
                                                                                                                                                                                                                                                                                                                        • 9.1.6 基本应用程序开发示例
                                                                                                                                                                                                                                                                                                                        • 9.2 2048小游戏开发项目
                                                                                                                                                                                                                                                                                                                          • 9.2.1 2048游戏规则
                                                                                                                                                                                                                                                                                                                            • 9.2.2 创建项目
                                                                                                                                                                                                                                                                                                                              • 9.2.3 编辑源码
                                                                                                                                                                                                                                                                                                                                • 9.2.4 项目完整源码
                                                                                                                                                                                                                                                                                                                                  • 9.2.5 打包HAP应用
                                                                                                                                                                                                                                                                                                                                    • 9.2.6 安装HAP应用
                                                                                                                                                                                                                                                                                                                                      • 9.2.7 拓展学习
                                                                                                                                                                                                                                                                                                                                      • 9.3 GPIO基础控制开发示例
                                                                                                                                                                                                                                                                                                                                        • 9.3.1 硬件驱动开发要点
                                                                                                                                                                                                                                                                                                                                          • 9.3.2 LED灯驱动开发
                                                                                                                                                                                                                                                                                                                                            • 9.3.3 LED灯控制业务开发
                                                                                                                                                                                                                                                                                                                                              • 9.3.4 终端中运行程序
                                                                                                                                                                                                                                                                                                                                                • 9.3.5 基于JS应用的LED灯控制
                                                                                                                                                                                                                                                                                                                                                  • 9.3.6 HAP安装包的生成
                                                                                                                                                                                                                                                                                                                                                  • 9.4 智慧农业——感知控制项目
                                                                                                                                                                                                                                                                                                                                                    • 9.4.1 E53_IA1驱动开发
                                                                                                                                                                                                                                                                                                                                                      • 9.4.2 JS接口层适配
                                                                                                                                                                                                                                                                                                                                                        • 9.4.3 编写HAP应用
                                                                                                                                                                                                                                                                                                                                                          • 9.4.4 运行结果
                                                                                                                                                                                                                                                                                                                                                            • 9.4.5 项目拓展
                                                                                                                                                                                                                                                                                                                                                            • 本章小结
                                                                                                                                                                                                                                                                                                                                                              • 思考题9
                                                                                                                                                                                                                                                                                                                                                              • 参考文献
                                                                                                                                                                                                                                                                                                                                                                • 附录 OpenHarmony Shell命令简介

                                                                                                                                                                                                                                                                                                                                                                相关图书