ARM 嵌入式系統開發與應用

吳明暉

  • 出版商: 全華
  • 出版日期: 2005-12-15
  • 定價: $550
  • 售價: 9.0$495
  • 語言: 繁體中文
  • ISBN: 9572151789
  • ISBN-13: 9789572151785
  • 相關分類: ARM

立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書特色

1. 由淺入深的方式來使讀者對ARM系統有全面性的了解及認知。
2. 使用大量實例對視窗函數以及Nano-X中字體的處理、影像繪製、訊息傳遞等有詳細介紹。

 

因ARM的32位元微控制器IP核其卓越的性能和良好的擴充性,為廣大設計者偏好,所以目前大多數的半導體公司都推出了自己的ARMSOC晶片,而ARM晶片構造裡的32位元嵌入式系統成為一個重要的部分,本書由淺入深的方式來使讀者對ARM系統有全面性的了解及認知,內容涵蓋了ARM晶片嵌入式系統設計原理及其具體應用,並透過大量實例介紹視窗函數及Nano-X中字體的處理、影像繪製等的應用。本書適合半導體相關業界人員或有興趣的讀者閱讀。

 

本書內容

目 錄
第1章 ARM系統結構 1-1
1.1 ARM處理器概述 1-1
1.1.1 ARM產品背景 1-1
1.1.2 ARM處理器系列介紹 1-2
1.1.3 ARM處理器系統結構擴展 1-3
1.2 ARM系統結構概述 1-4
1.2.1 ARM系統結構版本 1-4
1.2.2 資料類型 1-5
1.2.3 處理器模式 1-6
1.2.4 暫存器 1-7
1.2.5 通用暫存器 1-7
1.2.6 程式狀態暫存器 1-10
1.2.7 異 常 1-14
1.2.8 ARM程序呼叫標準(APCS)簡介 1-19
1.3 ARM指令集 1-23
1.3.1 條件執行 1-23
1.3.2 ARM指令集列表 1-25
1.3.3 32位元程式碼基本規則 1-60
1.3.4 ARM指令應用舉例 1-61
1.4 Thumb指令集 1-63
1.4.1 Thumb指令集概述 1-63
1.5 IEEE浮點指令集簡介 1-78
1.6 ARM指令時序 1-86
1.7 32位元ARM處理器除錯技術 1-88
1.7.1 邊界掃描技術(JTAG) 1-88
1.7.2 ARM晶片的即時除錯方案(E-TRACE) 1-89
1.7.3 Nexus標準 1-89

第2章 組合語言程式設計 2-1
2.1 組合語言程式結構 2-1
2.1.1 基於GCC編譯器的組合語言程式結構 2-2
2.1.2 基於CodeWarrior的組合語言程式結構 2-4
2.2 號資料定義與資料結構 2-6
2.2.1 號命名規則 2-6
2.2.2 數值常數的使用與EQU指令 2-6
2.3 變 數 2-7
2.3.1 數值變數和數值運算式 2-7
2.3.2 邏輯變數和邏輯運算式 2-9
2.3.3 字串變數和字串運算式 2-10
2.3.4 變數記憶體空間分配 2-10
2.3.5 變數初始化 2-10
2.4 資料區分配和管理 2-11
2.4.1 使用SPACE分配記憶體區域 2-11
2.4.2 使用DCB分配一個或多個位元組的記憶體區域 2-12
2.4.3 使用ALIGN對齊記憶體資料 2-12
2.4.4 分配一個或多個字的記憶體區域 2-13
2.5 資料結構的描述 2-14
2.5.1 使用MAP和FIELD描述資料結構 2-14
2.5.2 相對地址 2-16
2.5.3 綜合實例 2-17
2.6 分支與轉移組合語言程式設計 2-19
2.6.1 簡單分支結構 2-19
2.6.2 複雜的分支結構 2-20
2.7 使用跳躍表解決分支轉移 2-23
2.7.1 程式實例 2-23
2.7.2 什麼是跳躍表 2-25
2.7.3 如何使用跳躍表 2-26
2.8 使用跳躍實作迴圈 2-27
2.8.1 透過條件跳躍實作do…while迴圈 2-27
2.8.2 透過條件跳躍實作while迴圈 2-28
2.8.3 多重迴圈程式設計 2-28
2.9 模組化程式設計 2-30
2.9.1 簡單函數呼叫例子 2-31
2.9.2 暫存器保護 2-33
2.9.3 參數傳遞 2-33
2.9.4 函數跳躍表 2-34
2.9.5 使用巨集定義實作函數功能 2-36
2.9.6 和函數相關的虛擬指令 2-37
2.10 高階語言和組合語言的混合程式設計 2-38
2.10.1 嵌入式組合語言語句 2-39
2.10.2 高階語言和組合語言函數間的相互呼叫 2-41
2.11 其他常見的虛擬指令 2-43

第3章 ARM系統啟動程式碼分析和開發 3-1
3.1 ARM的異常與RESET 3-1
3.2 瞭解與啟動相關的硬體資訊與開發手段 3-3
3.3 C/C++語言開發和執行環境 3-4
3.3.1 工具鏈準備 3-4
3.3.2 GNU環境簡介 3-6
3.3.3 C語言執行環境 3-8
3.3.4 一個簡單boot程式碼例子 3-11
3.4 BOOT程式碼分析 3-16
3.4.1 U-BOOT簡介 3-16
3.4.2 程式碼分析和移植相關 3-20
3.5 韌體開發除錯方法 3-29

第4章 即時操作系統在ARM上的移植 4-1
4.1 即時操作系統簡介 4-1
4.2 μC/OS-II作業系統 4-2
4.2.1 μC/OS-II介紹 4-2
4.2.2 μC/OS-II應用程式開發 4-3
4.2.3 μC/OS-II移植 4-6
4.3 eCos簡介及移植介紹分析 4-24
4.3.1 eCos簡介 4-24
4.3.2 eCos的移植介紹 4-25

