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