深入剖析ARM Cortex-A8

深入剖析ARM Cortex-A8

《深入剖析ARM Cortex-A8》是2016年電子工業出版社出版的圖書,作者是王恆、林新華、桑元俊、苗新蕊。

基本介紹

  • 中文名:深入剖析ARM Cortex-A8
  • 作者:王恆、林新華、桑元俊、苗新蕊
  • 出版社:電子工業出版社 
  • 出版時間:2016年08月
  • 頁數:580 頁
  • 定價:¥89.00
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787121294921
內容簡介,目錄,

內容簡介

本書從開發角度出發,以Smart210開發板為開發平台,將Cortex-A8處理器體系結構、開發板硬體原理、指令系統、開發環境和各功能模組的原理及套用娓娓道來,不僅讓讀者知其然,更要讓讀者知其所以然,並讓這些知識再反作用於實踐。揭開嵌入式Linux C系統開發背後鮮為人知的秘密,具體說來,全書主要討論了包括嵌入式C語言高級編程、嵌入式開發中經典數據結構與算法、嵌入式Linux系統編程、多任務解決機制,網路編程以及嵌入式資料庫開發等多個方面的話題。

目錄

第1章 緒論 1
1.1 嵌入式系統概述 1
1.1.1 什麼是嵌入式系統 1
1.1.2 嵌入式系統的組成 2
1.1.3 嵌入式系統的發展 5
1.1.4 嵌入式系統的套用 7
1.2 嵌入式處理器 9
1.2.1 嵌入式微處理器 9
1.2.2 嵌入式微控制器 10
1.2.3 嵌入式數位訊號處理器 10
1.2.4 嵌入式片上系統 11
1.3 嵌入式作業系統 11
1.3.1 嵌入式作業系統概述 11
1.3.2 嵌入式作業系統的特點 12
1.3.3 嵌入式實時作業系統 12
1.3.4 常見的嵌入式作業系統 13
1.4 嵌入式技術知識結構 17
1.5 嵌入式工程師成長之路 18
第2章 ARM體系結構 21
2.1 ARM簡介 21
2.1.1 ARM公司簡介 21
2.1.2 ARM技術特徵 22
2.2 ARM處理器架構 22
2.3 ARM處理器核心 26
2.3.1 Classic處理器 26
2.3.2 Cortex-M系列 29
2.3.3 Cortex-R系列 32
2.3.4 Cortex-A系列 33
2.3.5 SecurCore處理器 38
2.3.6 ARM微處理器的套用選型 39
2.4 Cortex-A8處理器編程模型 39
2.4.1 Cortex-A8核心結構 40
2.4.2 Jazelle擴展體系結構 42
2.4.3 TrustZone安全擴展體系結構 42
2.4.4 高級SIMD體系結構 43
2.4.5 VFPv3體系結構 43
2.4.6 處理器狀態 43
2.4.7 數據類型 44
2.4.8 存儲器格式 44
2.4.9 存儲器系統地址 45
2.4.10 處理器工作模式 46
2.4.11 暫存器組 47
2.4.12 異常 52
2.4.13 安全擴展 57
2.4.14 系統控制協處理器 59
2.5 Cortex-A8存儲管理模型 60
2.5.1 高速緩衝存儲器(Cache) 62
2.5.2 虛擬記憶體 62
2.5.3 頁表快取TLB 65
2.5.4 存儲屬性 67
2.5.5 頁表的使用 68
2.5.6 存儲順序 69
2.6 Cortex-A8處理器時鐘系統 71
2.7 Cortex-A8處理器復位系統 73
2.9 Cortex-A8處理器功耗控制 75
2.10 流水線 79
2.10.1 流水線的概念和原理 79
2.10.2 流水線的分類 79
2.10.3 影響流水線性能的因素 81
第3章 硬體平台詳解 83
3.1 S5PV210處理器概述 83
3.2 S5PV210系列晶片的結構框圖 83
3.3 S5PV210系列晶片的特性 85
3.3.1 微處理器 86
3.3.2 存儲器子系統 87
3.3.3 多媒體 88
3.3.4 音頻子系統 90
3.3.5 安全子系統 90
3.3.6 接口 90
3.3.7 系統外設 92
3.3.8 AMBA匯流排 93
3.3.9 S5PV210和S3C6410的比較 95
3.4 S5PV210系列晶片的套用領域 96
3.5 S5PV210晶片的封裝和引腳 96
3.6 開發板硬體設計說明(核心板) 102
3.6.1 S5PV210(SYS&Connectivity)/Boot Option 102
3.6.2 S5PV210(DDR2&SROM Memory) 107
3.6.3 S5PV210(Media) 109
3.6.4 S5PV210(Gen Power) 113
3.6.5 DDR2(1 Gbit×4)XM1 118
3.6.6 系統電源 125
3.6.7 復位電路 128
3.6.8 系統時鐘電路 128
3.6.9 JTAG接口電路 129
3.6.10 NANDFlash晶片模組 130
3.6.11 音頻輸入與輸出電路 133
3.6.12 網路驅動晶片模組 134
3.7 開發板硬體設計說明(底板) 137
3.7.1 板對板接口 137
3.7.2 電源 137
3.7.3 SDIO-GPIO電路、按鍵電路 137
3.7.4 蜂鳴器電路 141
3.7.5 串口電路 141
3.7.6 G-Sensor 142
3.7.7 EEPROM晶片 143
3.7.8 Ethernet 143
3.7.9 SD卡 144
3.7.10 Audio 144
3.7.11 HDMI接口 145
3.7.12 USB接口 146
2.7.13 LCD接口 146
3.7.14 MIPI-DSI接口 149
3.7.15 攝像頭接口 149
第4章 ARM處理器的指令系統 151
4.1 定址方式 151
4.2 ARM指令集 154
4.2.1 指令格式 154
4.2.2 跳轉指令 158
4.2.3 數據處理指令 161
4.2.4 程式狀態暫存器傳輸指令 170
4.2.5 Load/Store指令 172
4.2.6 異常中斷產生指令 178
4.2.7 協處理器指令 180
4.2.8 指令速查表 182
4.3 Thumb指令集 193
4.3.1 Thumb指令集 193
4.3.2 Thumb-2指令集 194
4.3.3 ThumbEE指令集 195
4.4 ARM偽指令 195
4.5 ARM偽操作 198
4.5.1 符號定義偽操作 199
4.5.2 數據定義偽操作 200
4.5.3 符號定義偽操作 203
4.5.4 雜項偽操作 205
4.5.5 GNU ARM彙編偽操作 209
4.6 彙編程式設計 213
4.6.1 彙編語言的語句格式 213
4.6.2 彙編語言的程式結構 219
4.7 C語言與彙編混合編程 220
4.7.1 ATPCS介紹 220
4.7.2 內嵌彙編 222
4.7.3 ARM中的彙編和C語言相互調用 227
第5章 開發環境詳解 231
5.1 安裝並配置Fedora15 231
5.2 安裝交叉編譯器 231
5.3 使用MiniTools燒寫裸機程式 233
5.3.1 什麼是MiniTools 233
5.3.2 安裝MiniTools工具 233
5.3.3 如何使用MiniTools燒寫裸機程式 234
5.4 跟我一起寫Makefile 236
5.4.1 Makefile的組成結構 236
5.4.2 Makefile詳解 241
5.4.3 書寫規則 243
5.4.4 書寫命令 249
5.4.5 使用變數 252
5.4.6 使用條件判斷 258
5.4.7 使用函式 261
5.4.8 make的運行 267
5.4.9 隱含規則 271
5.4.10 使用make更新函式館檔案 279
5.5 系統引導程式綜述 280
5.5.1 系統引導程式含義 280
5.5.2 系統引導程式的功能 281
5.5.3 BootLoader的操作模式 281
5.5.4 BootLoader的啟動 282
5.5.5 幾個流行的BootLoader 282
5.5.6 U-Boot分析 285
5.5.7 移植U-Boot到開發板 286
第6章 GPIO連線埠 289
6.1 GPIO原理分析 289
6.1.1 GPIO類型 290
6.1.2 GPIO特性 290
6.1.3 連線埠功能定義 291
6.1.4 GPIO暫存器 301
6.1.5 I/O操作步驟 303
6.2 點亮LED 303
6.2.1 原理圖 303
6.2.2 彙編點亮LED 303
6.2.3 C語言點亮LED 308
6.3 控制蜂鳴器 311
6.3.1 原理圖 311
6.3.2 程式相關講解 311
6.3.3 編譯代碼和燒寫運行 313
6.3.4 實驗現象 313
6.4 查詢方式檢測按鍵 313
6.4.1 原理圖 313
6.4.2 程式相關講解 314
6.4.3 編譯代碼和燒寫運行 315
6.4.4 實驗現象 316
第7章 存儲器管理 317
7.1 存儲器概述 317
7.1.1 存儲器組織結構 317
7.1.2 隨機存儲器和唯讀存儲器 317
7.2 S5PV210的存儲系統 320
7.2.1 S5PV210的虛擬記憶體映射 320
7.2.2 S5PV210微處理器的啟動過程 322
7.3 S5PV210的記憶體控制器 325
7.3.1 DRAM控制器 325
7.3.2 SROM控制器 327
7.3.3 OneNAND控制器 327
7.3.4 NANDFLASH控制器 328
7.4 控制iCache 329
7.4.1 什麼是Cache 329
7.4.2 程式相關講解 329
7.4.3 編譯代碼和燒寫運行 330
7.4.4 編譯代碼和燒寫運行 330
7.5 重定位代碼到IRAM+0x4000 330
7.5.1 重定位 330
7.5.2 程式相關講解 330
7.5.3 編譯代碼和燒寫運行 333
7.5.4 實驗現象 333
7.6 重定位代碼到DRAM 333
7.6.1 關於DRAM 333
7.6.2 程式相關講解 335
7.6.3 編譯代碼和燒寫運行 343
7.6.4 實驗現象 343
7.7 NANDFlash的讀寫擦除 343
7.7.1 關於NANDFlash 343
7.7.2 程式相關講解 348
7.7.3 編譯代碼和燒寫運行 359
7.7.4 實驗現象 359
第8章 中斷機制 361
8.1 中斷的基本概念 361
8.1.1 中斷的概念 361
8.1.2 中斷源、中斷信號和中斷向量 362
8.1.3 中斷優先權 364
8.1.4 中斷操作 366
8.2 S5PV210的中斷系統 366
8.2.1 向量中斷控制器 366
8.2.2 S5PV210的中斷源 367
8.2.3 中斷相關暫存器 370
8.3 中斷編程示例 377
8.3.1 程式相關講解 378
8.3.2 編譯代碼和燒寫運行 381
8.3.3 實驗現象 381
第9章 系統時鐘和定時器 383
9.1 系統時鐘 383
9.1.1 時鐘域 383
9.1.2 時鐘聲明 384
9.1.3 時鐘關係 385
9.1.4 時鐘的產生 386
9.1.5 時鐘配置過程 389
9.1.6 系統時鐘相關暫存器 389
9.1.7 系統時鐘示例 395
9.2 PWM定時器 398
9.2.1 PWM定時器概述 398
9.2.2 PWM定時器特點 399
9.2.3 PWM定時器的操作 399
9.2.4 PWM定時器相關暫存器 403
9.2.5 PWM定時器編程示例 406
9.3 看門狗定時器 408
9.3.1 看門狗定時器概述 408
9.3.2 看門狗定時器相關暫存器 409
9.3.3 看門狗定時器編程示例1 410
9.3.4 看門狗定時器編程示例2 412
9.4 RTC實時時鐘 415
9.4.1 RTC實時時鐘概述 415
9.4.2 RTC相關暫存器 416
9.4.3 RTC編程示例 418
第10章 串列通信接口 423
10.1 串列通信概述 423
10.1.1 通信的概念 423
10.1.2 通信的分類 423
10.1.3 串列通信和並行通信 424
10.1.4 同步通信和異步通信 425
10.2 UART接口 425
10.2.1 基本術語 425
10.2.2 異步串列通信協定 426
10.2.3 S5PV210的UART接口 430
10.2.4 S5PV210的UART相關暫存器 434
10.2.5 UART編程示例1 441
10.2.6 UART編程示例2 445
10.3 IIC接口 448
10.3.1 IIC匯流排接口概述 448
10.3.2 S5PV210的I2C接口 449
10.3.3 S5PV210的IIC相關暫存器 454
10.4 SPI接口 457
10.4.1 SPI接口概述 457
10.4.2 S5PV210的SPI操作 458
10.4.3 S5PV210的SPI相關暫存器 461
10.4.4 特殊功能暫存器的設定順序 466
第11章 人機接口技術 467
11.1 LCD接口 467
11.1.1 LCD概述 467
11.1.2 S5PV210的LCD控制器 469
11.1.3 S5PV210的LCD相關暫存器 497
11.1.4 LCD示例1 503
11.1.5 LCD示例2 508
11.2 IIS多音頻接口 510
11.2.1 概述 510
11.2.2 S5PV210的IIS相關暫存器 516
11.2.3 示例1 520
11.2.4 示例2 523
11.3 ADC和觸控螢幕接口 528
11.3.1 概述 528
11.3.2 S5PV210的ADC和觸控螢幕接口 529
11.3.3 S5PV210的ADC相關暫存器 533
11.3.4 示例 537
11.4 鍵盤接口 538
11.4.1 概述 538
11.4.2 S5PV210的鍵盤相關暫存器 542
第12章 嵌入式系統開發流程與設計方法 545
12.1 常用開發模型 545
12.1.1 邊開發邊修改模型 545
12.1.2 瀑布模型 546
12.1.3 快速原型模型 546
12.1.4 增量模型 547
12.1.5 螺旋模型 548
12.1.6 演化模型 548
12.2 需求分析階段 549
12.2.1 系統分析 550
12.2.2 用戶需求 550
12.2.3 系統需求 552
12.2.4 概要設計 554
12.3 詳細設計階段 556
12.3.1 體系結構設計 556
12.3.2 硬體設計 556
12.3.3 軟體設計 558
12.3.4 設計檢查 558
12.4 科研開發階段 559
12.4.1 建模工具 559
12.4.2 開發平台 561
12.4.3 軟體開發過程 561
12.5 測試階段 562
12.5.1 測試計畫目標 562
12.5.2 測試類型 563
參考文獻 565

相關詞條

熱門詞條

聯絡我們