ARM 嵌入式系統(tǒng)原理與應用教程(第2版)
定 價:49 元
- 作者:趙常松,吳顯義 著
- 出版時間:2016/9/1
- ISBN:9787512422322
- 出 版 社:北京航空航天大學出版社
- 中圖法分類:TP332
- 頁碼:322
- 紙張:膠版紙
- 版次:2
- 開本:16K
本書以S3C6410處理器為核心講述嵌入式系統(tǒng)的原理及應用,包含兩方面內容:一是介紹通用ARM微處理器的基本架構、基本驅動程序的編程思想和編程方法,重點介紹基于ARM11架構的硬件接口電路的開發(fā)流程;二是以北京中芯優(yōu)電TOPSEN嵌入式開發(fā)實驗系統(tǒng)為硬件平臺,結合多個綜合應用開發(fā)實例,詳細分析了幾個案例的系統(tǒng)設計,從而使讀者加快掌握S3C6410處理器開發(fā)的流程。相比第1版,本書對讀者反饋問題進行了修正,并增加了習題。
本書側重于實踐應用,以典型案例為基礎,注重基礎理論與實踐應用的結合,可作為應用類本科院校的教材,適用于培養(yǎng)應用型電子技術人才,同時也可以作為嵌入式開發(fā)人員的參考書。
第1章 ARM 微處理器概述………………………………………………………… 1
1.1 ARM 及相關技術簡介……………………………………………………… 1
1.2 ARM 微處理器的應用領域及特點………………………………………… 2
1.3 ARM 微處理器系列………………………………………………………… 2
1.4 ARM 微處理器結構………………………………………………………… 13
1.5 ARM 微處理器的應用選型………………………………………………… 14
1.6 本章小結……………………………………………………………………… 16
1.7 練習題……………………………………………………………………… 16
第2章 ARM 微處理器的編程模型……………………………………………… 17
2.1 ARM 微處理器的工作狀態(tài)………………………………………………… 17
2.2 ARM 體系結構的存儲器格式……………………………………………… 18
2.3 指令長度和數據類型………………………………………………………… 19
2.4 處理器模式…………………………………………………………………… 19
2.5 寄存器組織…………………………………………………………………… 19
2.5.1 ARM 狀態(tài)下的寄存器組織…………………………………………… 19
2.5.2 Thumb狀態(tài)下的寄存器組織………………………………………… 22
2.5.3 程序狀態(tài)寄存器………………………………………………………… 23
2.6 異 ! 25
2.7 本章小結……………………………………………………………………… 29
2.8 練習題………………………………………………………………………… 29
第3章 ARM 微處理器的指令系統(tǒng)……………………………………………… 31
3.1 ARM 微處理器的指令集概述……………………………………………… 31
3.2 ARM 指令的尋址方式……………………………………………………… 33
3.3 ARM 指令集………………………………………………………………… 35
3.3.1 跳轉指令………………………………………………………………… 35
3.3.2 數據處理指令…………………………………………………………… 37
3.3.3 乘法指令與乘加指令…………………………………………………… 41
3.3.4 程序狀態(tài)寄存器訪問指令……………………………………………… 43
3.3.5 加載/存儲指令………………………………………………………… 44
3.3.6 批量數據加載/存儲指令……………………………………………… 46
3.3.7 數據交換指令…………………………………………………………… 46
3.3.8 移位指令(操作)………………………………………………………… 47
3.3.9 協(xié)處理器指令…………………………………………………………… 48
3.3.10 異常產生指令………………………………………………………… 50
3.4 Thumb指令及應用………………………………………………………… 50
3.5 本章小結……………………………………………………………………… 51
3.6 練習題………………………………………………………………………… 52
第4章 ARM 程序設計基礎……………………………………………………… 53
4.1 ARM 匯編器所支持的偽指令……………………………………………… 53
4.1.1 符號定義偽指令………………………………………………………… 53
4.1.2 數據定義偽指令………………………………………………………… 55
4.1.3 匯編控制偽指令………………………………………………………… 58
4.1.4 其他常用的偽指令……………………………………………………… 59
4.2 匯編語言的語句格式………………………………………………………… 64
4.2.1 在匯編語言程序中常用的符號………………………………………… 64
4.2.2 匯編語言程序中的表達式和運算符…………………………………… 65
4.3 匯編語言的程序結構………………………………………………………… 68
4.3.1 匯編語言的程序結構…………………………………………………… 68
4.3.2 匯編語言的子程序調用………………………………………………… 69
4.3.3 匯編語言程序示例……………………………………………………… 69
4.4 匯編語言模塊的結構………………………………………………………… 72
4.4.1 匯編語言源文件的編排………………………………………………… 72
4.4.2 ARM 匯編語言模塊的示例…………………………………………… 73
4.4.3 調用子例程……………………………………………………………… 74
4.4.4 條件執(zhí)行………………………………………………………………… 75
4.4.5 使用條件執(zhí)行及其示例………………………………………………… 76
4.4.6 Q 標記………………………………………………………………… 79
4.4.7 匯編語言與C/C++的混合編程…………………………………… 79
4.5 本章小結……………………………………………………………………… 80
4.6 練習題………………………………………………………………………… 81
第5章 ARM C語言程序設計基礎………………………………………………… 82
5.1 嵌入式系統(tǒng)中的C語言編程基礎………………………………………… 82
5.2 偽指令在嵌入式程序設計中的應用………………………………………… 83
5.3 嵌入式C語言程序設計中的函數及函數庫……………………………… 86
5.4 嵌入式程序設計中常用的C語言語句…………………………………… 86
5.5 匯編語言與C/C++的混合編程………………………………………… 89
5.6 ATPCS規(guī)則………………………………………………………………… 93
5.7 本章小結……………………………………………………………………… 95
5.8 練習題………………………………………………………………………… 95
第6章 S3C6410系統(tǒng)設計與調試………………………………………………… 97
6.1 系統(tǒng)設計概述………………………………………………………………… 97
6.2 S3C6410概述………………………………………………………………… 98
6.2.1 S3C6410及片內外圍簡介……………………………………………… 98
6.2.2 S3C6410的引腳分布及信號描述…………………………………… 100
6.2.3 外部存儲器接口……………………………………………………… 105
6.2.4 串行通信……………………………………………………………… 107
6.2.5 顯示器控制…………………………………………………………… 109
6.3 存儲器映射………………………………………………………………… 112
6.4 系統(tǒng)控制器………………………………………………………………… 113
6.4.1 時鐘源………………………………………………………………… 114
6.4.2 鎖相環(huán)………………………………………………………………… 115
6.4.3 ARM 和AXI/AHB/APB總線時鐘發(fā)生器………………………… 116
6.4.4 MFC時鐘發(fā)生器……………………………………………………… 118
6.4.5 顯示時鐘發(fā)生器(POST,LCD和Scaler)…………………………… 119
6.4.6 時鐘開/關控制………………………………………………………… 120
6.5 S3C6410復位信號………………………………………………………… 120
6.5.1 溫復位………………………………………………………………… 120
6.5.2 軟件復位……………………………………………………………… 123
6.5.3 看門狗復位…………………………………………………………… 124
6.6 寄存器描述………………………………………………………………… 126
6.6.1 部分SFR寄存器……………………………………………………… 126
6.6.2 PLL控制寄存器……………………………………………………… 128
6.6.3 時鐘源控制寄存器…………………………………………………… 130
6.7 系統(tǒng)的硬件選型與單元電路設計………………………………………… 132
6.7.1 電源電路……………………………………………………………… 132
6.7.2 晶振電路與復位電路………………………………………………… 132
6.7.3 Flash存儲器接口電路……………………………………………… 133
6.7.4 SDRAM 接口電路…………………………………………………… 135
6.7.5 串行接口電路………………………………………………………… 139
6.7.6 I2C接口電路………………………………………………………… 140
6.7.7 JTAG接口電路……………………………………………………… 141
6.7.8 S3C6410與LCD接口設計…………………………………………… 142
6.8 硬件系統(tǒng)的調試…………………………………………………………… 147
6.8.1 電源、晶振及復位電路………………………………………………… 148
6.8.2 S3C6410及JTAG接口電路………………………………………… 148
6.8.3 SDRAM 接口電路的調試…………………………………………… 149
6.8.4 Flash接口電路的調試……………………………………………… 150
6.9 印刷電路板的設計注意事項……………………………………………… 151
6.9.1 電源質量與分配……………………………………………………… 151
6.9.2 同類型信號線的分布………………………………………………… 151
6.10 本章小結…………………………………………………………………… 152
6.11 練習題……………………………………………………………………… 152
第7章 通用GPIO 編程…………………………………………………………… 153
7.1 GPIO功能介紹…………………………………………………………… 153
7.2 S3C6410芯片的GPIO控制器詳解……………………………………… 153
7.2.1 S3C6410GPIO常用寄存器分類…………………………………… 153
7.2.2 S3C6410I/O口常用寄存器詳解…………………………………… 155
7.3 S3C6410GPIO的應用…………………………………………………… 175
7.3.1 電路連接……………………………………………………………… 175
7.3.2 寄存器設置…………………………………………………………… 175
7.4 本章小結…………………………………………………………………… 176
7.5 練習題……………………………………………………………………… 176
第8章 部件工作原理與編程示例………………………………………………… 177
8.1 嵌入式系統(tǒng)的程序設計方法……………………………………………… 177
8.2 UART控制器……………………………………………………………… 178
8.2.1 UART的工作方式…………………………………………………… 179
8.2.2 相關寄存器…………………………………………………………… 182
8.3 UART 接口應用舉例……………………………………………………… 190
8.4 矢量中斷控制器…………………………………………………………… 195
8.5 中斷調用方法……………………………………………………………… 205
8.6 PWM 定時器……………………………………………………………… 207
8.6.1 PWM 的操作方式…………………………………………………… 209
8.6.2 S3C6410中的特殊功能寄存器……………………………………… 214
8.6.3 TINT_CSTAT ……………………………………………………… 218
8.7 RTC實時時鐘……………………………………………………………… 219
8.7.1 RTC寄存器描述……………………………………………………… 221
8.7.2 RTC寄存器編程舉例………………………………………………… 225
8.8 I2C總線接口……………………………………………………………… 226
8.8.1 I2C總線接口概述…………………………………………………… 226
8.8.2 I2C總線接口操作模式……………………………………………… 227
8.8.3 多主控器I2C總線控制寄存器(IICCON)…………………………… 231
8.8.4 I2C總線寄存器編程舉例…………………………………………… 232
8.9 DMA 控制器……………………………………………………………… 234
8.9.1 DMA 控制器的特性………………………………………………… 235
8.9.2 DMA 源……………………………………………………………… 236
8.9.3 DMA 接口…………………………………………………………… 237
8.9.4 程序員的模式………………………………………………………… 240
8.9.5 DMA 寄存器描述…………………………………………………… 241
8.10 SPI控制器………………………………………………………………… 249
8.10.1 概 述………………………………………………………………… 249
8.10.2 SPI的操作…………………………………………………………… 250
8.10.3 SPI傳輸格式………………………………………………………… 252
8.10.4 SPI接口編程示例…………………………………………………… 256
8.11 BootLoader簡介………………………………………………………… 262
8.11.1 BootLoader簡介…………………………………………………… 262
8.11.2 啟動方法……………………………………………………………… 264
8.11.3 檢測系統(tǒng)的內存映射………………………………………………… 267
8.12 本章小結…………………………………………………………………… 269
8.13 練習題……………………………………………………………………… 270
第9章 S3C6410綜合應用設計實例……………………………………………… 271
9.1 基于S3C6410光敏傳感器系統(tǒng)設計實例………………………………… 271
9.1.1 基本原理……………………………………………………………… 271
9.1.2 協(xié)調器程序下載方法………………………………………………… 274
9.1.3 節(jié)點程序燒寫和節(jié)點測試…………………………………………… 276
9.1.4 硬件電路原理圖和部分程序代碼…………………………………… 277
9.2 基于S3C6410溫濕度傳感器系統(tǒng)設計實例……………………………… 281
9.2.1 基本原理……………………………………………………………… 281
9.2.2 節(jié)點程序燒寫和節(jié)點測試…………………………………………… 284
9.2.3 硬件電路原理圖和部分程序代碼…………………………………… 286
9.3 基于S3C6410電機和燈光傳感器系統(tǒng)設計實例………………………… 294
9.3.1 基本原理……………………………………………………………… 294
9.3.2 節(jié)點程序燒寫和節(jié)點測試…………………………………………… 294
9.2.3 硬件電路原理圖和部分程序代碼…………………………………… 296
9.4 基于S3C6410煙霧傳感器系統(tǒng)設計實例………………………………… 298
9.4.1 基本原理……………………………………………………………… 298
9.4.2 節(jié)點程序燒寫和節(jié)點測試…………………………………………… 298
9.4.3 硬件電路原理圖和部分程序代碼…………………………………… 300
9.5 基于S3C6410干簧管傳感器系統(tǒng)實例…………………………………… 302
9.5.1 基本原理……………………………………………………………… 302
9.5.2 節(jié)點程序燒寫和節(jié)點測試…………………………………………… 303
9.5.3 硬件電路原理圖和部分程序代碼…………………………………… 304
9.6 本章小結…………………………………………………………………… 306
9.7 練習題……………………………………………………………………… 307
第10章 RealView MDK 集成開發(fā)環(huán)境的使用………………………………… 308
10.1 RealView MDK集成開發(fā)環(huán)境組成介紹……………………………… 308
10.2 RealView MDK使用方法……………………………………………… 311
10.2.1 創(chuàng)建一個工程………………………………………………………… 311
10.2.2 編譯、鏈接工程……………………………………………………… 313
10.3 程序調試…………………………………………………………………… 315
10.4 程序調試舉例……………………………………………………………… 317
10.5 本章小結…………………………………………………………………… 321
10.6 練習題……………………………………………………………………… 321
參考文獻……………………………………………………………………………… 322