嵌入式系統開發與應用
陳朋、趙鼕鼕、宦若虹
相關主題
商品描述
本書以昇騰AI處理器為核心,循序漸進地展開嵌入式系統應用開發技術的講解,涵蓋嵌入式系統概述、ARMv8處理器架構、Linux系統、硬件接口、系統總線、嵌入式AI等內容。 本書基於昇騰Atlas 200開發板設計層進式實驗內容,從系統啟動卡製作、代碼編譯等驗證性實驗,到綜合外部接口、傳感器等提高性實驗,再到目標檢測、語義分割等設計性AI實驗,應有盡有。讀者可以通過本書獲知嵌入式綜合應用的編寫方法、嵌入式軟件的開發流程和技巧。 本書可以作為高等院校嵌入式系統相關課程的本科生或者研究生的教材,也適合作為各類相關培訓的教材,還可以作為機電一體化控制系統、信息電器、工業控制等領域嵌入式應用軟件開發人員和創客的自學用書。
目錄大綱
目錄Contents
第1章嵌入式系統發展緒論1
1.1嵌入式系統簡介1
1.1.1嵌入式系統發展歷史2
1.1.2嵌入式系統概念及特點4
1.1.3嵌入式系統分類及應用5
1.2嵌入式系統硬件組成7
1.2.1嵌入式微處理器/微控制器7
1.2.2嵌入式DSP/FPGA10
1.2.3嵌入式SoC/SoPC10
1.2.4嵌入式系統接口及外設12
1.3嵌入式系統軟件組成14
1.3.1嵌入式系統的軟件分層體系14
1.3.2嵌入式操作系統綜述15
1.3.3嵌入式系統軟件集成開發環境19
1.4嵌入式系統發展趨勢21
1.5課後習題23
第2章ARM技術概述25
2.1ARM體系結構25
2.1.1ARM體系結構的發展25
2.1.2ARM體系結構的特點28
2.1.3ARM流水線30
2.1.4ARM核簡述36
2.2ARM CortexA5543
2.2.1CortexA55內核及其特徵43
2.2.2CortexA55內核結構43
2.2.3CortexA55內存管理單元46
2.2.4CortexA55中斷控制器CPU接口47
2.3課後習題48
第3章ARMv8架構基礎知識49
3.1ARMv8架構49
◆嵌入式系統開發與應用目錄3.1.1ARMv8架構介紹49
3.1.2ARMv8基礎概念50
3.1.3ARMv8處理器的運行狀態51
3.1.4ARMv8架構支持的數據寬度51
3.2ARMv8寄存器52
3.2.1通用寄存器52
3.2.2處理器狀態寄存器53
3.2.3特殊寄存器54
3.2.4系統寄存器57
3.3A64指令集58
3.3.1加載與存儲指令59
3.3.2算術與移位指令65
3.3.3比較與跳轉指令74
3.3.4其他重要指令76
3.4ARM64異常處理78
3.4.1異常類型78
3.4.2同步異常和異步異常79
3.4.3異常的發生和退出80
3.4.4異常向量表80
3.5ARM64內存管理81
3.5.1頁表81
3.5.2頁表映射84
3.5.3頁表粒度86
3.5.4兩套頁表87
3.5.5兩套描述符87
3.5.6頁表屬性91
3.5.7連續塊表項94
3.6課後習題94
第4章Linux嵌入式操作系統96
4.1Linux系統發展96
4.1.1Linux的起源96
4.1.2Linux的特點97
4.1.3Linux的發展歷史97
4.1.4Linux的發行版本98
4.1.5Linux的應用領域100
4.1.6Linux虛擬機安裝100
4.2Linux文件系統102
4.2.1用戶與用戶組102
4.2.2文件和目錄的權限105
4.2.3文件系統的目錄結構110
4.2.4常見的Linux文件系統111
4.3Linux指令112
4.3.1文件管理112
4.3.2文檔編輯116
4.3.3文件傳輸118
4.3.4磁盤管理119
4.3.5網絡通信122
4.3.6系統管理124
4.4Linux常用工具126
4.4.1Vi和Vim126
4.4.2shell129
4.4.3SSH146
4.4.4FTP148
4.4.5git項目管理工具151
4.5課後習題159
第5章基於ARM的嵌入式軟件開發160
5.1嵌入式C語言程序設計基礎160
5.1.1Hello World160
5.1.2GCC與交叉編譯器161
5.1.3Makefile163
5.1.4CMake166
5.2嵌入式C語言程序設計技巧168
5.2.1C編譯器及其優化方法169
5.2.2C語言面向對象編程思想174
5.2.3C語言模塊化編程思想178
5.3C語言與匯編語言混合編程193
5.3.1ATPCS規則193
5.3.2在C程序中內嵌匯編代碼195
5.3.3在匯編程序中調用C程序196
5.4課後習題197
第6章通信接口及其昇騰實例198
6.1通用輸入/輸出接口198
6.1.1GPIO功能與特點198
6.1.2GPIO功能描述199
6.1.3GPIO使用說明199
6.1.4GPIO應用例程200
6.2I2C總線201
6.2.1I2C功能與特點202
6.2.2I2C特徵與結構203
6.2.3I2C協議時序211
6.2.4昇騰I2C接口介紹213
6.2.5昇騰I2C應用例程213
6.3SPI總線216
6.3.1SPI功能與特點216
6.3.2SPI特徵與結構222
6.3.3SPI協議時序230
6.3.4昇騰SPI接口介紹233
6.3.5昇騰SPI接口應用例程233
6.4UART總線235
6.4.1UART功能與特點236
6.4.2UART特徵與結構238
6.4.3UART協議時序243
6.4.4昇騰UART接口介紹244
6.4.5昇騰UART應用例程244
6.5課後習題247
第7章昇騰AI應用與開發249
7.1昇騰AI處理器介紹249
7.1.1華為AI全棧解決方案介紹249
7.1.2昇騰AI處理器硬件架構251
7.1.3昇騰AI處理器軟件邏輯架構254
7.2基於昇騰的嵌入式系統環境搭建257
7.2.1製作系統鏡像257
7.2.2串口連接258
7.3AI應用例程設計259
7.3.1目標檢測例程259
7.3.2人體語義分割例程261
7.3.3基於骨骼行為識別例程262
7.3.4模型部署相關工具及流程264
7.4課後習題270
參考文獻271
附錄AAtlas 200 Dev Board方案框圖272
附錄BAtlas 200 Dev Board原理圖273
附錄CAtlas 200 Dev Board外設引腳286