圖書目錄
第1章 嵌入式系統基礎知識
1.1 嵌入式系統的定義和組成
1.1.1 嵌入式系統的定義
1.1.2 嵌入式系統的發展趨勢
1.1.3 嵌入式系統的組成
1.1.4 RTOS
1.2 嵌入式微處理器體系結構
1.2.1 馮?諾依曼結構與哈佛結構
1.2.2 精簡指令集計算機
1.2.3 流水線技術
1.2.4 信息存儲的位元組順序
1.3 嵌入式微處理器的結構和類型
1.3.1 嵌入式微控制器
1.3.2 嵌入式微處理器
1.3.3 DSP處理器
1.3.4 嵌入式片上系統
1.3.5 多核處理器
思考題與習題
第2章 ARM體系結構
2.1 ARM體系結構簡介
2.2 ARM微處理器結構
2.2.1 ARM7微處理器
2.2.2 ARM9微處理器
2.2.3 ARM9E微處理器
2.2.4 ARM10E微處理器
2.2.5 SecurCore微處理器
2.2.6 StrongARM微處理器
2.2.7 XScale微處理器
2.3 ARM微處理器的暫存器結構
2.3.1 處理器的運行模式
2.3.2 處理器的工作狀態
2.3.3 處理器的暫存器組織
2.3.4 Thumb狀態的暫存器集
2.4 ARM微處理器的異常處理
2.4.1 ARM體系結構的異常類型
2.4.2 異常類型的含義
2.4.3 異常的回響過程
2.4.4 應用程式中的異常處理
2.5 ARM的存儲器結構
2.6 ARM微處理器指令系統
2.6.1 基本定址方式
2.6.2 ARM指令集
2.6.3 Thumb指令集
2.7 ARM微處理器的接口
2.7.1 ARM協處理器接口
2.7.2 ARM AMBA接口
2.7.3 ARM I/O結構
2.7.4 ARM JTAG調試接口
思考題與習題
第3章 32位RISC微處理器 S3C2410A
3.1 S3C2410A簡介
3.1.1 S3C2410A的內部結構
3.1.2 S3C2410A的技術特點
3.2 S3C2410A存儲器控制器
3.2.1 S3C2410A存儲器控制器特性
3.2.2 S3C2410A存儲器映射
3.3 復位、時鐘和電源管理
3.4 S3C2410A的I/O口
3.4.1 S3C2410A的I/O口配置
3.4.2 S3C2410A的I/O口暫存器
3.5 S3C2410A的中斷控制
3.5.1 ARM系統的中斷處理
3.5.2 S3C2410A的中斷控制器
3.5.3 S3C2410A的中斷編程實例
3.6 S3C2410A的DMA控制
3.6.1 DMA工作原理
3.6.2 S3C2410A的DMA控制器
3.6.3 S3C2410A的DMA編程實例
思考題與習題
第4章 嵌入式系統的存儲器系統
4.1 存儲器系統概述
4.1.1 存儲器系統的層次結構
4.1.2 高速緩衝存儲器
4.1.3 存儲管理單元
4.2 嵌入式系統存儲設備分類
4.2.1 存儲器部件的分類
4.2.2 存儲器的組織和結構
4.2.3 常見的嵌入式系統存儲器
4.3 NOR Flash接口電路
4.3.1 NOR Flash存儲器Am29LV160D
4.3.2 S3C2410A與NOR Flash存儲器的接口電路
4.4 NAND Flash接口電路
4.4.1 S3C2410A NAND Flash控制器
4.4.2 S3C2410A與NAND Flash存儲器的接口電路
4.5 SDRAM接口電路
4.6 CF卡接口電路
4.6.1 PCMCIA接口規範
4.6.2 S3C2410A的CF卡接口電路
4.6.3 CF卡的讀/寫操作
4.7 SD卡接口電路
4.7.1 SD卡的接口規範
4.7.2 S3C2410A的SD卡接口電路
4.8 IDE接口電路
4.8.1 S3C2410A的IDE接口電路
4.8.2 IDE硬碟讀/寫操作
思考題與習題
第5章 嵌入式系統輸入/輸出設備接口
5.1 通用輸入/輸出接口
5.1.1 通用輸入/輸出接口原理與結構
5.1.2 S3C2410A輸入/輸出接口編程實例
5.2 A/D轉換器接口
5.2.1 A/D轉換的方法和原理
5.2.2 S3C2410A的A/D轉換器
5.2.3 S3C2410A A/D接口編程實例
5.3 D/A轉換器接口
5.3.1 D/A轉換器的工作原理
5.3.2 S3C2410A與D/A轉換器的接口電路
5.4 鍵盤與LED數碼管接口
5.4.1 鍵盤與LED數碼管接口基本原理與結構
5.4.2 用I/O口實現鍵盤接口
5.4.3 採用專用晶片實現鍵盤及LED接口
5.5 LCD顯示接口
5.5.1 LCD顯示接口原理與結構
5.5.2 S3C2410A的LCD控制器
5.5.3 S3C2410A LCD顯示的編程實例
5.6 觸控螢幕接口
5.6.1 觸控螢幕工作原理與結構
5.6.2 採用專用晶片的觸控螢幕控制接口
5.6.3 S3C2410A的觸控螢幕接口電路
思考題與習題
第6章 嵌入式系統匯流排接口
6.1 串列接口
6.1.1 串列接口基本原理與結構
6.1.2 S3C2410A的UART
6.1.3 與 S3C2410A的UART連線的串列接口電路
6.1.4 S3C2410A的UART編程實例
6.2 I2C接口
6.2.1 I2C接口基本原理與結構
6.2.2 S3C2410A的I2C接口
6.2.3 S3C2410A的I2C接口套用實例
6.3 USB接口
6.3.1 USB接口基本原理與結構
6.3.2 S3C2410A的USB控制器
6.3.3 S3C2410A的USB接口電路與驅動程式
6.4 SPI接口
6.4.1 SPI接口基本原理與結構
6.4.2 S3C2410A的SPI接口電路
6.4.3 S3C2410A的SPI接口編程實例
6.5 PCI接口
6.5.1 PCI接口基本結構
6.5.2 PCI接口電路
6.6 I2S匯流排接口
6.6.1 數字音頻簡介
6.6.2 I2S匯流排結構
6.6.3 S3C2410A的I2S匯流排接口
6.6.4 S3C2410A的I2S匯流排接口電路與編程
思考題與習題
第7章 嵌入式系統網路接口
7.1 乙太網接口
7.1.1 乙太網基礎知識
7.1.2 嵌入式乙太網接口的實現方法
7.1.3 在嵌入式系統中主要處理的乙太網協定
7.1.4 網路編程接口
7.1.5 乙太網的物理層接口及編程
7.2 CAN匯流排接口
7.2.1 CAN匯流排概述
7.2.2 在嵌入式處理器上擴展CAN匯流排接口
7.2.3 S3C2410A與MCP2510的CAN通信接口電路
思考題與習題
第8章 嵌入式系統軟體及作業系統基礎
8.1 嵌入式軟體基礎
8.1.1 嵌入式軟體的特點
8.1.2 嵌入式軟體的分類
8.1.3 嵌入式軟體的體系結構
8.1.4 嵌入式系統的設備驅動層
8.1.5 嵌入式中間件
8.2 嵌入式作業系統基礎
8.2.1 嵌入式作業系統的功能
8.2.2 嵌入式作業系統的分類
8.2.3 常見的嵌入式作業系統簡介
8.3 嵌入式系統的任務管理
8.3.1 單道程式設計和多道程式設計
8.3.2 進程、執行緒和任務243 8.3.3 任務的實現
8.3.4 任務的調度
8.3.5 實時系統調度
8.4 嵌入式系統的存儲管理
8.4.1 嵌入式存儲管理方式的特點
8.4.2 存儲管理的實模式與保護模式
8.4.3 分區存儲管理
8.4.4 地址映射
8.4.5 頁式存儲管理
8.4.6 虛擬頁式存儲管理
8.5 I/O設備管理
8.5.1 I/O編址
8.5.2 I/O設備的控制方式
8.5.3 I/O軟體
思考題與習題
第9章 ARM彙編語言程式設計基礎
9.1 ADS集成開發環境
9.1.1 ADS工具包的組成
9.1.2 ADS開發工具集
9.1.3 Code Warrior IDE的創建
9.1.4 AXD調試器的使用
9.2 ARM彙編偽指令
9.2.1 數據常量定義偽指令
9.2.2 數據變數定義偽指令
9.2.3 記憶體分配偽指令
9.2.4 彙編控制偽指令
9.2.5 其他常用的偽指令
9.3 ARM的彙編語言結構
9.3.1 ARM彙編語言程式結構
9.3.2 ARM彙編語言的語句格式
9.3.3 基於Windows下ADS的彙編語言程式結構
9.3.4 基於Linux下GCC的彙編語言程式結構
9.4 ARM彙編語言程式調試
9.4.1 ADS軟體模擬環境下的程式調試
9.4.2 ADS硬體仿真器環境下的程式調試
9.4.3 ADS Wiggler調試電纜環境下的程式調試
9.4.4 Linux環境下的gdb程式調試
9.5 ARM彙編語言與C語言混合編程
9.5.1 基本的ATPCS
9.5.2 彙編程式中調用C程式
9.5.3 C程式中調用彙編程式
9.5.4 C程式中內嵌彙編語句
9.5.5 從彙編程式中訪問C程式變數
思考題與習題
第10章 Bootloader設計基礎
10.1 Bootloader概述
10.1.1 Bootloader 的作用
10.1.2 Bootloader的工作模式
10.1.3 Bootloader 的啟動流程
10.2 S3C2410 平台下Linux的Bootloader
10.2.1 vivi
10.2.2 Uboot
10.3 其他常見的Bootloader
10.3.1 Windows 的Bootloader
10.3.2 Blob
思考與習題
第11章 Linux作業系統基礎
11.1 嵌入式Linux的開發環境
11.1.1 交叉開發概述
11.1.2 桌面Linux的開發工具鏈
11.1.3 嵌入式Linux的交叉開發工具鏈
11.2 桌面Linux的安裝
11.2.1 雙作業系統環境
11.2.2 Cygwin模擬環境
11.2.3 VMware虛擬機環境
11.3 Linux的使用
11.3.1 Linux基本命令
11.3.2 vi編輯器的使用
11.3.3 gcc編譯器
11.3.4 make工具和Makefile檔案
11.4 Linux核心結構
11.4.1 核心子系統
11.4.2 設備驅動程式
11.5 linux目錄結構
11.5.1 Linux源檔案的目錄結構
11.5.2 Linux 運行系統的目錄結構
11.6 Linux檔案系統
11.6.1 檔案系統與核心的關係
11.6.2 常見通用Linux檔案系統
11.6.3 常見嵌入式Linux檔案系統
11.6.4 根檔案系統的選擇
思考題與習題
第12章 嵌入式Linux軟體設計
12.1 移植的基本概念
12.2 Bootloader的移植
12.2.1 關鍵檔案的修改
12.2.2 串口設定示例
12.2.3 Bootloader的交叉編譯
12.2.4 Bootloader的下載
12. 3嵌入式Linux核心的移植
12.3.1 核心移植的準備
12.3.2 關鍵檔案的修改
12.3.3 核心的配置與裁剪
12.3.4 核心的編譯
12.3.5 核心的下載
12.4 嵌入式Linux檔案系統的移植
12.5 Linux下設備驅動程式的開發
12.5.1 驅動程式概述
12.5.2 重要的數據結構和函式
12.5.3 字元設備驅動程式的組成
12.5.4 動態載入方式和靜態載入方式
12.5.5 字元設備驅動開發示例
12.6 應用程式開發
12.6.1 應用程式的載入方式
12.6.2 應用程式的GDB/GDBSERVER在線上調試
12.6.3 字元設備應用程式的開發
思考題與習題
第13 章 圖形用戶接口(GUI)
13.1 圖形用戶接口的層次結構
13.1.1 圖形基礎設施
13.1.2 高級圖形函式館
13.1.3 GUI視窗管理系統
13.2 桌面Linux系統GUI
13.2.1 KDE
13.2.2 GNOME
13.3 嵌入式Linux系統GUI
13.3.1 MiniGUI
13.3.2 Qtopia
13.3.3 NanoX
13.4 MiniGUI的開發初步
13.4.1 MiniGUI的開發環境
13.4.2 MiniGUI的移植
13.4.3 MiniGUI套用編程庫
13.4.4 應用程式編寫示例
13.5 Qt/E
13.5.1 Qt/E的套用架構
13.5.2 qvfb虛擬運行環境
13.6 Qt開發及運行環境的創建
13.6.1 Qt/E應用程式在PC機虛擬平台上的運行
13.6.2 Qt/E應用程式在嵌入式設備中的運行
13.6.3 Qtopia視窗系統在PC機虛擬平台上的運行
13.6.4 Qtopia視窗系統在嵌入式設備中的運行
13.7 Qt應用程式的開發
13.7.1 Qt/E基本控制項
13.7.2 開發工具Qt Designer介紹
13.7.3 控制台上的Qt/E套用編程
13.7.4 Qtopia上的Qt/E套用編程
思考題與習題
參考文獻
文章節選
本書是為高等院校電子信息工程、通信工程、自動控制、電氣自動化、計算機科學與技術等專業編寫的嵌入式系統設計、開發與套用的通用教材,也可作為全國大學生電子設計競賽培訓教材,以及工程技術人員進行嵌入式系統開發與套用的參考書。
本書的特點是以ARM9微處理器的S3C2410A為基礎,突出嵌入式系統的基礎知識,突出嵌入式系統的存儲器、輸入/輸出接口、匯流排接口的電路設計與編程,突出採用ARM彙編語言和嵌入式Linux的編程方法,突出圖形用戶接口(GUI)工具的使用,內容豐富實用,敘述詳盡清晰,方便教學與自學,與嵌入式系統實驗教學結合,有利於學生掌握嵌入式系統的設計方法,培養學生綜合分析、開發創新和工程設計的能力。
全書共分13章。
第1章介紹了嵌入式系統的定義和組成、嵌入式微處理器體系結構和類型。
第2章介紹了ARM微處理器結構、暫存器結構、異常處理、存儲器結構、指令系統和接口。
第3章介紹了S3C2410A的存儲器控制器、時鐘和電源管理、I/O口、中斷控制、DMA控制器的內部結構和暫存器以及編程方法。
第4章介紹了嵌入式系統存儲設備分類與層次結構、NORFLASH接口、NANDFlash接口、SDRAM接口、CF卡接口、SD卡接口、IDE接口的基本原理、電路結構與讀/寫操作方法。
第5章介紹了嵌入式系統的GPIO、A/D轉換器接口、D/A轉換器接口、鍵盤與LED數碼管接口、LCD顯示接口、觸控螢幕接口的基本原理、電路結構與編程方法。
第6章介紹了嵌入式系統的串列接口、I2C接口、USB接口、SPI接口、PCI接口、I2S匯流排接口的基本原理、電路結構與編程方法。
第7章介紹了嵌入式系統網路接口,包含有乙太網接口、CAN匯流排接口的基本原理、電路結構與編程方法。
第8章介紹了嵌入式軟體的特點、分類、體系結構,嵌入式作業系統的功能和分類,嵌入式系統的任務管理、存儲管理、輸入/輸出設備管理。
第9章介紹了ADSIDE的組成與使用,ARM彙編偽指令,ARM的彙編語言結構,ARM彙編語言程式調試,ARM彙編語言與C語言混合編程等ARM彙編語言程式設計基礎知識。
第10章介紹了Bootloader的作用、工作模式和啟動流程,S3C2410平台下Linux的Bootloader,WindowsCE的Bootloader和Blob。
第11章介紹了嵌入式Linux的開發環境,桌面Linux的安裝和使用,Linux核心結構、目錄結構、檔案系統等Linux作業系統基礎知識。
第12章介紹了Bootloader的移植,嵌入式Linux核心和檔案系統的移植,Linux下設備驅動程式的開發,應用程式開發。
第13章介紹了圖形用戶接口(GUI)的層次結構,桌面Linux系統GUI,嵌入式Linux系統GUI,MiniGUI的開發環境、移植、套用編程庫和應用程式編寫方法,Qt/Embedded,Qt開發及運行環境的創建和Qt應用程式的開發。
每章都附有思考題與習題。
本書是北京航空航天大學出版社組織出版的“十一五”高等院校規劃教材系列之一。由黃智偉擬訂編寫了本書大綱和目錄。黃智偉編寫了第1~8章內容。鄧月明編寫了第9~13章內容。南華大學王彥副教授、朱衛華副教授、陳文光副教授、李富英高級工程師、李聖、曾力、潘策榮,南華大學電子信息工程專業04級的劉聰、李揚宗、肖志剛、湯柯夫、樊亮,通信工程專業04級的趙俊、王永棟、晏子凱、何超、萬勤斌,湖南師範大學電子信息工程專業04級的王康斌,通信工程專業04級的彭德潤,05級的鄧偉、肖雅斌等人為本書的編寫做了大量的工作,在此一併表示衷心的感謝。同時感謝湖南省教育廳科學研究項目(07C577)課題組,南華大學高等教育研究與改革課題(06Y05)對本書出版的支持。
本書在編寫過程中,參考了大量的國內外著作和資料,得到了許多專家和學者的大力支持,聽取了多方面的寶貴意見和建議,在此對他們表示衷心的感謝。
由於時間倉促和水平所限,本書難免有疏漏和不足之處,敬請各位讀者批評指正。