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