嵌入式系統設計與開發——基於ARM Cortex-A9和Linux

劉敬猛 等

  • 出版商: 電子工業
  • 出版日期: 2024-10-01
  • 定價: $419
  • 售價: 8.5$356
  • 語言: 簡體中文
  • 頁數: 364
  • ISBN: 7121488248
  • ISBN-13: 9787121488245
  • 相關分類: ARM嵌入式系統Linux
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書編寫的出發點是希望融合經典教材的微機原理、接口技術和嵌入式 Linux,講述 CPU、中斷、最小系統、匯編語言程序設計、接口電路、中斷、多線程、設備驅動以及 Linux 應用層編程技術。目的是培養學生嵌入式系統的概念,即硬件到軟件以及底層到上層的設計思想。全書分 11 章,內容包括嵌入式系統概述、ARM 微處理器體系結構、ARM 微處理器指令系統、ARM的存儲系統、中斷及中斷處理、最小系統外圍電路設計、GPIO 口與串行總線、嵌入式Linux 操作系統、設備驅動、ARM-Linux 軟件開發基礎和Qt 編程。

目錄大綱

目 錄

第1章 嵌入式系統概述 1
1.1 什麽是嵌入式系統 1
1.2 嵌入式系統體系結構與組成 1
1.3 嵌入式系統應用及技術特點 3
1.3.1 無所不在的嵌入式應用 3
1.3.2 嵌入式系統的技術特點 3
1.4 發展趨勢 5
1.5 嵌入式系統知識體系小結 7
第2章 嵌入式處理器及ARM微處理器體系結構 8
2.1 以處理器為核心的嵌入式系統硬件架構 8
2.2 ARM體系結構的技術特徵及發展 9
2.2.1 ARM公司簡介 9
2.2.2 ARM技術特徵 10
2.2.3 ARM體系架構的發展 11
2.3 ARM微處理器 13
2.3.1 ARM微處理器簡介 13
2.3.2 ARM微處理器現狀、趨勢與架構 17
2.3.3 ARM微處理器的應用選型 18
2.3.4 Cortex-A9內部功能及特點 20
2.3.5 Cortex-A9內核工作模式 21
2.3.6 Cortex-A9存儲系統 22
2.4 模型電腦及流水線 24
2.4.1 模型電腦原理 24
2.4.2 流水線的概念與原理 29
2.4.3 流水線的分類 29
2.4.4 影響流水線性能的因素 31
2.5 寄存器組織、程序狀態寄存器和ARM數據類型 31
2.5.1 寄存器組織 31
2.5.2 程序狀態寄存器 33
2.5.3 ARM數據類型 35
2.6 i.MX 6Solo/6Dual嵌入式教學科研平臺介紹 37
2.6.1 i.MX 6Solo/6Dual處理器介紹 37
2.6.2 i.MX 6Solo/6Dual嵌入式教學科研平臺概述 39
2.6.3 平臺資源 40
2.6.4 平臺硬件接口 44
2.6.5 平臺啟動運行 45
習題 45
第3章 ARM微處理器指令系統和程序設計 46
3.1 ARM微處理器的指令系統 46
3.1.1 ARM指令系統概述 46
3.1.2 ARM指令集 50
3.1.3 Thumb指令集 65
3.2 ARM微處理器編程簡介 66
3.2.1 ARM匯編語言的文件格式 66
3.2.2 ARM匯編語言的語句格式 66
3.2.3 C語言與匯編語言的混合編程 68
3.3 ARM微處理器初始化分析 73
3.3.1 嵌入式系統初始化流程 73
3.3.2 ARM嵌入式處理器的初始化分析 76
習題 79
第4章 ARM微處理器存儲系統 81
4.1 基本存儲體系與模型 81
4.1.1 嵌入式系統存儲系統 81
4.1.2 存儲器結構模型 82
4.1.3 存儲器基本操作流程 83
4.1.4 存儲器技術指標 84
4.2 存儲器分類及特性 85
4.2.1 隨機訪問存儲器 86
4.2.2 只讀存儲器 98
4.2.3 混合存儲器 103
4.3 ARM存儲系統 114
4.3.1 存儲器管理單元 115
4.3.2 高速緩沖存儲器(Cache)和寫緩沖區 127
4.4 ARM i.MX 6Solo/6Dual存儲系統的實例 131
習題 134
第5章 中斷及中斷處理 135
5.1 中斷響應及優先級 135
5.1.1 中斷的概念 135
5.1.2 CPU對中斷的響應 136
5.1.3 中斷優先級 137
5.2 ARM的通用中斷控制器 139
5.2.1 GIC邏輯分區 139
5.2.2 GIC中斷控制器中斷狀態和中斷處理流程 142
5.3 GIC寄存器及應用舉例 143
5.3.1 GIC常用寄存器 143
5.3.2 GIC應用舉例 145
5.4 ARM中的異常中斷處理概述 147
5.4.1 ARM體系中的異常中斷種類 147
5.4.2 異常中斷向量表及異常中斷優先級 147
5.4.3 異常中斷使用的寄存器 148
5.5 進入和退出異常中斷的過程 149
5.5.1 ARM微處理器對異常中斷的響應過程 149
5.5.2 從異常中斷處理程序中返回 151
5.6 在應用程序中安排異常中斷處理程序 154
5.6.1 在系統復位時安排異常中斷處理程序 154
5.6.2 在C程序中安排異常中斷處理程序 155
5.7 SWI異常、FIQ和IRQ異常中斷處理程序 156
5.7.1 SWI異常中斷處理程序的實現 156
5.7.2 SWI異常中斷調用 160
5.7.3 IRQ/FIQ異常中斷處理程序 164
5.7.4 IRQ異常中斷處理程序舉例 167
5.7.5 其他異常程序 168
第6章 最小系統外圍電路設計 170
6.1 電源電路 170
6.1.1 電源電路設計方法 170
6.1.2 電源管理與低功耗設計 173
6.2 復位電路 177
6.2.1 上電復位 178
6.2.2 手動復位 182
6.2.3 看門狗復位 184
6.2.4 軟件復位 185
6.3 時鐘電路 186
6.3.1 信號源 186
6.3.2 多時鐘管理 191
6.4 電路抖動與消抖 196
6.4.1 抖動現象與危害 196
6.4.2 優化硬件消除抖動 197
6.4.3 軟件消抖方式 199
6.5 最小系統舉例 201
習題 207
第7章 GPIO口與串行總線 208
7.1 GPIO與IOMUXC 208
7.1.1 GPIO 208
7.1.2 IOMUXC 210
7.2 UART 216
7.2.1 UART簡介 216
7.2.2 UART特徵 217
7.2.3 UART的數據收發和幀結構 219
7.2.4 UART波特率設置 220
第8章 嵌入式Linux操作系統 225
8.1 嵌入式Linux簡介 225
8.2 內存管理 226
8.2.1 內存管理和MMU簡介 226
8.2.2 標準Linux的內存管理 226
8.2.3 μCLinux的內存管理 228
8.3 進程管理 229
8.3.1 進程和進程管理簡介 229
8.3.2 RT-Linux的進程管理 230
8.3.3 標準Linux的進程管理 231
8.3.4 μCLinux的進程管理 232
8.4 線程 233
8.4.1 線程概述 233
8.4.2 線程管理 234
8.4.3 線程通信 234
8.4.4 線程同步 235
8.5 文件系統 238
8.5.1 文件系統定義 238
8.5.2 Linux文件系統 238
8.5.3 嵌入式Linux文件系統 240
8.6 多線程應用程序設計實驗 243
8.6.1 實驗內容 243
8.6.2 多線程程序分析與實驗 245
8.7 串行埠程序設計實驗 249
8.7.1 實驗準備 249
8.7.2 串行埠程序分析 249
第9章 設備驅動 255
9.1 Linux驅動程序簡介 255
9.1.1 設備的分類 256
9.1.2 設備文件 256
9.1.3 主設備號和次設備號 256
9.1.4 Linux設備驅動程序的分佈 256
9.1.5 Linux設備驅動程序的特點 257
9.2 設備驅動程序結構 257
9.2.1 驅動程序的註冊與註銷 258
9.2.2 設備的打開與釋放 258
9.2.3 設備的讀/寫操作 259
9.2.4 設備的控制操作 259
9.2.5 設備的輪詢和中斷處理 259
9.3 Linux內核設備模型 261
9.3.1 設備模型建立的目的 261
9.3.2 sysfs設備拓撲結構的文件系統表現 261
9.3.3 驅動模型和sysfs 262
9.3.4 kobject 263
9.4 Linux字符設備驅動分析 265
9.4.1 字符設備驅動的結構 266
9.4.2 使用cdev開發字符設備驅動 266
9.4.3 platform總線與設備樹 268
9.5 Linux字符設備驅動實驗 274
9.5.1 需求說明 274
9.5.2 硬件電路 275
9.5.3 LED驅動程序 275
9.5.4 按鍵驅動程序 281
9.5.5 按鍵、指示燈應用程序 287
9.5.6 模塊的加載實驗 289
第10章 ARM-Linux軟件開發基礎 291
10.1 ARM-Linux軟件開發流程 291
10.2 嵌入式系統開發模式 292
10.3 開發環境的搭建 294
10.3.1 宿主機端軟件的安裝 294
10.3.2 目標機端軟件的安裝 296
10.4 Makefile 298
10.4.1 Makefile的規則 299
10.4.2 Makefile的文件名 301
10.4.3 引用其他的Makefile 301
10.4.4 使用變量 302
10.4.5 偽目標 303
10.4.6 Makefile的一個例子 303
10.5 U-Boot 304
10.5.1 BootLoader基礎 304
10.5.2 U-Boot代碼結構 307
10.5.3 U-Boot代碼分析 308
第11章 Qt編程及嵌入式Qt開發 313
11.1 Qt編程基礎 313
11.1.1 Qt簡介及其開發套件 313
11.1.2 Qt的基本數據類型 313
11.1.3 字符串(QString) 314
11.2 圖形界面設計 317
11.2.1 Qt的窗口類Widget 317
11.2.2 可視化窗口界面設計 317
11.2.3 Qt中常用的控件 320
11.3 信號和槽機制 324
11.3.1 基本概念 324
11.3.2 信號和槽機制的原理 327
11.3.3 信號和槽示例 328
11.3.4 信號和槽小結 330
11.4 Qt程序綜合實驗—電子鐘設計 331
11.4.1 需求說明 331
11.4.2 界面設計 331
11.4.3 功能實現 332
11.5 Qt開發環境的搭建 342
11.5.1 設置交叉編譯環境 342
11.5.2 安裝Qt Creator 345
習題 348
參考文獻 349