标题：ARM9嵌入式系统设计基础教程
图书目录
第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应用编程
思考题与习题
参考文献