本書是一部系統(tǒng)論述嵌入式軟件設計方法的立體化教程(含紙質圖書、電子書、教學課件、源代碼與視頻教程).
全書共10章.第1章為嵌入式系統(tǒng)概論;第2章為嵌入式處理器與外圍硬件;第3章為嵌入式軟件體系結構;第4章為嵌入式實時操作系統(tǒng);第5章為板級支持包和操作系統(tǒng)引導;第6章為嵌入式軟件開發(fā)環(huán)境;第7章為嵌入式操作系統(tǒng)移植及驅動開發(fā);第8章為典型物聯(lián)網技術、協(xié)議及應用;第9章為嵌入式系統(tǒng)安全;第10章為嵌入式系統(tǒng)綜合實驗.為便于讀者高效學習,快速掌握嵌入式軟件編程與實踐,本書精心制作了電子書(250頁案例資料),配以完整的教學課件(10章PPT)、完整的源代碼與豐富的配套視頻教程以及在線答疑服務等內容.本書可作為廣大高校計算機、軟件工程、電子信息、自動化等專業(yè)本科生及研究生學習嵌入式軟件編程技術課程的教材,也可作為相關培訓機構的教材,還可作為嵌入式技術開發(fā)者的自學參考用書.
以智能手機為代表的嵌入式智能物聯(lián)網設備日益成為信息社會的關鍵設施,而嵌入式硬件設備和嵌入式操作系統(tǒng)軟件正成為智能設備的技術底座。目前,嵌入式應用技術在產業(yè)界已發(fā)展成熟,廣大高等院校也都開設有物聯(lián)網和集成電路相關專業(yè)。為滿足廣大讀者對于嵌入式軟件設計的學習需求,作者編著了此書。本書按照嵌入式系統(tǒng)硬件、操作系統(tǒng)到軟件開發(fā)的順序介紹嵌入式系統(tǒng)相關理論,并以華為海思Hi3861芯片為實驗平臺,OpenHarmony為操作系統(tǒng)介紹嵌入式軟件開發(fā)實驗過程,幫助讀者形成嵌入式系統(tǒng)全面的知識體系!肚度胧杰浖O計基于華為海思Hi3861芯片和OpenHarmony操作系統(tǒng)》呈現(xiàn)了以下嵌入式軟件開發(fā)的理論、技術與應用:
? 嵌入式系統(tǒng)組成;
? 嵌入式硬件;
? 嵌入式操作系統(tǒng);
? 嵌入式軟件系統(tǒng)架構;
? 嵌入式系統(tǒng)引導程序開發(fā);
? 嵌入式軟件開發(fā)環(huán)境;
? 嵌入式系統(tǒng)移植及驅動開發(fā);
? 物聯(lián)網通信協(xié)議及應用;
? 嵌入式系統(tǒng)安全及應用。
日出東方,其道大光; 鯤鵬展翅,旭日昇騰!
隨著嵌入式智能硬件在信息社會的快速發(fā)展,從CPU到GPU,再到各類專屬領域的定制芯片,我們迎來了計算機體系結構的黃金時代!華為海思設計了支撐華為整個生態(tài)的多種類型芯片,包括麒麟、鯤鵬、昇騰等手機、服務器和AI處理器。在應用廣泛的物聯(lián)網市場,海思也推出了基于RISCV開源架構的Hi3861芯片。該芯片還能適配華為推出的OpenHarmony(開源鴻蒙)操作系統(tǒng)。
所以,當華為海思邀請我基于Hi3861芯片開發(fā)一本嵌入式系統(tǒng)教材時,我毫不猶豫地答應了。也許是出于對硬科技公司的高度認同,也許是出于對同道中人的由衷尊敬,更可能是出于一種骨子里的使命感,我深深地覺得我們太需要能夠在國產嵌入式系統(tǒng)上開發(fā)嵌入式軟件的人才了。對于國產處理器和鴻蒙操作系統(tǒng),生態(tài)圈的培養(yǎng)和用戶編程習慣的養(yǎng)成可謂重中之重,也是決定該款產品生死存亡的關鍵。編寫本書的目的是向讀者介紹基于海思Hi3861芯片和OpenHarmony操作系統(tǒng)內在的設計理念,從軟硬件兩方面闡述嵌入式軟件開發(fā)的邏輯,教會讀者上手使用DevEco Studio嵌入式軟件開發(fā)平臺。不積跬步,無以至千里,如果把打造海思物聯(lián)網生態(tài)圈當作千里之行,那么本書便是嘗試邁出的第一步。
本書定位為嵌入式軟件開發(fā)領域選修教材,面向工程科技類大學生和社會開發(fā)者。讀者除需要具備基本的硬件知識和編程能力外,無須預修任何課程。本書特別理想的受眾是物聯(lián)網、計算機科學、軟件工程、網絡安全、電子工程、自動化、通信工程等專業(yè)領域需要用到嵌入式系統(tǒng)的學生和開發(fā)者。
本書共10章,內容涵蓋嵌入式系統(tǒng)概論、嵌入式處理器與外圍硬件、嵌入式軟件體系結構、嵌入式實時操作系統(tǒng)、板級支持包和操作系統(tǒng)引導、嵌入式軟件開發(fā)環(huán)境、嵌入式操作系統(tǒng)移植及驅動開發(fā)、典型物聯(lián)網技術、協(xié)議及應用、嵌入式系統(tǒng)安全以及嵌入式系統(tǒng)綜合實驗,希望能夠從理論到實踐,幫助讀者了解Hi3861芯片,并掌握其具體的編程和使用方法,助力讀者基于國產嵌入式處理器和國產嵌入式操作系統(tǒng)打造屬于自己的嵌入式軟件。
空談誤國,實干興邦。愿與諸位讀者共勉。
本書編者均有著8年多的本科生嵌入式軟件設計課程教學經驗,完成了多輪次、多類型的教育教學改革與研究工作。感謝孫世磊、劉浩文和陳曦對本書撰寫工作作出的極大貢獻,他們在內容大綱規(guī)劃上注入了極大精力,并且參與了部分章節(jié)的寫作。如果沒有他們的全心投入,本書將很難順利完成。感謝華為海思劉耀林和謝晶在本書寫作過程中提供的資源和支持。感謝清華大學出版社盛東亮老師的大力支持,他認真細致的工作保證了本書的質量。
由于編者水平有限,書中難免有疏漏和不足之處,懇請讀者批評指正!
編者2024年12月1日
趙小剛 武漢大學計算機學院副教授,碩士研究生導師。華中科技大學計算機系統(tǒng)結構專業(yè)博士,美國奧本大學訪問學者(20122013年)。目前主要研究綠色計算、移動計算和系統(tǒng)優(yōu)化設計。作為負責人先后主持1項湖北省自然科學基金項目、4項產學合作協(xié)同育人項目,參與2項國家自然科學基金項目。在國內外學術期刊上發(fā)表SCI、EI檢索論文10余篇。
第1章嵌入式系統(tǒng)概論
微課視頻17分鐘
1.1無所不在的嵌入式系統(tǒng)
1.1.1工業(yè)控制
1.1.2智能家電
1.1.3智能機器人
1.2嵌入式系統(tǒng)定義
1.3嵌入式系統(tǒng)的設計需求
1.4嵌入式系統(tǒng)的發(fā)展歷程
1.5嵌入式系統(tǒng)的組成
1.5.1嵌入式系統(tǒng)的硬件組成
1.5.2嵌入式系統(tǒng)的軟件組成
1.6嵌入式系統(tǒng)的分類
第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嵌入式片上系統(tǒng)
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典型系統(tǒng)
3.4前后臺結構
3.4.1運行方式
3.4.2系統(tǒng)性能
3.4.3典型系統(tǒng)
3.5實時操作系統(tǒng)結構
3.5.1運行方式
3.5.2系統(tǒng)性能
3.5.3典型系統(tǒng)
第4章嵌入式實時操作系統(tǒng)
微課視頻86分鐘
4.1嵌入式操作系統(tǒng)演化
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嵌入式系統(tǒng)啟動過程
4.4.3內核初始化過程
4.4.4應用程序初始化過程
4.4.5操作系統(tǒng)啟動過程
4.5時間管理
4.5.1系統(tǒng)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靜態(tài)內存
4.8.2動態(tài)內存
4.9內核通信
4.9.1事件
4.9.2消息隊列
第5章板級支持包和操作系統(tǒng)引導
微課視頻43分鐘
5.1嵌入式系統(tǒng)的啟動過程
5.1.1上電復位、板級初始化階段
5.1.2操作系統(tǒng)引導/操作系統(tǒng)升級階段
5.1.3操作系統(tǒng)初始化階段
5.1.4應用初始化階段
5.1.5操作系統(tǒng)運行階段
5.1.6LiteOSM操作系統(tǒng)的啟動
5.1.7整體啟動流程
5.2板級支持包
5.2.1BSP的概念
5.2.2BSP中的驅動程序
5.2.3BSP和BIOS的區(qū)別
5.2.4RTOS中的BSP
5.3RTOS的引導模式
5.3.1需要Boot Loader的引導模式
5.3.2不需要Boot Loader的引導模式
5.3.3操作系統(tǒng)引導實例
5.4Boot Loader代碼分析及開發(fā)
5.4.1loaderboot功能及代碼分析
5.4.2flashboot功能及代碼開發(fā)
第6章嵌入式軟件開發(fā)環(huán)境
微課視頻63分鐘
6.1嵌入式軟件的編譯
6.1.1交叉編譯概念
6.1.2交叉編譯的難點
6.1.3交叉匯編器和工具鏈
6.1.4嵌入式系統(tǒng)的鏈接器/定位器
6.1.5合理安排程序在目標主機上的分布
6.2嵌入式軟件的調試
6.2.1調試的準則
6.2.2基本技術
6.2.3輸入電路仿真器
6.2.4OCD方式
6.2.5嵌入式軟件調試環(huán)境搭建
6.3仿真開發(fā)技術
6.3.1仿真開發(fā)的分類
6.3.2仿真開發(fā)環(huán)境的特點
6.3.3仿真開發(fā)工具QEMU
6.4OpenHarmony編譯系統(tǒng)構建
6.4.1GCC編譯器
6.4.2項目構建工具
6.4.3項目構建流程
6.4.4GDB調試器
6.5開發(fā)環(huán)境DevEco Device Tool
6.5.1環(huán)境搭建
6.5.2工程管理
6.5.3HDF驅動管理
6.5.4代碼編輯
6.5.5目標代碼編譯運行
6.5.6使用仿真器運行
6.5.7代碼燒錄
6.5.8代碼調試
6.6OpenHarmony操作系統(tǒng)實驗
6.6.1操作系統(tǒng)配置編譯裁剪實驗
6.6.2系統(tǒng)基礎服務裁剪實驗
第7章嵌入式操作系統(tǒng)移植及驅動開發(fā)
微課視頻52分鐘
7.1嵌入式操作系統(tǒng)移植概述
7.1.1嵌入式操作系統(tǒng)移植通用流程
7.1.2系統(tǒng)移植所必需的環(huán)境
7.1.3內核移植
7.1.4系統(tǒng)移植
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實現(xiàn)
7.4.5板級適配XTS測試
7.5OpenHarmony系統(tǒng)驅動程序開發(fā)
7.5.1LiteOSM中的傳統(tǒng)驅動開發(fā)
7.5.2HDF的特點
7.5.3HDF驅動開發(fā)
7.5.4HDF驅動服務管理
7.5.5HDF配置管理
7.5.6HDF開發(fā)實例
7.5.7HDF驅動移植
7.6OpenHarmony系統(tǒng)驅動程序調用
7.6.1核心代碼開發(fā)
7.6.2項目內配置文件BUILD.gn編寫
7.6.3項目外配置文件BUILD.gn編寫
7.6.4項目編譯運行
第8章典型物聯(lián)網技術、協(xié)議及應用
微課視頻49分鐘
8.1物聯(lián)網技術概述
8.1.1物聯(lián)網體系架構及特性
8.1.2物聯(lián)網關鍵技術
8.1.3物聯(lián)網典型應用
8.1.4物聯(lián)網技術的發(fā)展
8.2物聯(lián)網通信技術WiFi概述
8.2.1WLAN和WiFi
8.2.2WLAN發(fā)展歷史與趨勢
8.2.3WiFi射頻及信道
8.2.4WiFi組網與配網
8.2.5WiFi通信實驗
8.3物聯(lián)網通信協(xié)議概述
8.4CoAP及其應用
8.4.1CoAP的設計需求
8.4.2CoAP結構及示例
8.4.3CoAP應用示例
8.5MQTT協(xié)議及其應用
8.5.1MQTT協(xié)議的設計需求
8.5.2MQTT控制報文結構及示例
8.5.3MQTT協(xié)議應用示例
8.6LwIP及其應用
8.6.1LwIP的設計需求
8.6.2LwIP的工作機制
8.6.3LwIP應用示例
8.7模組通信協(xié)議AT實驗
8.7.1AT命令定義及分類
8.7.2AT命令應用示例
第9章嵌入式系統(tǒng)安全
微課視頻17分鐘
9.1嵌入式系統(tǒng)安全趨勢
9.2嵌入式系統(tǒng)安全方案
9.2.1嵌入式領域安全問題
9.2.2嵌入式領域安全策略
9.2.3嵌入式領域安全設計
9.2.4嵌入式硬件安全實現(xiàn)范例
9.3Hi3861安全子系統(tǒng)
9.3.1安全子系統(tǒng)概述
9.3.2TRNG算子
9.3.3HASH算子
9.4OpenHarmony安全子系統(tǒng)
9.4.1應用完整性驗證
9.4.2應用權限管理
9.4.3設備安全等級管理
第10章嵌入式系統(tǒng)綜合實驗
微課視頻7分鐘
10.1智能小車開發(fā)板硬件介紹
10.2智能小車的設計需求
10.3智能小車實驗
10.3.1避障實驗
10.3.2循跡實驗
10.3.3平衡車實驗
參考文獻