ARM嵌入式應用技術與實踐
內容描述
本書以S3C2440嵌入式處理器為核心,介紹嵌入式系統的原理與結構、Linux驅動及編程基礎、嵌入式系統開發環境的搭建、嵌入式系統開發和調試工具、嵌入式Linux系統的驅動及應用程序設計、SQLite數據庫的嵌入式應用及實例開發。本書內容具有系統性與實用性相結合的特點,在註重嵌入式系統軟件與硬件知識的講解的同時,加強了對Linux系統的應用基礎與開發技術的介紹,也兼顧了Linux系統在GUI和數據庫等方面的應用。
目錄大綱
目錄
前言
第1章嵌入式系統概述1
1.1嵌入式系統的基本概念1
1.1.1嵌入式系統的定義1
1.1.2嵌入式系統的體系結構2
1.1.3嵌入式系統的應用3
1.1.4嵌入式系統的發展3
1.2嵌入式處理器4
1.2.1 ARM微處理器概述4
1.2.2 ARM微處理器系列5
1.3嵌入式操作系統8
1.3.1嵌入式操作系統的發展8
1.3.2嵌入式操作系統的分類8
1.4嵌入式系統開發的基本流程9
1.4.1硬件開發流程10
1.4.2軟件開發流程11
本章小結11
習題與思考題12
第2章Linux應用及編程基礎13
2.1 Linux概述13
2.1 .1 Linux的基本特性13
2.1.2 Linux的版本14
2.1.3 Linux的內核架構15
2.1.4 Linux軟件層次結構16
2.2 Linux的常用命令17
2.2.1基本操作類命令18
2.2.2文件系統類命令21
2.2.3進程控制類命令25
2.2.4網絡管理類命令26
2.2.5模塊操作類命令27
2.3 Linux下的程序開發工具應用基礎28
2.3.1編輯器28
2.3.2 GCC編譯器29
2.3.3 GDB調試器31
2.4 Linux程序編譯基礎34
2.4.1 Makefile文件34
2.4.2 Make工具及其應用42
本章小結45
習題與思考題45
第3章嵌入式Linux開發環境的構建46
3.1 Linux環境下的嵌入式系統開發模式46
3.2嵌入式Linux交叉編譯環境的搭建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內核的配置編譯與移植65
3.4.1 Linux內核的源代碼結構66
3.4.2 Linux內核中的Kconfig和Makefile文件67
3.4.3嵌入式Linux內核的配置69
3.4.4嵌入式Linux內核的編譯以及燒寫73
3.5嵌入式Linux根文件系統的構建與移植74
3.5.1 Linux支持的文件系統74
3.5.2根文件系統的基礎76
3.5.3 BusyBox的配置與編譯77
3.5.4製作YAFFS2根文件系統鏡像81
本章小結84
習題與思考題84
第4章嵌入式Linux的設備驅動開發基礎85
4.1 Linux設備管理基礎85
4.1.1 Linux設備分類86
4.1.2 Linux設備文件86
4.1.3 Linux模塊與設備管理88
4.1. 4模塊的自動加載88
4.2 Linux模塊化程序的代碼結構88
4.3 Linux字符設備驅動程序93
4.3.1設備驅動程序框架94
4.3.2 Linux下設備驅動的數據結構96
4.3.3 Linux下設備驅動的調用函數100
4.4 Linux設備驅動的相關技術101
4.4.1 Linux設備驅動的並發控制101
4.4.2 Linux設備驅動中的阻塞和非阻塞104
4.4.3 Linux設備驅動中的異步通知108
4.5 Linux設備驅動程序的靜態編譯到內核109
4.6 Linux設備驅動程序模塊的加/卸載111
4.7 Linux字符設備驅動測試程序代碼113
本章小結114
習題與思考題114
第5章基於S3C2440的嵌入式Linux驅動程序開發115
5.1 S3C2440的體系結構簡介115
5.2 ARM920T處理器的編程基礎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驅動編程124
5.3 .1 S3C2440的GPIO硬件基礎124
5.3.2 S3C2440的GPIO寄存器125
5.3.3 S3C2440的GPIO驅動程序126
5.4 S3C2440中斷方式的驅動編程129
5.4.1中斷原理129
5.4.2 S3C2440的中斷機制130
5.4.3 S3C2440的中斷寄存器135
5.4.4 Linux中斷相關的API139
5.4.5 S3C2440的中斷程序140
5.5 S3C2440的串口驅動編程145
5.5.1 S3C2440的串口通信基礎146
5.5.2 S3C2440的串口驅動編程寄存器148
5.5.3 S3C2440的串口驅動代碼155
5.6 S3C2440的ADC和触摸屏驅動編程159
5.6.1 S3C2440的ADC寄存器159
5.6.2 S3C2440的ADC驅動程序設計161
5.6.3 S3C2440的觸摸屏驅動基礎167
5.6.4 S3C2440的觸摸屏寄存器169
5.6.5 S3C2440的觸摸屏程序170
本章小結177
習題與思考題177
第6章嵌入式Linux系統的Qt編程178
6.1嵌入式Linux的GUI簡介178
6.2 Qt/Qt/Embedded概述180
6.2.1 Qt體系架構180
6.2.2 Qt/Embedded181
6.2.3 Qtopia182
6.3 Qt/Embedded程序開發基礎183
6.3.1 Qt對像模型183
6.3.2 Qt信號與槽184
6.3.3 Qt/Embedded事件192
6.3.4 Qt類庫基礎197
6.4 Qt的安裝與移植198
6.4.1 Qt的安裝198
6.4.2 Qt4.7.0的移植200
6.5 Qt編程實例202
本章小結209
習題與思考題209
第7章SQLite數據庫的嵌入式應用210
7.1數據庫概述210
7.2主流的嵌入式數據庫211
7.3 SQLite應用設計基礎213
7.3.1 SQLite數據類型213
7.3.2 SQLite“點”命令213
7.3.3 SQL數據庫操作語言215
7.3.4事務與鎖223
7.4 SQLite3數據庫編程API224
7.4.1 SQLite3 API接口224
7.4.2 API實例分析226
本章小結234
習題與思考題234
第8章嵌入式系統應用開發實例235
8.1停車場管理系統數據庫開發235
8.1.1停車場管理系統簡介235
8.1.2系統總體設計235
8.1.3數據庫模塊設計236
8.1.4系統核心代碼及執行241
8.2貪吃蛇遊戲242
8.2.1遊戲功能設計243
8.2. 2遊戲界面設計243
8.2.3 mainWidget類設計245
8.2.4 gameWidget類設計247
8.2.5遊戲運行255
8.3 GPS導航系統256
8.3.1 GPS導航系統設計257
8.3.2定位與導航258
8.3.3系統關鍵功能設計258
8.3.4 GPS導航系統實現262
8.4 UPHONE無線商話系統263
8.4.1 UPHONE無線商話系統設計264
8.4.2系統模塊設計267
8.4.3系統實現270
本章小結271
習題與思考題271
參考文獻272