本書是學習嵌入式系統(tǒng)開發(fā)的入門教材。按照嵌入式系統(tǒng)學習的規(guī)律,本書首先詳細介紹了嵌入式系統(tǒng)的原理,包括嵌入式操作系統(tǒng)基礎、ARM體系結構和指令系統(tǒng);然后,以北京博創(chuàng)智聯科技有限公司的UPMobNetⅡ實驗箱為實驗平臺,按照從簡單到復雜逐步過渡的原則設計了相關實驗內容,結合實驗講解了嵌入式系統(tǒng)的開發(fā)過程。此外,本書還對Android開發(fā)環(huán)境搭建進行了初步的描述,供感興趣的讀者參考。
本書內容較為翔實,結構合理,實例豐富,用淺顯易懂的語言來解釋理論,用簡單易行的實驗來幫助讀者理解理論并掌握嵌入式系統(tǒng)開發(fā)的實際操作技能。
本書可作為本科、大專和高等職業(yè)院校計算機類、電子類、通信類學生的教材,也可作為計算機等級考試(嵌入式系統(tǒng)三級)的輔導用書,還可作為廣大嵌入式系統(tǒng)愛好者和工程師的自學用書和參考手冊。
嵌入式系統(tǒng)作為物聯網的核心,是當前最熱門、最有前景的IT應用領域之一。嵌入式系統(tǒng)以應用為中心,以計算機技術為基礎,軟硬件可定制,適用于不同應用場合,是對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用戶的應用程序等四部分組成,用于實現對其他設備的控制、監(jiān)視或管理等功能。嵌入式系統(tǒng)已經廣泛地滲透到科學研究、工業(yè)控制、軍事技術、交通、通信、醫(yī)療衛(wèi)生、消費娛樂等各個領域。我們平常所使用的手機、PDA、汽車、智能家電、GPS等均是嵌入式系統(tǒng)的典型代表。
本書共9章。第1章介紹了嵌入式系統(tǒng)的基本知識;第2章介紹了嵌入式Linux操作系統(tǒng)的發(fā)展過程;第3章介紹了嵌入式系統(tǒng)的開發(fā)環(huán)境;第4章介紹了嵌入式處理器的類型、結構、工作模式等內容;第5章介紹了ARM指令集;第6章介紹了ARM匯編程序設計基礎;第7章以博創(chuàng)UPMobNetⅡ實驗箱為例介紹了嵌入式系統(tǒng)開發(fā)環(huán)境的構建;第8章為嵌入式系統(tǒng)基礎實驗,以循序漸進的方式對實驗箱自帶的模塊進行訪問和控制;第9章介紹了Android開發(fā)環(huán)境的搭建方法。
本書特色:
1. 校企合作,內容結合實際
本書包含了嵌入式系統(tǒng)開發(fā)過程中所涉及的各個知識點,適合初學者理解和應用該技術。本書通過校企合作的方式,利用2017年立項的教育部產學研協同育人項目 “嵌入式系統(tǒng)課程教學內容與教學體系改革”,借助北京博創(chuàng)智聯科技有限公司的實驗箱UPMobNetⅡ,編寫了大量實驗方面的內容,由淺入深,使學生對嵌入式技術的理解能更進一步。
2. 內容通俗易懂,圖文并茂
本書結合計算機等級考試嵌入式系統(tǒng)三級考試大綱,對內容進行了合理組織,條理性強,內容注重框架方式的講解,培養(yǎng)學生對于完整嵌入式系統(tǒng)的大局觀,使學生便于理解和記憶。
3. 章節(jié)緊湊,針對性強
本書結合作者教學團隊多年的教學經驗及參與科研項目和學生競賽的經驗,借鑒了同行專家的意見,注重基礎和實踐,每章都有配套的習題,實驗后面都有相應的思考題,有利于學生復習所學知識。
本書由多位老師分工完成:趙宏編寫了第1章;王璐編寫了第2章和第3章;張璽君編寫了第4章、第7章、第8章和第9章;馬維俊編寫了第5章和第6章。全書由張璽君負責策劃、統(tǒng)稿。
在本書的編寫過程中,北京博創(chuàng)智聯科技有限公司提供了設備和技術支持,蘭州理工大學計算機與通信學院物聯網工程系的各位老師給予了大力的支持,在此表示誠摯的感謝!
因時間倉促,書中疏漏之處在所難免,懇請廣大讀者批評指正。讀者可通過zxjun@lut.cn與作者聯系。
第1章 嵌入式系統(tǒng)概論 1
1.1 嵌入式系統(tǒng)的定義 1
1.2 嵌入式系統(tǒng)的組成 3
1.3 嵌入式系統(tǒng)的發(fā)展過程 6
1.4 嵌入式系統(tǒng)的開發(fā)流程 7
1.5 嵌入式系統(tǒng)的應用領域 8
習題 9
第2章 嵌入式Linux操作系統(tǒng) 10
2.1 主流的嵌入式操作系統(tǒng) 10
2.1.1 嵌入式操作系統(tǒng)概述 10
2.1.2 嵌入式Linux 10
2.1.3 Android操作系統(tǒng) 11
2.1.4 iOS 12
2.1.5 Windows CE 13
2.1.6 VxWorks 13
2.1.7 實時操作系統(tǒng) 13
2.2 μC/OSⅡ嵌入式操作系統(tǒng) 14
2.2.1 μC/OSⅡ操作系統(tǒng)概述 14
2.2.2 μC/OSⅡ的任務及管理 14
2.2.3 μC/OSⅡ的任務調度 15
2.2.4 μC/OSⅡ的移植 16
習題 17
第3章 嵌入式系統(tǒng)開發(fā)環(huán)境 18
3.1 Linux程序設計 18
3.1.1 Vim編輯器的使用 18
3.1.2 GCC編譯器 21
3.1.3 GDB調試程序 24
3.1.4 Makefile 26
3.2 嵌入式開發(fā)環(huán)境 29
3.2.1 嵌入式交叉編譯環(huán)境的搭建 29
3.2.2 交叉編譯 30
3.2.3 交叉編譯工具 30
3.2.4 宿主機交叉環(huán)境的建立 30
習題 32
第4章 嵌入式處理器 33
4.1 嵌入式處理器概述 33
4.1.1 嵌入式處理器的結構類型 33
4.1.2 嵌入式處理器簡介 35
4.1.3 ARM處理器系列概述 36
4.2 ARM Cortex處理器 41
4.2.1 CortexM3 41
4.2.2 ARM CortexA8 43
4.2.3 ARM CortexA9 44
4.3 ARM處理器編程模型 45
4.3.1 數據類型 45
4.3.2 ARM處理器的工作模式 45
4.3.3 寄存器組織 46
4.3.4 存儲器組織結構 50
4.3.5 ARM的異常處理機制 51
習題 53
第5章 ARM指令集 54
5.1 ARM指令概述 56
5.2 條件執(zhí)行指令 62
5.3 操作數預處理指令 64
5.4 數據處理指令 69
5.5 控制類指令 80
5.6 傳送類指令 89
5.7 ARMv8體系架構 97
5.8 Thumb指令集概述 105
習題 107
第6章 ARM匯編程序設計 108
6.1 ARM匯編集成開發(fā)環(huán)境 108
6.1.1 ADS集成開發(fā)環(huán)境簡介 108
6.1.2 編輯ARM匯編語言源程序 109
6.1.3 在命令行方式下調試 109
6.1.4 在IDE環(huán)境下調試 110
6.1.5 ARM DS5集成開發(fā)環(huán)境簡介 114
6.1.6 ARM DS5編輯運行ARM匯編語言源程序 116
6.2 ARM匯編程序基本結構 119
6.2.1 ARM匯編語言的語句格式 119
6.2.2 ARM匯編語言的程序格式 120
6.3 ARM匯編語言程序中的符號和表達式 122
6.3.1 ARM匯編語言中的符號 122
6.3.2 ARM匯編語言中的表達式 123
6.4 ARM匯編語言偽操作 126
6.4.1 符號定義偽操作 127
6.4.2 數據定義偽操作 129
6.4.3 雜項偽操作 133
6.4.4 匯編控制偽操作 136
6.4.5 信息報告?zhèn)尾僮?137
6.4.6 框架描述偽操作 138
6.5 ARM匯編語言偽指令 138
6.5.1 ADR偽指令 139
6.5.2 ADRL偽指令 140
6.5.3 LDR偽指令 141
6.6 ARM匯編語言宏指令 143
6.7 ARM匯編語言程序子程序 145
6.8 C語言與ARM匯編語言的混合編程 146
6.8.1 ATPCS簡介 147
6.8.2 使用內嵌匯編器 148
6.8.3 內嵌匯編指令應用舉例 150
6.8.4 在匯編代碼中訪問C程序的全局變量 151
6.8.5 ARM匯編程序與C程序的相互調用 152
習題 154
第7章 嵌入式系統(tǒng)實驗 156
7.1 認識UPMobNetⅡ實驗箱 156
7.2 建立開發(fā)環(huán)境 158
7.3 給下位機燒寫軟件系統(tǒng) 162
習題 174
第8章 基礎實驗 175
8.1 熟悉Linux開發(fā)環(huán)境 175
8.2 多線程應用程序設計 177
8.3 串行端口程序設計 185
8.4 嵌入式Web服務器 195
習題 203
第9章 Android開發(fā)環(huán)境搭建 204
9.1 Android Ubuntu開發(fā)環(huán)境的建立 204
9.2 Android XP開發(fā)環(huán)境的建立 219
習題 229
參考文獻 230