嵌入式系统的构建-清华大学教材:第一章 嵌入式系统的硬件构成.31.1. 嵌入式系统硬件...31.1.1. 嵌入式处理器31.1.1.1. 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) ..31.1.1.2. 嵌入式微控制器(Microcontroller Unit, MCU)..41.1.1.3. 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP).41.1.1.4. 嵌入式片上系统(System On Chip)51.1.1.5. 嵌入式处理器的选择.51.1.2. 存储器61.1.2.1. ROM.71.1.2.2. RAM.71.1.3. 输入输出设备81.1.3.1. 液晶显示.81.1.3.2. 触摸屏.91.1.3.3. 语音输入输出技术...101.1.3.4. 键盘...111.1.4. 电源转换与管理..131.1.4.1. 电源IC 分类.131.1.4.2. 电源IC 的特点.141.1.4.3. 电源IC 选用指南.141.2. 嵌入式系统硬件开发相关技术.151.2.1. 接口技术..151.2.1.1. 并行接口...161.2.1.2. 串口...161.2.1.3. USB171.2.1.4. PCMCIA 和CF..181.2.1.5. 红外线接口...191.2.2. 总线..201.2.2.1. ISA .201.2.2.2. PCI .201.2.2.3. I2C 总线.211.2.2.4. SPI 总线.211.2.2.5. PC104 总线221.2.2.6. CAN 总线..231.2.3. 嵌入式系统开发常用的硬件调试和编程技术..241.2.3.1. 微代码支持的串口调试...241.2.3.2. 编程技术...241.2.3.3. JATG 与IEEE1149 协议简介...251.2.4. 3.3V 和5V 装置的互连...261.3. 嵌入式系统开发示例——EZ 开发板...271.3.1. 系统性能..271.3.2. 系统硬件设计..281.3.2.1. CPU 与存储器模块...281.3.2.2. LCD 显示模块...281.3.2.3. 串口模块...291.3.2.4. 电源模块...291.3.2.5. 进入BOOTSTRAP 电路模块..301.3.3. TQFP 和LQFP 器件的焊接方法..301.3.4. 硬件调试..31第二章 操作系统...322.1. 基础知识.322.1.1. 操作系统功能..322.1.2. 操作系统发展史..322.1.3. Linux 与嵌入式Linux..332.2. 操作系统内核.342.2.1. 内存管理..342.2.1.1. 内存管理功能...342.2.1.2. 内存分割...342.2.1.3. 虚拟内存...352.2.1.4. Linux 的内存管理机制.372.2.2. 进程与中断管理..402.2.2.1. 进程描述与控制...412.2.2.2. 并发控制:互斥与同步...452.2.2.3. 并发控制:死锁处理...522.2.2.4. 中断及中断处理...562.2.2.5. Linux 的进程与中断管理机制.582.2.3. 调度机制..632.2.3.1. 调度类型...632.2.3.2. 单处理器调度...652.2.3.3. 多处理器调度...672.2.3.4. 实时调度...692.2.3.5. Linux 的调度机制.722.2.4. I/O 设备742.2.4.1. I/O 设备描述参数..742.2.4.2. I/O 技术的演变..742.2.4.3. I/O 设备逻辑描述..752.2.4.4. I/O 缓冲技术.772.2.4.5. 磁盘调度...792.2.5. 文件管理..822.2.5.1. 文件与文件系统...822.2.5.2. 文件组织与访问...832.2.5.3. 文件共享...862.2.5.4. 记录分块...862.2.5.5. 外围存储设备管理...872.2.5.6. Linux 的文件系统管理.882.3. 用户界面.892.3.1. 图形用户界面..90- iii -2.3.1.1. 基本知识...902.3.1.2. 关键技术...902.3.2. 智能化用户界面..922.3.2.1. Agent 技术.922.3.2.2. Agent 技术与用户界面的结合.952.3.3. Linux 下的用户界面962.3.3.1. X Window 简介.962.3.3.2. X 服务器972.3.3.3. 窗口管理器...99第三章 嵌入式Linux ..1003.1. 嵌入式Linux 内核...1003.1.1 嵌入式Linux 综述..1003.1.2 uCLinux ...1003.1.2.1 uClinux 的内存管理.1013.1.2.2 uCLinux 内核结构1013.1.2.3 内存保护..1023.1.2.4 编程接口的改变..1023.1.2.5 uCLinux 的应用程序库1033.1.2.6 uCLinux 内核运行方式1043.1.2.7. uClinux 支持的文件系统1043.2. 嵌入式设备的文件系统...1043.2.1. 闪存(Flash Memory)介绍1043.2.2. 第二版扩展文件系统Ext2fs(Extended 2 Filesystem) 1043.2.3. 临时文件系统tmpfs(Temporary Filesystem) ..1053.2.4. 日志闪存文件系统版本 2-JFFS2(Journalling Flash Filesystem) ..1063.2.4.1 概述...1063.2.4.2. JFFS 的设计原理:.1063.3 嵌入式用户界面1083.3.1. GUI 开发工具综述.1083.3.1.1. Xfree86 4.X(带帧缓冲区支持的 X11R6.4)..1083.3.1.2. Microwindows..1093.3.1.3. FLTK1093.3.1.4. Qt/Embedded1103.3.2 MicroWindows 剖析 1113.3.2.1. 分层设计. 1113.3.2.2. 设备驱动层. 1113.3.2.3. 设备无关的图形引擎层. 1113.3.2.4. API(基于Win32)1123.3.2.5. 消息传递机制.1123.3.2.6. 窗口操作.1123.3.2.7. 客户区域和绝对坐标.1133.3.2.8. 设备上下文.1133.3.3. Microwindows 的移植和中文化1133.3.3.1. 针对uCLinux 所作的修改.114- iv -3.3.3.2. 中文化处理.1143.3.4. 应用实例-电子文本阅读器1153.3.4.1 功能要求以及方案选择:...1153.3.4.2 具体实现...115第四章 交叉编译.1174.1. 编译原理...1174.1.1. 基础知识1174.1.1.1. 编译的一般过程.1174.1.1.2. 与编译器相关的程序.1184.1.1.3. 编译器的移植.1194.1.2. 词法分析1194.1.2.1. 词法的形式化描述.1194.1.2.2. 词法分析程序的设计.1224.1.3. 语法分析1234.1.3.1. 自顶向下的语法分析.1244.1.3.2. 自底向上的语法分析.1264.1.4. 中间代码1284.1.5. 代码优化1304.2. 交叉编译技术...1334.2.1. 交叉编译1334.2.2. GCC 交叉编译器1344.2.2.1. GCC 编译流程.1344.2.2.2. Linux 环境下的GCC 交叉编译器.137第五章 嵌入式Linux 的软件开发环境.1425.1. 交叉编译环境...1425.1.1. 编译开发环境的建立1425.1.1.1 安装交叉编译环境...1425.1.1.2. 添加设备驱动和内核模块.1425.1.2. 可执行文件1435.1.2.1. Coff 文件格式..1435.1.2.2. elf 文件格式.1435.1.2.3. flat 文件格式...1435.2. 调试技术...1445.2.1. 常见调试方法1445.2.2. 内存调试1455.2.2. 系统调用跟踪1485.2.3. 程序调试1495.3. 系统引导和内核启动...1545.3.1. Bootloader 程序的设计与实现..1545.3.1.1. 硬件平台的通信.1545.3.1.2. 硬件平台初始化程序.1545.3.1.3. 硬件平台监控程序.1555.3.2. uCLinux 移植..1555.3.2.1. 第一阶段.155- v -5.3.2.2. 第二阶段.160第六章 设备驱动程序.1616.1. 概述...1616.1.1. 设备类型1626.1.2. 设备号1626.1.3. 模块化编程1636.2. 设备文件接口...1646.2.1. 用户访问接口1646.2.2. 文件操作1656.2.2.1. file_operations 结构1656.2.2.2. file 结构...1676.2.3. I/O 操作..1676.3. 中断处理...1696.3.1. 注册中断处理程序1706.3.2. 实现中断处理程序1726.4. 应用实例...1736.4.1. 字符型设备1736.4.1.1. 按键.1736.4.1.2. 触摸屏.1756.4.2. 网络设备1846.4.2.1. 网络驱动的框架.1846.4.2.2. 网卡驱动程序的加载方法.1876.4.2.3. CS8900A 芯片特点.1886.4.2.4. CS8900A 芯片驱动程序的实现.1906.4.2.5. 网络设备驱动程序的编译.1966.4.2.6. 网络驱动程序的测试.197