第1章 嵌入式系統(tǒng)基礎
1.1 嵌入式系統(tǒng)簡介
1.1.1 嵌入式系統(tǒng)定義
1.1.2 嵌入式系統(tǒng)與PC
1.1.3 嵌入式系統(tǒng)的特點
1.2 嵌入式系統(tǒng)的發(fā)展
1.2.1 嵌入式系統(tǒng)現(xiàn)狀
1.2.2 嵌入式系統(tǒng)發(fā)展趨勢
1.3 嵌入式操作系統(tǒng)與實時操作系統(tǒng)
1.3.1 Linux
1.3.2 uC/OS
1.3.3 Windows CE
1.3.4 VxWorks
1.3.5 Palm OS
1.3.6 QNX
1.4 嵌入式系統(tǒng)選型
第2章 基于ARM9處理器的硬件開發(fā)平臺
2.1 ARM處理器簡介
2.1.1 ARM公司簡介
2.1.2 ARM微處理器核
2.2 ARM9微處理器簡介
2.2.1 與ARM7處理器的比較
2.2.2 三星S3C2410X處理器詳解
2.3 FS2410開發(fā)平臺
第3章 創(chuàng)建嵌入式系統(tǒng)開發(fā)環(huán)境
3.1 嵌入式Linux的開發(fā)環(huán)境
3.2 Cygwin
3.3 虛擬機
3.4 交叉編譯的預備知識
3.4.1 Make命令和Makefile文件
3.4.2 binutils工具包
3.4.3 gcc編譯器
3.4.4 Glibc庫
3.4.5 GDB
3.5 交叉編譯
3.5.1 創(chuàng)建編譯環(huán)境
3.5.2 編譯binutils
3.5.3 編譯bootstrap_gcc
3.5.4 編譯Glibc
3.5.5 編譯完整的gcc
3.5.6 編譯GDB
3.5.7 成果
3.5.8 其他交叉編譯方法
3.6 通過二進制軟件包創(chuàng)建交叉編譯環(huán)境
3.7 開發(fā)套件
第4章 調試嵌入式系統(tǒng)程序
4.1 嵌入式系統(tǒng)調試方法
4.1.1 實時在線仿真
4.1.2 模擬調試
4.1.3 軟件調試
4.1.4 BDM/JTAG調試
4.2 ARM仿真器
4.2.1 techorICE™ ARM仿真器
4.2.2 ARM仿真器工作原理
4.2.3 ARM仿真器的系統(tǒng)功能層次
4.2.4 使用仿真器和ADS Debugger調試ARM開發(fā)板
4.3 JTAG接口
4.3.1 JTAG引腳定義
4.3.2 通過JTAG燒寫Flash
4.3.3 燒寫Flash技術內幕
第5章 Bootloader
5.1 嵌入式系統(tǒng)的引導代碼
5.1.1 初識Bootloader
5.1.2 Bootloader的啟動流程
5.2 Bootloader之vivi
5.2.1 vivi簡介
5.2.2 vivi的配置與編譯
5.2.3 vivi代碼導讀
5.3 Bootloader之U-Boot
5.3.1 U-Boot代碼結構分析
5.3.2 編譯U-Boot代碼
5.3.3 U-Boot代碼導讀
5.3.4 U-Boot命令
5.4 FS2410的Bootloader
第6章 Linux系統(tǒng)在ARM平臺的移植
6.1 移植的概念
6.2 Linux內核結構
6.3 Linux-2.4內核向ARM平臺的移植
6.3.1 根目錄
6.3.2 arch目錄
6.3.3 arch/arm/boot目錄
6.3.4 arch/arm/def-configs目錄
6.3.5 arch/arm/kernel目錄
6.3.6 arch/arm/mm目錄
6.3.7 arch/arm/mach-s3c2410目錄
6.4 Linux-2.6內核向ARM平臺的移植
6.4.1 定義平臺和編譯器
6.4.2 arch/arm/mach-s3c2410/devs.c
6.4.3 arch/arm/mach-s3c2410/mach-fs2410.c
6.4.4 串口輸出
6.5 編譯Linux內核
6.5.1 代碼成熟等級選項
6.5.2 通用的一些選項
6.5.3 和模塊相關的選項
6.5.4 和塊相關的選項
6.5.5 和系統(tǒng)類型相關的選項
6.5.6 和總線相關的選項
6.5.7 和內核特性相關的選項
6.5.8 和系統(tǒng)啟動相關的選項
6.5.9 和浮點運算相關的選項
6.5.10 用戶空間使用的二進制文件格式的選項
6.5.11 和電源管理相關的選項
6.5.12 和網絡協(xié)議相關的選項
6.5.13 和設備驅動程序相關的選項
6.5.14 和文件系統(tǒng)相關的選項
6.5.15 和程序性能分析相關的選項
6.5.16 和內核調試相關的選項
6.5.17 和安全相關的選項
6.5.18 和加密算法相關的選項
6.5.19 庫選項
6.5.20 保存內核配置
第7章 Linux設備驅動程序開發(fā)
7.1 設備驅動概述
7.1.1 設備驅動和文件系統(tǒng)的關系
7.1.2 設備類型分類
7.1.3 內核空間和用戶空間
7.2 設備驅動基礎
7.2.1 設備驅動中關鍵數據結構
7.2.2 字符設備驅動開發(fā)
第8章 網絡設備驅動程序開發(fā)
8.1 網絡設備驅動程序簡介
8.1.1 device數據結構
8.1.2 sk_buff數據結構
8.1.3 內核的驅動程序接口
8.2 以太網控制器CS8900A
8.2.1 特性
8.2.2 工作原理
8.2.3 電路連接
8.2.4 引腳
8.2.5 操作模式
8.3 網絡設備驅動程序實例
8.3.1 初始化函數
8.3.2 打開函數
8.3.3 關閉函數
8.3.4 發(fā)送函數
8.3.5 接收函數
8.3.6 中斷處理函數
第9章 USB驅動程序開發(fā)
9.1 USB驅動程序簡介
9.1.1 USB背景知識
9.1.2 Linux內核對USB規(guī)范的支持
9.1.3 OHCI簡介
9.2 Linux下USB系統(tǒng)文件結點
9.3 USB主機驅動結構
9.3.1 USB數據傳輸時序
9.3.2 USB設備連接/斷開時序
9.4 主要數據結構及接口函數
9.4.1 數據傳輸管道
9.4.2 統(tǒng)一的USB數據傳輸塊
9.4.3 USBD數據描述
9.4.4 USBD與HCD驅動程序接口
9.4.5 USBD層的設備管理
9.4.6 設備類驅動與USBD接口
9.5 USBD文件系統(tǒng)接口
9.5.1 設備驅動程序訪問
9.5.2 設備拓撲訪問
9.5.3 設備信息訪問
9.6 設備類驅動與文件系統(tǒng)接口
9.7 USB HUB驅動程序
9.7.1 HUB驅動初始化
9.7.2 HUB Probe相關函數
9.8 OHCI HCD實現(xiàn)
9.8.1 OHCI驅動初始化
9.8.2 與USBD連接
9.8.3 OHCI根HUB
9.9 掃描儀設備驅動程序
9.9.1 USBD接口
9.9.2 文件系統(tǒng)接口
9.10 USB主機驅動在S3C2410X平臺的實現(xiàn)
9.10.1 USB主機控制器簡介
9.10.2 驅動程序的移植
第10章 圖形用戶接口
10.1 嵌入式系統(tǒng)中的GUI簡介
10.1.1 MicroWindows
10.1.2 MiniGUI
10.1.3 Qt/Embedded
10.2 MiniGUI編程
10.2.1 MiniGUI移植
10.2.2 MiniGUI編程
10.3 初識Qt/Embedded
10.3.1 Qt介紹
10.3.2 系統(tǒng)要求
10.3.3 Qt的架構
10.4 Qt/Embedded嵌入式圖形開發(fā)基礎
10.4.1 建立Qt/Embedded 開發(fā)環(huán)境
10.4.2 認識Qt/Embedded開發(fā)環(huán)境
10.4.3 窗體
10.4.4 對話框
10.4.5 外形與感覺
10.4.6 國際化
10.5 Qt/Embedded實戰(zhàn)演練
10.5.1 安裝Qt/Embedded工具開發(fā)包
10.5.2 交叉編譯Qt/Embedded庫
10.5.3 Hello,World
10.5.4 發(fā)布Qt/Embedded程序到目標板
10.5.5 添加一個Qt/Embedded應用到QPE
第11章 Java虛擬機的移植
11.1 Java虛擬機概述
11.1.1 Java虛擬機的概念
11.1.2 J2ME
11.1.3 KVM
11.2 Java虛擬機的移植
11.2.1 獲得源碼
11.2.2 編譯環(huán)境的建立
11.2.3 JDK的安裝
11.2.4 KVM的移植及編譯
11.2.5 KVM的測試
11.3 其他可選的虛擬機
11.4 性能優(yōu)化
第12章 嵌入式文件系統(tǒng)
12.1 文件系統(tǒng)簡介
12.2 Linux根文件系統(tǒng)
12.3 Linux系統(tǒng)的引導過程
12.3.1 啟動內核
12.3.2 init
12.3.3 mingetty
12.4 嵌入式文件系統(tǒng)
12.4.1 嵌入式文件系統(tǒng)的特點和種類
12.4.2 常見的嵌入式文件系統(tǒng)
12.4.3 MTD
12.4.4 RAMDISK
12.4.5 網絡文件系統(tǒng)
12.5 Busybox
第13章 系統(tǒng)設計開發(fā)
13.1 概述
13.2 硬件功能的實現(xiàn)
13.2.1 功能定義
13.2.2 原理圖設計
13.2.3 PCB設計
13.2.4 硬件調試
參考文獻