ARM嵌入式應(yīng)用技術(shù)與實(shí)踐
定 價(jià):44.8 元
叢書(shū)名:普通高等教育“十三五”電子信息類(lèi)規(guī)劃教材
- 作者:張平均 歐忠良 黃家善
- 出版時(shí)間:2019/2/1
- ISBN:9787111615231
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP332
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)以S3C2440嵌入式處理器為核心,介紹嵌入式系統(tǒng)的原理與結(jié)構(gòu)、Linux驅(qū)動(dòng)及編程基礎(chǔ)、嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境的搭建、嵌入式系統(tǒng)開(kāi)發(fā)和調(diào)試工具、嵌入式Linux系統(tǒng)的驅(qū)動(dòng)及應(yīng)用程序設(shè)計(jì)、SQLite數(shù)據(jù)庫(kù)的嵌入式應(yīng)用及實(shí)例開(kāi)發(fā)。本書(shū)內(nèi)容具有系統(tǒng)性與實(shí)用性相結(jié)合的特點(diǎn),在注重嵌入式系統(tǒng)軟件與硬件知識(shí)的講解的同時(shí),加強(qiáng)了對(duì)Linux系統(tǒng)的應(yīng)用基礎(chǔ)與開(kāi)發(fā)技術(shù)的介紹,也兼顧了Linux系統(tǒng)在GUI和數(shù)據(jù)庫(kù)等方面的應(yīng)用。
嵌入式系統(tǒng)是軟硬件相結(jié)合、創(chuàng)新與應(yīng)用相結(jié)合的工程復(fù)雜性系統(tǒng),它涉及信息處理與通信、電子科學(xué)、計(jì)算機(jī)等多學(xué)科的知識(shí)與技能。嵌入式系統(tǒng)已經(jīng)廣泛地應(yīng)用于通信及消費(fèi)類(lèi)電子、傳感與檢測(cè)、工業(yè)控制、物聯(lián)網(wǎng)和多媒體應(yīng)用等諸多領(lǐng)域。
全書(shū)分為8章。第1章介紹嵌入式系統(tǒng)的基本概念和特征,嵌入式處理器和嵌入式操作系統(tǒng)的主要類(lèi)型及其發(fā)展,嵌入式Linux應(yīng)用系統(tǒng)的開(kāi)發(fā)流程;第2章介紹Linux常用shell命令的使用,Linux下的程序開(kāi)發(fā)的工具軟件,為在Linux環(huán)境下的嵌入式開(kāi)發(fā)提供技術(shù)基礎(chǔ);第3章介紹嵌入式Linux交叉編譯環(huán)境的搭建,基于開(kāi)源代碼UBoot對(duì)S3C2440的配置編譯與移植,基于Linux2.6的內(nèi)核源代碼,實(shí)現(xiàn)S3C2440目標(biāo)平臺(tái)的嵌入式Linux內(nèi)核配置編譯與移植,基于BusyBox構(gòu)建嵌入式Linux根文件系統(tǒng)及其移植,為后續(xù)的驅(qū)動(dòng)程序與應(yīng)用程序的開(kāi)發(fā)提供板級(jí)軟件環(huán)境的支持;第4章介紹Linux系統(tǒng)的設(shè)備管理體系結(jié)構(gòu),Linux的驅(qū)動(dòng)程序接口函數(shù)與數(shù)據(jù)結(jié)構(gòu);第5章介紹ARM CPU S3C2440的性能與電氣特性,介紹其引腳定義、相關(guān)寄存器配置及其驅(qū)動(dòng)程序代碼設(shè)計(jì);第6章介紹幾種流行的嵌入式GUI開(kāi)發(fā)軟件,以Qt為例,介紹嵌入式應(yīng)用程序設(shè)計(jì)的編程方法及其要求,并給出了設(shè)計(jì)實(shí)例;第7章以SQLite為例,介紹數(shù)據(jù)庫(kù)在嵌入式系統(tǒng)中的應(yīng)用設(shè)計(jì)基礎(chǔ),包含數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)原理,數(shù)據(jù)庫(kù)的命令及其API的應(yīng)用基礎(chǔ),最后給出了應(yīng)用實(shí)例;第8章給出了嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)的幾個(gè)實(shí)例。全書(shū)涵蓋了嵌入式數(shù)據(jù)采集與通信、嵌入式游戲開(kāi)發(fā)、嵌入式數(shù)據(jù)庫(kù)和Qt應(yīng)用編程等內(nèi)容,致力于培養(yǎng)學(xué)生的動(dòng)手能力,使學(xué)生能夠掌握嵌入式系統(tǒng)應(yīng)用設(shè)計(jì)的基本方法、流程和功能實(shí)現(xiàn)。
本書(shū)參考學(xué)時(shí)為48學(xué)時(shí),有關(guān)章節(jié)內(nèi)容可以根據(jù)各學(xué)校的專(zhuān)業(yè)要求及其學(xué)時(shí)情況酌情 調(diào)整。
本書(shū)覆蓋了ARM嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)的操作系統(tǒng)與硬件體系知識(shí)、基礎(chǔ)技能與項(xiàng)目開(kāi)發(fā)實(shí)踐技能等內(nèi)容,結(jié)合了編者在高校教學(xué)及企業(yè)產(chǎn)品開(kāi)發(fā)人員培訓(xùn)中的素材及教學(xué)經(jīng)驗(yàn)。本書(shū)可作為高等院校的電子信息工程、通信工程、物聯(lián)網(wǎng)工程、自動(dòng)化及計(jì)算機(jī)等專(zhuān)業(yè)的教材,也可作為從事嵌入式系統(tǒng)應(yīng)用研究與產(chǎn)品開(kāi)發(fā)的工程技術(shù)人員的參考書(shū)。
本書(shū)由福建工程學(xué)院信息科學(xué)與工程學(xué)院張平均教授、廈門(mén)傳一信息科技(卓越教育)有限公司技術(shù)總監(jiān)歐忠良、福建工程學(xué)院國(guó)脈信息學(xué)院黃家善教授承擔(dān)主要編寫(xiě)工作;福建工程學(xué)院的陳婧講師參與編寫(xiě)了本書(shū)的第2~4章的內(nèi)容;廈門(mén)傳一信息科技(卓越教育)有限公司李雅靜工程師參與編寫(xiě)了本書(shū)的第7~8章的內(nèi)容。
本書(shū)在編寫(xiě)過(guò)程中參考了許多優(yōu)秀的著作與教材,引用了廈門(mén)傳一信息科技(卓越教育)有限公司嵌入式技術(shù)與應(yīng)用培訓(xùn)課程的案例,并得到機(jī)械工業(yè)出版社的大力支持與指導(dǎo),在此對(duì)他們表示衷心的感謝。
由于作者學(xué)識(shí)水平有限,殷切希望教師、學(xué)生和專(zhuān)業(yè)技術(shù)人員對(duì)本書(shū)的內(nèi)容、結(jié)構(gòu)及存在的疏漏與錯(cuò)誤之處給予批評(píng)、指正。
編 者
目 錄
前 言
第1章 嵌入式系統(tǒng)概述1
1.1 嵌入式系統(tǒng)的基本概念1
1.1.1 嵌入式系統(tǒng)的定義1
1.1.2 嵌入式系統(tǒng)的體系結(jié)構(gòu)2
1.1.3 嵌入式系統(tǒng)的應(yīng)用3
1.1.4 嵌入式系統(tǒng)的發(fā)展3
1.2 嵌入式處理器4
1.2.1 ARM微處理器概述4
1.2.2 ARM微處理器系列5
1.3 嵌入式操作系統(tǒng)8
1.3.1 嵌入式操作系統(tǒng)的發(fā)展8
1.3.2 嵌入式操作系統(tǒng)的分類(lèi)8
1.4 嵌入式系統(tǒng)開(kāi)發(fā)的基本流程9
1.4.1 硬件開(kāi)發(fā)流程10
1.4.2 軟件開(kāi)發(fā)流程11
本章小結(jié)11
習(xí)題與思考題12
第2章 Linux應(yīng)用及編程基礎(chǔ)13
2.1 Linux概述13
2.1.1 Linux的基本特性13
2.1.2 Linux的版本14
2.1.3 Linux的內(nèi)核架構(gòu)15
2.1.4 Linux軟件層次結(jié)構(gòu)16
2.2 Linux的常用命令17
2.2.1 基本操作類(lèi)命令18
2.2.2 文件系統(tǒng)類(lèi)命令21
2.2.3 進(jìn)程控制類(lèi)命令25
2.2.4 網(wǎng)絡(luò)管理類(lèi)命令26
2.2.5 模塊操作類(lèi)命令27
2.3 Linux下的程序開(kāi)發(fā)工具應(yīng)用基礎(chǔ)28
2.3.1 編輯器28
2.3.2 GCC編譯器29
2.3.3 GDB調(diào)試器31
2.4 Linux程序編譯基礎(chǔ)34
2.4.1 Makefile文件34
2.4.2 Make工具及其應(yīng)用42
本章小結(jié)45
習(xí)題與思考題45
第3章 嵌入式Linux開(kāi)發(fā)環(huán)境的構(gòu)建46
3.1 Linux環(huán)境下的嵌入式系統(tǒng)開(kāi)發(fā)模式46
3.2 嵌入式Linux交叉編譯環(huán)境的搭建47
3.2.1 宿主機(jī)交叉編譯工具的配置47
3.2.2 宿主機(jī)串口工具的配置與使用48
3.2.3 NFS安裝、配置與測(cè)試52
3.2.4 TFTP安裝、配置與測(cè)試53
3.3 UBoot54
3.3.1 BootLoader簡(jiǎn)介54
3.3.2 UBoot代碼分析55
3.3.3 UBoot的移植59
3.4 嵌入式Linux內(nèi)核的配置編譯與移植65
3.4.1 Linux內(nèi)核的源代碼結(jié)構(gòu)66
3.4.2 Linux內(nèi)核中的Kconfig和Makefile文件67
3.4.3 嵌入式Linux內(nèi)核的配置69
3.4.4 嵌入式Linux內(nèi)核的編譯以及燒寫(xiě)73
3.5 嵌入式Linux根文件系統(tǒng)的構(gòu)建與移植74
3.5.1 Linux支持的文件系統(tǒng)74
3.5.2 根文件系統(tǒng)的基礎(chǔ)76
3.5.3 BusyBox的配置與編譯77
3.5.4 制作YAFFS2根文件系統(tǒng)鏡像81
本章小結(jié)84
習(xí)題與思考題84
第4章 嵌入式Linux的設(shè)備驅(qū)動(dòng)開(kāi)發(fā)基礎(chǔ)85
4.1 Linux設(shè)備管理基礎(chǔ)85
4.1.1 Linux設(shè)備分類(lèi)86
4.1.2 Linux設(shè)備文件86
4.1.3 Linux模塊與設(shè)備管理88
4.1.4 模塊的自動(dòng)加載88
4.2 Linux模塊化程序的代碼結(jié)構(gòu)88
4.3 Linux字符設(shè)備驅(qū)動(dòng)程序93
4.3.1 設(shè)備驅(qū)動(dòng)程序框架94
4.3.2 Linux下設(shè)備驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)96
4.3.3 Linux下設(shè)備驅(qū)動(dòng)的調(diào)用函數(shù)100
4.4 Linux設(shè)備驅(qū)動(dòng)的相關(guān)技術(shù)101
4.4.1 Linux設(shè)備驅(qū)動(dòng)的并發(fā)控制101
4.4.2 Linux設(shè)備驅(qū)動(dòng)中的阻塞和非阻塞104
4.4.3 Linux設(shè)備驅(qū)動(dòng)中的異步通知108
4.5 Linux設(shè)備驅(qū)動(dòng)程序的靜態(tài)編譯到內(nèi)核109
4.6 Linux設(shè)備驅(qū)動(dòng)程序模塊的加/卸載111
4.7 Linux字符設(shè)備驅(qū)動(dòng)測(cè)試程序代碼113
本章小結(jié)114
習(xí)題與思考題114
第5章 基于S3C2440的嵌入式Linux驅(qū)動(dòng)程序開(kāi)發(fā)115
5.1 S3C2440的體系結(jié)構(gòu)簡(jiǎn)介115
5.2 ARM920T處理器的編程基礎(chǔ)117
5.2.1 ARM9微處理器的工作模式117
5.2.2 ARM9微處理器的寄存器組織117
5.2.3 ARM9的存儲(chǔ)方式119
5.2.4 ARM處理器的異常處理119
5.2.5 S3C2440的存儲(chǔ)管理120
5.2.6 S3C2440的啟動(dòng)過(guò)程122
5.3 S3C2440的GPIO驅(qū)動(dòng)編程124
5.3.1 S3C2440的GPIO硬件基礎(chǔ)124
5.3.2 S3C2440的GPIO寄存器125
5.3.3 S3C2440的GPIO驅(qū)動(dòng)程序126
5.4 S3C2440中斷方式的驅(qū)動(dòng)編程129
5.4.1 中斷原理129
5.4.2 S3C2440的中斷機(jī)制130
5.4.3 S3C2440的中斷寄存器135
5.4.4 Linux中斷相關(guān)的API139
5.4.5 S3C2440的中斷程序140
5.5 S3C2440的串口驅(qū)動(dòng)編程145
5.5.1 S3C2440的串口通信基礎(chǔ)146
5.5.2 S3C2440的串口驅(qū)動(dòng)編程寄存器148
5.5.3 S3C2440的串口驅(qū)動(dòng)代碼155
5.6 S3C2440的ADC和觸摸屏驅(qū)動(dòng)編程159
5.6.1 S3C2440的ADC寄存器159
5.6.2 S3C2440的ADC驅(qū)動(dòng)程序設(shè)計(jì)161
5.6.3 S3C2440的觸摸屏驅(qū)動(dòng)基礎(chǔ)167
5.6.4 S3C2440的觸摸屏寄存器169
5.6.5 S3C2440的觸摸屏程序170
本章小結(jié)177
習(xí)題與思考題177
第6章 嵌入式Linux系統(tǒng)的Qt編程178
6.1 嵌入式Linux的GUI簡(jiǎn)介178
6.2 Qt/Qt/Embedded概述180
6.2.1 Qt體系架構(gòu)180
6.2.2 Qt/Embedded181
6.2.3 Qtopia182
6.3 Qt/Embedded程序開(kāi)發(fā)基礎(chǔ)183
6.3.1 Qt對(duì)象模型183
6.3.2 Qt信號(hào)與槽184
6.3.3 Qt/Embedded事件192
6.3.4 Qt類(lèi)庫(kù)基礎(chǔ)197
6.4 Qt的安裝與移植198
6.4.1 Qt的安裝198
6.4.2 Qt4.7.0的移植200
6.5 Qt編程實(shí)例202
本章小結(jié)209
習(xí)題與思考題209
第7章 SQLite數(shù)據(jù)庫(kù)的嵌入式應(yīng)用210
7.1 數(shù)據(jù)庫(kù)概述210
7.2 主流的嵌入式數(shù)據(jù)庫(kù)211
7.3 SQLite應(yīng)用設(shè)計(jì)基礎(chǔ)213
7.3.1 SQLite數(shù)據(jù)類(lèi)型213
7.3.2 SQLite“點(diǎn)”命令213
7.3.3 SQL數(shù)據(jù)庫(kù)操作語(yǔ)言215
7.3.4 事務(wù)與鎖223
7.4 SQLite3數(shù)據(jù)庫(kù)編程API224
7.4.1 SQLite3 API接口224
7.4.2 API實(shí)例分析226
本章小結(jié)234
習(xí)題與思考題234
第8章 嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)實(shí)例235
8.1 停車(chē)場(chǎng)管理系統(tǒng)數(shù)據(jù)庫(kù)開(kāi)發(fā)235
8.1.1 停車(chē)場(chǎng)管理系統(tǒng)簡(jiǎn)介235
8.1.2 系統(tǒng)總體設(shè)計(jì)235
8