第5章 基於ARM的網路協定堆疊實作 5-1
5.1 協定堆疊實作結構 5-2
5.1.1 系統硬體驅動程式 5-3
5.1.2 znet協定初始化 5-5
5.1.3 znet協定主任務 5-7
5.2 協定實作模組程式碼分析 5-10
5.2.1 全域資料結構和μC/OS-II中的介面 5-10
5.2.2 全域緩衝管理模組 5-15
5.2.3 協定主任務和驅動交互的模組 5-20
5.2.4 ARP實作模組及主任務的IP資料分發 5-24
5.2.5 ICMP實作模組 5-34
5.2.6 API實作模組 5-38
5.2.7 UDP實作模組 5-48
5.2.8 TCP實作模組 5-55
5.3 協定堆疊實作回顧 5-68

第6章 外部匯流排與音頻系統設計 6-1
6.1 IIC(I2C)匯流排基本原理 6-1
6.1.1 起始和停止條件 6-2
6.1.2 資料傳輸 6-3
6.1.3 讀寫操作 6-3
6.2 I2S音頻設備匯流排的原理和應用 6-4
6.2.1 I2S匯流排簡介 6-4
6.2.2 I2S匯流排協定 6-5
6.2.3 基於I2S介面的音頻系統硬體設計 6-7
6.2.4 基於CirrusLogic公司多媒體ARM晶片的音頻系統設計 6-8
6.3 音頻設備驅動 6-10
6.3.1 音頻設備基礎知識 6-10
6.3.2 Linux驅動程式結構 6-11
6.3.3 音頻設備檔 6-13
6.3.4 程式和音頻設備間的通信過程 6-16
6.3.5 設備的初始化和卸載 6-17
6.3.6 設備打開常式open() 6-20
6.3.7 記憶體映對和mmap常式 6-22
6.3.8 暫存區的設計 6-26
6.3.9 ioctl系統呼叫 6-30
6.3.10 音頻資料的播放和錄製常式 6-33
6.4 音頻應用程式的設計 6-36
6.4.1 音頻應用程式基本框架 6-36
6.4.2 音頻參數設置 6-38
6.4.3 混頻器(Mixer)基礎 6-44
6.4.4 綜合應用實例 6-47
6.4.5 音頻應用程式設計注意事項 6-55

第7章 快閃記憶體晶片與嵌入式檔案系統 7-1
7.1 快閃記憶體的物理特性 7-1
7.2 嵌入式檔案系統概述 7-3
7.3 NAND設備驅動程式 7-4
7.3.1 NAND晶片 7-4
7.3.2 NAND控制器 7-9
7.3.3 NAND設備MTD程式製作 7-11
7.4 NOR設備驅動 7-16
7.4.1 NOR晶片 7-16
7.4.2 通用快閃記憶體介面(CFI) 7-17
7.5 針對快閃記憶體晶片的檔案系統 7-21
7.5.1 用於中間層TrueFFS 7-22
7.5.2 讓TrueFFS和引導磁區共用快閃記憶體 7-24
7.5.3 TrueFFS的配置與使用 7-25
7.5.4 在使用TrueFFS的快閃記憶體上面安裝Linux 7-27
7.6 JFFS/JFFS2檔案系統 7-31
7.6.1 日誌檔案系統儲存結構 7-32
7.6.2 JFFS2 7-35
7.6.3 在Linux中使用JFFS/JFFS2 7-41
7.6.4 MTD的其他用法:使用RAMDISK製作啟動核心 7-45
7.7 YAFFS檔案系統 7-47
7.7.1 YAFFS的下載與安裝 7-47
7.7.2 YAFFS與JFFS/JFFS2的不同點 7-49
7.7.3 YAFFS實作機制 7-50

第8章 嵌入式圖形使用者介面基礎 8-1
8.1 LCD顯示器基本原理 8-1
8.2 嵌入式GUI 8-3
8.2.1 MiniGUI 8-3
8.2.2 Microwindows 8-4
8.2.3 Microwindows_0.90_release的安裝 8-5
8.3 Microwindows的系統結構 8-13
8.3.1 設備驅動 8-13
8.3.2 MicroGUI—設備無關圖形引擎 8-19
8.3.3 Microwindows的應用程式介面API 8-21
8.4 圖形引擎層 8-22
8.5 編譯環境的選項(Makefile檔設置) 8-28
8.6 基於Microwindows類型的API的程式設計 8-30
8.6.1 視窗的基本元素 8-30
8.6.2 “Helloworld”,你的第一個Microwindows程式 8-31
8.6.3 圖形繪製函數小節 8-42
8.6.4 MicrowindowsAPI的優缺點 8-43

第9章 基於Nano-X的嵌入式GUI設計 9-1
9.1 Client/Server模式 9-1
9.2 Nano-X風格的“HelloWorld” 9-3
9.3 Nano-X視窗管理器 9-8
9.4 程式中使用點陣圖資源 9-9
9.4.1 將點陣圖變成C語言原始程式 9-9
9.4.2 影像尺寸 9-9
9.4.3 影像顯示 9-10
9.4.4 編譯執行 9-12
9.5 從檔中載入圖片 9-13
9.6 文字輸出與字體 9-15
9.6.1 文字輸出函數 9-15
9.6.2 字體的基礎知識 9-15
9.6.3 字體識別字 9-16
9.7 高階使用者介面設計 9-20
9.7.1 事件回應 9-20
9.7.2 窗口間通信 9-23
9.7.3 多視窗應用程式 9-23
9.7.4 視窗控制項 9-28
9.7.5 遊戲製作 9-37