嵌入式软件设计——基于华为海思Hi3861芯片和OpenHarmony操作系统
定 价:89 元
丛书名:计算机科学与技术丛书
本书是一部系统论述嵌入式软件设计方法的立体化教程(含纸质图书、电子书、教学课件、源代码与视频教程).全书共10章.第1章为嵌入式系统概论;第2章为嵌入式处理器与外围硬件;第3章为嵌入式软件体系结构;第4章为嵌入式实时操作系统;第5章为板级支持包和操作系统引导;第6章为嵌入式软件开发环境;第7章为嵌入式操作系统移植及驱动开发;第8章为典型物联网技术、协议及应用;第9章为嵌入式系统安全;第10章为嵌入式系统综合实验.为便于读者高效学习,快速掌握嵌入式软件编程与实践,本书精心制作了电子书(250页案例资料),配以完整的教学课件(10章PPT)、完整的源代码与丰富的配套视频教程以及在线答疑服务等内容.本书可作为广大高校计算机、软件工程、电子信息、自动化等专业本科生及研究生学习嵌入式软件编程技术课程的教材,也可作为相关培训机构的教材,还可作为嵌入式技术开发者的自学参考用书.
以智能手机为代表的嵌入式智能物联网设备日益成为信息社会的关键设施,而嵌入式硬件设备和嵌入式操作系统软件正成为智能设备的技术底座。目前,嵌入式应用技术在产业界已发展成熟,广大高等院校也都开设有物联网和集成电路相关专业。为满足广大读者对于嵌入式软件设计的学习需求,作者编著了此书。本书按照嵌入式系统硬件、操作系统到软件开发的顺序介绍嵌入式系统相关理论,并以华为海思Hi3861芯片为实验平台,OpenHarmony为操作系统介绍嵌入式软件开发实验过程,帮助读者形成嵌入式系统全面的知识体系。《嵌入式软件设计基于华为海思Hi3861芯片和OpenHarmony操作系统》呈现了以下嵌入式软件开发的理论、技术与应用:? 嵌入式系统组成;? 嵌入式硬件;? 嵌入式操作系统;? 嵌入式软件系统架构;? 嵌入式系统引导程序开发;? 嵌入式软件开发环境;? 嵌入式系统移植及驱动开发;? 物联网通信协议及应用;? 嵌入式系统安全及应用。
日出东方,其道大光; 鲲鹏展翅,旭日昇腾!
随着嵌入式智能硬件在信息社会的快速发展,从CPU到GPU,再到各类专属领域的定制芯片,我们迎来了计算机体系结构的黄金时代!华为海思设计了支撑华为整个生态的多种类型芯片,包括麒麟、鲲鹏、昇腾等手机、服务器和AI处理器。在应用广泛的物联网市场,海思也推出了基于RISCV开源架构的Hi3861芯片。该芯片还能适配华为推出的OpenHarmony(开源鸿蒙)操作系统。
所以,当华为海思邀请我基于Hi3861芯片开发一本嵌入式系统教材时,我毫不犹豫地答应了。也许是出于对硬科技公司的高度认同,也许是出于对同道中人的由衷尊敬,更可能是出于一种骨子里的使命感,我深深地觉得我们太需要能够在国产嵌入式系统上开发嵌入式软件的人才了。对于国产处理器和鸿蒙操作系统,生态圈的培养和用户编程习惯的养成可谓重中之重,也是决定该款产品生死存亡的关键。编写本书的目的是向读者介绍基于海思Hi3861芯片和OpenHarmony操作系统内在的设计理念,从软硬件两方面阐述嵌入式软件开发的逻辑,教会读者上手使用DevEco Studio嵌入式软件开发平台。不积跬步,无以至千里,如果把打造海思物联网生态圈当作千里之行,那么本书便是尝试迈出的第一步。
本书定位为嵌入式软件开发领域选修教材,面向工程科技类大学生和社会开发者。读者除需要具备基本的硬件知识和编程能力外,无须预修任何课程。本书特别理想的受众是物联网、计算机科学、软件工程、网络安全、电子工程、自动化、通信工程等专业领域需要用到嵌入式系统的学生和开发者。
本书共10章,内容涵盖嵌入式系统概论、嵌入式处理器与外围硬件、嵌入式软件体系结构、嵌入式实时操作系统、板级支持包和操作系统引导、嵌入式软件开发环境、嵌入式操作系统移植及驱动开发、典型物联网技术、协议及应用、嵌入式系统安全以及嵌入式系统综合实验,希望能够从理论到实践,帮助读者了解Hi3861芯片,并掌握其具体的编程和使用方法,助力读者基于国产嵌入式处理器和国产嵌入式操作系统打造属于自己的嵌入式软件。
空谈误国,实干兴邦。愿与诸位读者共勉。
本书编者均有着8年多的本科生嵌入式软件设计课程教学经验,完成了多轮次、多类型的教育教学改革与研究工作。感谢孙世磊、刘浩文和陈曦对本书撰写工作作出的极大贡献,他们在内容大纲规划上注入了极大精力,并且参与了部分章节的写作。如果没有他们的全心投入,本书将很难顺利完成。感谢华为海思刘耀林和谢晶在本书写作过程中提供的资源和支持。感谢清华大学出版社盛东亮老师的大力支持,他认真细致的工作保证了本书的质量。
由于编者水平有限,书中难免有疏漏和不足之处,恳请读者批评指正!
编者2024年12月1日
赵小刚 武汉大学计算机学院副教授,硕士研究生导师。华中科技大学计算机系统结构专业博士,美国奥本大学访问学者(20122013年)。目前主要研究绿色计算、移动计算和系统优化设计。作为负责人先后主持1项湖北省自然科学基金项目、4项产学合作协同育人项目,参与2项国家自然科学基金项目。在国内外学术期刊上发表SCI、EI检索论文10余篇。
第1章嵌入式系统概论
微课视频17分钟
1.1无所不在的嵌入式系统
1.1.1工业控制
1.1.2智能家电
1.1.3智能机器人
1.2嵌入式系统定义
1.3嵌入式系统的设计需求
1.4嵌入式系统的发展历程
1.5嵌入式系统的组成
1.5.1嵌入式系统的硬件组成
1.5.2嵌入式系统的软件组成
1.6嵌入式系统的分类
第2章嵌入式处理器与外围硬件
微课视频53分钟
2.1嵌入式处理器概述
2.1.1嵌入式处理器特点
2.1.2嵌入式处理器体系架构
2.2嵌入式处理器的分类
2.2.1嵌入式微处理器
2.2.2嵌入式微控制器
2.2.3嵌入式DSP
2.2.4嵌入式片上系统
2.3RISCV嵌入式微处理器体系结构
2.3.1RISCV处理器
2.3.2总线
2.3.3流水线结构
2.3.4工作模式
2.4RISCV指令集架构简介
2.4.1RISCV指令集分类
2.4.2RISCV指令格式
2.4.3RISCV指令特点
2.5基于RISCV架构的Hi3861芯片
2.5.1处理器
2.5.2SPI
2.5.3RTC模块
2.5.4GPIO接口
2.5.5PWM模块
2.5.6UART接口
2.5.7WatchDog模块
2.5.8I2C总线
2.5.9ADC模块
第3章嵌入式软件体系结构
微课视频20分钟
3.1软件体系结构的概念
3.2软件体系结构的作用
3.3轮转结构
3.3.1运行方式
3.3.2典型系统
3.4前后台结构
3.4.1运行方式
3.4.2系统性能
3.4.3典型系统
3.5实时操作系统结构
3.5.1运行方式
3.5.2系统性能
3.5.3典型系统
第4章嵌入式实时操作系统
微课视频86分钟
4.1嵌入式操作系统演化
4.2RTOS的设计需求
4.2.1及时性
4.2.2强相关性
4.2.3高性能和鲁棒性
4.2.4可剪裁性
4.3RTOS的体系结构
4.3.1宏内核结构
4.3.2微内核结构
4.4OpenHarmony内核启动过程
4.4.1内核简介
4.4.2嵌入式系统启动过程
4.4.3内核初始化过程
4.4.4应用程序初始化过程
4.4.5操作系统启动过程
4.5时间管理
4.5.1系统Tick
4.5.2软件定时器
4.6中断管理
4.6.1基础概念
4.6.2重要接口
4.6.3使用示例
4.7任务管理
4.7.1基础概念
4.7.2TCB结构及使用方法
4.7.3使用示例
4.8内存管理
4.8.1静态内存
4.8.2动态内存
4.9内核通信
4.9.1事件
4.9.2消息队列
第5章板级支持包和操作系统引导
微课视频43分钟
5.1嵌入式系统的启动过程
5.1.1上电复位、板级初始化阶段
5.1.2操作系统引导/操作系统升级阶段
5.1.3操作系统初始化阶段
5.1.4应用初始化阶段
5.1.5操作系统运行阶段
5.1.6LiteOSM操作系统的启动
5.1.7整体启动流程
5.2板级支持包
5.2.1BSP的概念
5.2.2BSP中的驱动程序
5.2.3BSP和BIOS的区别
5.2.4RTOS中的BSP
5.3RTOS的引导模式
5.3.1需要Boot Loader的引导模式
5.3.2不需要Boot Loader的引导模式
5.3.3操作系统引导实例
5.4Boot Loader代码分析及开发
5.4.1loaderboot功能及代码分析
5.4.2flashboot功能及代码开发
第6章嵌入式软件开发环境
微课视频63分钟
6.1嵌入式软件的编译
6.1.1交叉编译概念
6.1.2交叉编译的难点
6.1.3交叉汇编器和工具链
6.1.4嵌入式系统的链接器/定位器
6.1.5合理安排程序在目标主机上的分布
6.2嵌入式软件的调试
6.2.1调试的准则
6.2.2基本技术
6.2.3输入电路仿真器
6.2.4OCD方式
6.2.5嵌入式软件调试环境搭建
6.3仿真开发技术
6.3.1仿真开发的分类
6.3.2仿真开发环境的特点
6.3.3仿真开发工具QEMU
6.4OpenHarmony编译系统构建
6.4.1GCC编译器
6.4.2项目构建工具
6.4.3项目构建流程
6.4.4GDB调试器
6.5开发环境DevEco Device Tool
6.5.1环境搭建
6.5.2工程管理
6.5.3HDF驱动管理
6.5.4代码编辑
6.5.5目标代码编译运行
6.5.6使用仿真器运行
6.5.7代码烧录
6.5.8代码调试
6.6OpenHarmony操作系统实验
6.6.1操作系统配置编译裁剪实验
6.6.2系统基础服务裁剪实验
第7章嵌入式操作系统移植及驱动开发
微课视频52分钟
7.1嵌入式操作系统移植概述
7.1.1嵌入式操作系统移植通用流程
7.1.2系统移植所必需的环境
7.1.3内核移植
7.1.4系统移植
7.2OpenHarmony移植准备
7.2.1移植目录
7.2.2移植流程
7.2.3编译构建适配流程
7.3OpenHarmony内核移植
7.3.1芯片架构适配
7.3.2内核基础适配
7.3.3内核移植调试
7.4OpenHarmony板级支持包移植
7.4.1板级支持包适配流程
7.4.2CMSIS和POSIX
7.4.3板级驱动适配
7.4.4HAL实现
7.4.5板级适配XTS测试
7.5OpenHarmony系统驱动程序开发
7.5.1LiteOSM中的传统驱动开发
7.5.2HDF的特点
7.5.3HDF驱动开发
7.5.4HDF驱动服务管理
7.5.5HDF配置管理
7.5.6HDF开发实例
7.5.7HDF驱动移植
7.6OpenHarmony系统驱动程序调用
7.6.1核心代码开发
7.6.2项目内配置文件BUILD.gn编写
7.6.3项目外配置文件BUILD.gn编写
7.6.4项目编译运行
第8章典型物联网技术、协议及应用
微课视频49分钟
8.1物联网技术概述
8.1.1物联网体系架构及特性
8.1.2物联网关键技术
8.1.3物联网典型应用
8.1.4物联网技术的发展
8.2物联网通信技术WiFi概述
8.2.1WLAN和WiFi
8.2.2WLAN发展历史与趋势
8.2.3WiFi射频及信道
8.2.4WiFi组网与配网
8.2.5WiFi通信实验
8.3物联网通信协议概述
8.4CoAP及其应用
8.4.1CoAP的设计需求
8.4.2CoAP结构及示例
8.4.3CoAP应用示例
8.5MQTT协议及其应用
8.5.1MQTT协议的设计需求
8.5.2MQTT控制报文结构及示例
8.5.3MQTT协议应用示例
8.6LwIP及其应用
8.6.1LwIP的设计需求
8.6.2LwIP的工作机制
8.6.3LwIP应用示例
8.7模组通信协议AT实验
8.7.1AT命令定义及分类
8.7.2AT命令应用示例
第9章嵌入式系统安全
9.1嵌入式系统安全趋势
9.2嵌入式系统安全方案
9.2.1嵌入式领域安全问题
9.2.2嵌入式领域安全策略
9.2.3嵌入式领域安全设计
9.2.4嵌入式硬件安全实现范例
9.3Hi3861安全子系统
9.3.1安全子系统概述
9.3.2TRNG算子
9.3.3HASH算子
9.4OpenHarmony安全子系统
9.4.1应用完整性验证
9.4.2应用权限管理
9.4.3设备安全等级管理
第10章嵌入式系统综合实验
微课视频7分钟
10.1智能小车开发板硬件介绍
10.2智能小车的设计需求
10.3智能小车实验
10.3.1避障实验
10.3.2循迹实验
10.3.3平衡车实验
参考文献