《ARM嵌入式套用開發完全自學手冊》是2009年電子工業出版社出版的圖書,作者是張綺文、王廷廣。本書從實用角度出發,通過開發技術與實際工程案例結合的形式,詳細介紹了ARM嵌入式套用開發的方法、技術與流程。
基本介紹
- 書名:ARM嵌入式套用開發完全自學手冊
- 作者:張綺文,王廷廣
- ISBN:9787121085093
- 類別: 圖書>> 計算機>ARM嵌入式
- 頁數:420頁
- 定價:55.00元(含光碟1張)
- 出版社:電子工業出版社
- 出版時間: 2009-4-1
- 開本: 16開
編輯推薦,內容簡介,前 言,目 錄,
編輯推薦
本書配有光碟一張,包含了全書所有實例的硬體原理圖和程式原始碼,方便讀者學習和使用。本書適合計算機、自動化、電子及通信等相關專業的大學生,以及從事ARM開發的科研人員使用。
內容簡介
全書共分12章,主要內容包括:ARM 處理器內部結構、ARM 指令系統與編程、ARM開發環境與工具、ARM的系統調試、ARM μC/OS-Ⅱ移植與套用設計、ARM嵌入式Linux的套用開發、 ARM外圍設備的編程開發、ARM嵌入式系統組成與開發流程,以及遠程控制用印系統、無紙化排隊叫號系統和CDMA車輛報警器3個系統實例。
本書語言簡潔、層次清晰,內容從零開始、循序漸進,講解全面深入。套用技術與實際案例緊密結合,實例典型豐富,好學易懂,具有較高的實戰和商業參考價值。讀者學習後可以舉一反三,快速實現從入門到精通的飛躍。
本書配有光碟一張,包含了全書所有實例的硬體原理圖和程式原始碼,方便讀者學習和使用。本書適合計算機、自動化、電子及通信等相關專業的大學生,以及從事ARM開發的科研人員使用。
前 言
ARM是目前套用最熱門的嵌入式處理器之一,在無線通信、工業控制、數字消費類電子以及家居安全領域得到了廣泛深入地套用。由於ARM嵌入式開發軟硬體相結合的過程技術性較強,因此讀者需要了解ARM的硬體結構、指令系統,熟悉C語言、彙編編程以及ARM常用開發工具,學習基於Linux和μC/OS-Ⅱ平台的系統移植和開發,並最終掌握ARM外圍設備的編程與綜合系統的設計方法。
但目前市場上關於ARM入門學習的書,要么內容不夠全面,要么實用性不強,或者就是結構不合理、講解方式不易學等,本書將重點彌補這些不足,內容全面、系統、實用,技術涉及更加新穎深入,並安排典型的系統開發實例,突出套用性和實用性,方便讀者快速入門和提高。
本書內容
全書共分12章,主要內容安排如下:
本書特色
與同類書相比,本書具有以下特色:
內容安排系統全面、由淺入深,講解方式從零開始、循序漸進,方便初學者快速上手。
以套用和實踐為核心,ARM開發技術與實際案例緊密結合,邊講邊練,實戰價值高;同時提供了系統設計的詳細思路與流程,對實例程式代碼做了詳細注釋,利於讀者理解和鞏固知識點。
本書配有光碟一張,包含了全書所有實例的硬體原理圖和程式原始碼,方便讀者學習和使用,同時讀者只需對其稍加修改,便可套用於自己的工作中或完成自己的課題,物超所值。
光碟說明
1、光碟內容與使用說明
本光碟內容包括實例章節的程式代碼和電路圖檔案。各資料夾以書的章節編號來命名。
程式代碼資料夾:包含本書所有原始碼檔案。
電路圖資料夾:包含本書各實例原理圖文檔,請讀者使用protel 99或者DXP軟體查看。
2、系統配置要求
該光碟運行只需一般的PC機就可以。
對使用Protel99操作的用戶,建議系統配置為128MB以上記憶體,1024×768解析度,8MB以上顯存。
對使用Protel DXP或Protel 2006的用戶,建議系統配置為256MB以上記憶體,1280×1024解析度,32MB以上顯存。
本書適合高校計算機、自動化、電子及通信等相關專業的大學生以及從事ARM開發的科研人員使用。
本書主要由張綺文、王廷廣編寫,另外參加編寫的人員還有:唐清善、邱寶良、周克足、劉 斌、李亞捷、李永懷、李寧宇、劉偉捷、黃小歡、嚴劍忠、黃小寬、李彥超、付軍鵬、張廣安、賈素龍、王艷波、金 平、徐春林、謝正義、鄭貞平、張小紅等。他們在資料收集、整理和技術支持方面做了大量的工作,在此一併向他們表示感謝!
由於時間倉促,再加之作者的水平有限,書中難免存在一些不足之處,歡迎廣大讀者批評和指正。
目 錄
基 礎 篇
第1章 ARM 處理器概述 1
1.1 ARM 公司簡介 1
1.2 ARM特點與套用領域 2
1.2.1 ARM特點 2
1.2.2 ARM套用領域 2
1.3 ARM處理器系列 3
1.4 ARM主流晶片介紹 7
1.4.1 ATMEL公司帶ARM核的晶片 7
1.4.2 ADMtek公司帶ARM核的晶片 12
1.4.3 Cirrus Logic公司帶ARM核的晶片 13
1.4.4 Intel公司帶ARM核的晶片 14
1.4.5 LinkUp公司帶ARM核的晶片 16
1.4.6 NetSilicon公司帶ARM核的晶片 17
1.4.7 SAMSUNG公司帶ARM核的晶片 21
1.4.8 TI公司帶ARM核的晶片 23
1.4.9 Triscend公司帶ARM核的晶片 24
1.5 本章總結 26
第2章 ARM的系統結構 27
2.1 ARM核心基本結構 27
2.1.1 ARM核心 27
2.1.2 ARM擴展功能塊 28
2.1.3 ARM啟動方式 30
2.2 ARM處理器運行模式 31
2.3 ARM暫存器 31
2.3.1 通用暫存器 32
2.3.2 程式狀態暫存器 33
2.3.3 ARM狀態下的暫存器 35
2.3.4 Thumb狀態下的暫存器 36
2.4 ARM存儲系統 37
2.4.1 ARM存儲方法 37
2.4.2 存儲空間管理單元MMU 37
2.5 ARM流水線與時序 39
2.5.1 ARM流水線 39
2.5.2 ARM時序 40
2.6 ARM中斷與異常 41
2.6.1 ARM異常類型 41
2.6.2 異常的回響及返回 42
2.6.3 異常的描述 42
2.6.4 異常的處理 44
2.7 ARM的匯流排接口 45
2.7.1 ARM的存儲器接口 45
2.7.2 ARM的協處理器接口 55
2.7.3 AMBA接口 60
2.8 本章總結 64
第3章 ARM 指令系統與編程 65
3.1 ARM 32位指令系統 65
3.1.1 ARM指令系統概述 65
3.1.2 ARM定點指令集 68
3.1.3 ARM浮點指令集 89
3.2 ARM 16位Thumb指令系統 93
3.2.1 Thumb指令系統概述 93
3.2.2 Thumb指令集 94
3.3 ARM彙編語言設計 105
3.3.1 ARM彙編器所支持的偽指令 105
3.3.2 彙編語言的語句格式 112
3.3.3 彙編語言的程式結構 115
3.4 ARM C語言設計 117
3.4.1 ARM C/C++編程設計 117
3.4.2 ARM C/C++與彙編混合編程 127
3.4.3 ARM C/C++編譯器 136
3.4.4 C語言最佳化編程 141
3.5 本章總結 146
第4章 ARM開發環境與工具 147
4.1 ADS開發環境 147
4.1.1 CodeWarrior的使用 147
4.1.2 AXD的使用 152
4.2 SDT開發環境 154
4.2.1 SDT開發環境及特點 154
4.2.2 SDT調試環境 154
4.2.3 利用SDT軟體編程實例 154
4.3 Linux的GNU編譯工具 157
4.3.1 Linux基礎知識 157
4.3.2 GNU彙編器gas 159
4.3.3 GNU編譯器gcc 160
4.3.4 GNU Make工具 162
4.3.5 GNU連結器ld 169
4.3.6 GNU套用實例 170
4.4 本章總結 171
第5章 ARM的系統調試 172
5.1 ARM調試方法概述 172
5.2 AXD平台仿真器調試 173
5.2.1 初始化存儲器 173
5.2.2 線上仿真 174
5.2.3 常見問題 175
5.3 基於Angel的調試系統 175
5.3.1 基於Angel的調試系統概述 176
5.3.2 使用Angel開發應用程式 178
5.3.3 Angel執行的操作 182
5.3.4 將Angel移植到特定的目標系統 184
5.4 基於JTAG的調試系統 201
5.4.1 調試接口JTAG介紹 201
5.4.2 基於JTAG的調試系統的特點 203
5.4.3 基於JTAG的調試系統結構 204
5.4.4 目標系統中的調試功能擴展部件 205
5.4.5 基於JTAG的調試過程 206
5.5 本章總結 206
提 高 篇
第6章 μC/OS-Ⅱ移植與套用設計 207
6.1 μC/OS-Ⅱ概述 207
6.1.1 μC/OS-II簡介 207
6.1.2 μC/OS-II的特點 208
6.2 μC/OS-Ⅱ移植過程 209
6.2.1 準備內容說明 209
6.2.2 μC/OS-II檔案體系結構 209
6.2.3 μC/OS-II移植條件 209
6.2.4 μC/OS-II在S3C44B0X上的移植 210
6.3 μC/OS-Ⅱ軟體設計實例 211
6.4 實例總結 213
第7章 ARM嵌入式Linux的套用開發 214
7.1 嵌入式Linux開發的一般流程 214
7.2 ARM嵌入式Linux開發環境構造 215
7.3 BOOT LOADER的安裝 217
7.4 Linux系統移植原理與過程 228
7.4.1 Linux系統移植原理 228
7.4.2 ARM Linux的移植過程 230
7.5 Linux根檔案系統的原理與創建 237
7.5.1 根檔案系統原理 237
7.5.2 根檔案創建過程 240
7.5.3 相關總結 246
7.6 Linux下的GUI系統配置與移植 246
7.6.1 GUI系統原理 246
7.6.2 不同GUI平台的移植配置 249
7.6.3 GUI圖形顯示的實現 251
7.7 編寫嵌入式Linux的設備驅動程式 254
7.8 Linux套用開發實例:GPIO設備程式開發 256
7.8.1 實例說明 256
7.8.2 GPIO設備驅動原理 257
7.8.3 GPIO設備程式開發 258
7.9 本章小結 259
第8章 ARM外圍設備的編程開發 260
8.1 ARM外圍設備編程原理 261
8.1.1 Flash的工作原理與編程 261
8.1.2 SDRAM的工作原理與編程 268
8.1.3 串口、乙太網口的設計 272
8.1.4 電源模組 273
8.1.5 液晶顯示模組LCD 274
8.1.6 鍵盤模組 275
8.2 ARM外圍設備設計實例1——USB設備模組設計 276
8.2.1 實例說明 276
8.2.2 設計思路分析 276
8.2.3 硬體電路設計 279
8.2.4 軟體設計 282
8.2.5 實例小結 286
8.3 ARM外圍設備設計實例2——I2C匯流排接口設計 286
8.3.1 實例說明 286
8.3.2 I2C設計原理 286
8.3.3 I2C硬體電路設計 287
8.3.4 軟體設計 289
8.3.5 實例小結 298
8.4 本章小結 298
實 戰 篇
第9章 ARM嵌入式系統組成與開發流程 299
9.1 ARM嵌入式系統的組成 299
9.2 ARM嵌入式系統體系結構 299
9.2.1 硬體體系結構 300
9.2.2 軟體體系結構 301
9.3 ARM嵌入式硬體平台實現方法 302
9.3.1 硬體電路板設計 302
9.3.2 ARM硬體設計原則 303
9.4 ARM嵌入式軟體的開發方法 304
9.4.1 軟體開發流程 304
9.4.2 軟體開發環境構建 306
9.5 本章總結 306
第10章 遠程控制用印系統設計(基於μC/OS-II系統) 307
10.1 實例說明 307
10.2 設計思路分析 308
10.2.1 遠程用印系統實現方案 308
10.2.2 用印系統的擴展套用實現方案 308
10.3 硬體電路設計 308
10.3.1 總體電路設計 308
10.3.2 步進電機驅動模組 309
10.3.3 LCD數據顯示模組 310
10.4 軟體設計 312
10.4.1 步進電機的S曲線實現 312
10.4.2 程式代碼與注釋 313
10.5 實例總結 330
第11章 基於ARM無線的無紙化排隊叫號系統 331
11.1 系統說明 331
11.2 系統實現方案 332
11.3 硬體電路設計 333
11.3.1 CC1100晶片 333
11.3.2 接口電路 335
11.3.3 SPI 介紹 337
11.3.4 LPC2132的SPI控制暫存器介紹 339
11.4 軟體設計 339
11.5 程式代碼與注釋 345
11.6 實例總結 370
第12章 基於GPSOne的CDMA車輛報警器設計 371
12.1 系統說明 371
12.1.1 系統構成 371
12.1.2 報警器構成 372
12.2 系統方案設計 372
12.2.1 傳統設計思路 372
12.2.2 採用GPSOne的設計思路 373
12.3 硬體電路設計 374
12.3.1 DTGS-800介紹 374
12.3.2 電源電路 375
12.3.3 DTGS-800接口以及其與LPC2132通信接口 376
12.3.4 UIM卡的接口電路 377
12.3.5 工作指示燈、模組忙信號指示燈電路及按鍵電路 377
12.3.6 模組復位、蜂鳴器和震動感測器電路 378
12.3.7 I2C及串列EEPROM電路 378
12.3.8 系統總體電路 379
12.4 軟體設計 380
12.4.1 DTGS-800支持的AT指令 380
12.4.2 軟體工作流程 383
12.5 代碼說明與注釋 384
12.5.1 系統初始化 384
12.5.2 主函式處理的任務 389
12.5.3 中斷處理和數據接收判斷 392
12.5.4 源程式附錄(主要程式) 394
12.6 實例總結 408