嵌入式系统的构建 试用教材 清华大学自动化系 2003年1月
嵌入式系统的构建 试用教材 清华大学自动化系 2003 年 1 月
刖言 第一章嵌入式系统的硬件构成 1.1.嵌入式系统硬件 1.1.1.嵌入式处理器 1.1.1.1.嵌入式微处理器( Embedded Microprocessor Unit,EMPU)… 1.1.1.2.嵌入式微控制器( Microcontroller Unit, MCU 1.1.1.3.嵌入式DSP处理器( mbedded Digital Signal Processor,EDSP) 1.1.14.嵌入式片上系统( System On Chip) 33334455 1.1.1.5.嵌入式处理器的选择 1.1.2.存储器 1.12.1.ROM 122.RAM. 1.1.3.输入输出设备 1.1.31.液晶显示 677889 1.1.32.触摸屏 1.1.3.3.语音输入输出技术 1.1.34.键盘 1.14.电源转换与管理 1.141.电源IC分类 1.142.电源IC的特点 143.电源IC选用指南 2.嵌入式系统硬件开发相关技术 12.1.接口技术 12.1.1.并行接口 1.2.12.串口 12.1.3.USB H33445566789 1.2.14. PCMCIA和CF 12.1.5.红外线接口 22.总线 22.1.ISA 12.2.2.PCI 1223.DC总线 1224.SPI总线 1.22.5.PC104总线 1226.CAN总线 123.嵌入式系统开发常用的硬件调试和编程技术 12.3.1.微代码支持的串口调试 1232.编程技术 123.3.JATG与IEE1149协议简介 124.3.3V和5V装置的互连 13.嵌入式系统开发示例——EZ开发板 13.1.系统性能 1.3.2.系统硬件设计 1.32.1.CPU与存储器模块 222
- i - 前 言.................................................................................................................................................1 第一章 嵌入式系统的硬件构成.....................................................................................................3 1.1. 嵌入式系统硬件...............................................................................................................3 1.1.1. 嵌入式处理器........................................................................................................3 1.1.1.1. 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) ......................3 1.1.1.2. 嵌入式微控制器(Microcontroller Unit, MCU)..........................................4 1.1.1.3. 嵌入式 DSP 处理器(Embedded Digital Signal Processor, EDSP).............4 1.1.1.4. 嵌入式片上系统(System On Chip)............................................................5 1.1.1.5. 嵌入式处理器的选择.................................................................................5 1.1.2. 存储器....................................................................................................................6 1.1.2.1. ROM.............................................................................................................7 1.1.2.2. RAM.............................................................................................................7 1.1.3. 输入输出设备........................................................................................................8 1.1.3.1. 液晶显示.....................................................................................................8 1.1.3.2. 触摸屏.........................................................................................................9 1.1.3.3. 语音输入输出技术...................................................................................10 1.1.3.4. 键盘...........................................................................................................11 1.1.4. 电源转换与管理..................................................................................................13 1.1.4.1. 电源 IC 分类.............................................................................................13 1.1.4.2. 电源 IC 的特点.........................................................................................14 1.1.4.3. 电源 IC 选用指南.....................................................................................14 1.2. 嵌入式系统硬件开发相关技术.....................................................................................15 1.2.1. 接口技术..............................................................................................................15 1.2.1.1. 并行接口...................................................................................................16 1.2.1.2. 串口...........................................................................................................16 1.2.1.3. USB............................................................................................................17 1.2.1.4. PCMCIA 和 CF..........................................................................................18 1.2.1.5. 红外线接口...............................................................................................19 1.2.2. 总线......................................................................................................................20 1.2.2.1. ISA .............................................................................................................20 1.2.2.2. PCI .............................................................................................................20 1.2.2.3. I2C 总线.....................................................................................................21 1.2.2.4. SPI 总线.....................................................................................................21 1.2.2.5. PC104 总线................................................................................................22 1.2.2.6. CAN 总线 ..................................................................................................23 1.2.3. 嵌入式系统开发常用的硬件调试和编程技术..................................................24 1.2.3.1. 微代码支持的串口调试...........................................................................24 1.2.3.2. 编程技术...................................................................................................24 1.2.3.3. JATG 与 IEEE1149 协议简介...................................................................25 1.2.4. 3.3V 和 5V 装置的互连.......................................................................................26 1.3. 嵌入式系统开发示例——EZ 开发板...........................................................................27 1.3.1. 系统性能..............................................................................................................27 1.3.2. 系统硬件设计......................................................................................................28 1.3.2.1. CPU 与存储器模块...................................................................................28
1.322.LCD显示模块 1.3,2.3.串口模块 1.3.24.电源模块 13.2.5.进入 BOOTSTRAP电路模块 1.3.3.TQFP和LQFP器件的焊接方法 1.34.硬件调试 第二章操作系统. 2.1.基础知识 2.1.1.操作系统功能 2.1.2.操作系统发展史 2.1.3. Linux与嵌入式Linu 3222234 22.操作系统内核 22.1.内存管理 221.1.内存管理功能 221.2.内存分割 221.3.虚拟内存 22.14 Linux的内存管理机制 222.进程与中断管理 222.1.进程描述与控制 2222.并发控制:互斥与同步 22.2.3.并发控制:死锁处理 2224.中断及中断处理 222.5.Linuⅸx的进程与中断管理机制 223.调度机制 22.3.1.调度类型 22.3.2.单处理器调度 223.3.多处理器调度 223.4.实时调度 69 223.5. Linux的调度机制 224.O设备 2241.IO设备描述参数 2242.IO技术的演变 2243.LO设备逻辑描述 2244IO缓冲技术 2245.磁盘调度 225.文件管理 2251.文件与文件系统 2444579228 22.52.文件组织与访问 22.53.文件共享 22.54.记录分块 2255.外围存储设备管理 2256. Linux的文件系统管理 23.用户界面 2.3.1.图形用户界面
- ii - 1.3.2.2. LCD 显示模块...........................................................................................28 1.3.2.3. 串口模块...................................................................................................29 1.3.2.4. 电源模块...................................................................................................29 1.3.2.5. 进入 BOOTSTRAP 电路模块..................................................................30 1.3.3. TQFP 和 LQFP 器件的焊接方法 ......................................................................30 1.3.4. 硬件调试..............................................................................................................31 第二章 操作系统...........................................................................................................................32 2.1. 基础知识.........................................................................................................................32 2.1.1. 操作系统功能......................................................................................................32 2.1.2. 操作系统发展史..................................................................................................32 2.1.3. Linux 与嵌入式 Linux..........................................................................................33 2.2. 操作系统内核.................................................................................................................34 2.2.1. 内存管理..............................................................................................................34 2.2.1.1. 内存管理功能...........................................................................................34 2.2.1.2. 内存分割...................................................................................................34 2.2.1.3. 虚拟内存...................................................................................................35 2.2.1.4. Linux 的内存管理机制 .............................................................................37 2.2.2. 进程与中断管理..................................................................................................40 2.2.2.1. 进程描述与控制.......................................................................................41 2.2.2.2. 并发控制:互斥与同步...........................................................................45 2.2.2.3. 并发控制:死锁处理...............................................................................52 2.2.2.4. 中断及中断处理.......................................................................................56 2.2.2.5. Linux 的进程与中断管理机制 .................................................................58 2.2.3. 调度机制..............................................................................................................63 2.2.3.1. 调度类型...................................................................................................63 2.2.3.2. 单处理器调度...........................................................................................65 2.2.3.3. 多处理器调度...........................................................................................67 2.2.3.4. 实时调度...................................................................................................69 2.2.3.5. Linux 的调度机制 .....................................................................................72 2.2.4. I/O 设备 ................................................................................................................74 2.2.4.1. I/O 设备描述参数......................................................................................74 2.2.4.2. I/O 技术的演变..........................................................................................74 2.2.4.3. I/O 设备逻辑描述......................................................................................75 2.2.4.4. I/O 缓冲技术 .............................................................................................77 2.2.4.5. 磁盘调度...................................................................................................79 2.2.5. 文件管理..............................................................................................................82 2.2.5.1. 文件与文件系统.......................................................................................82 2.2.5.2. 文件组织与访问.......................................................................................83 2.2.5.3. 文件共享...................................................................................................86 2.2.5.4. 记录分块...................................................................................................86 2.2.5.5. 外围存储设备管理...................................................................................87 2.2.5.6. Linux 的文件系统管理 .............................................................................88 2.3. 用户界面.........................................................................................................................89 2.3.1. 图形用户界面......................................................................................................90
2.3.1.1.基本知识 23.12.关键技术 3.2.智能化用户界面 232.1. Agent技术 2322. Agent技术与用户界面的结合 233. Linux下的用户界面 2331. X Window简介 233.2.X服务器 23.3.3.窗口管理器 第三章嵌入式 Linux 100 3.1.嵌入式 Linux内核 100 3.1.1嵌入式 Linux综述 3.1.2 u CLinux 3.1.2.1 uClinux的内存管理 000 3.1.22 uCLinux内核结构 3123内存保护 3.1,24编程接口的改变 3.1.25 uCLinux的应用程序库 3.126 uCLinux内核运行方式 3.127. uClinux支持的文件系统 104 3.2.嵌入式设备的文件系统 321.闪存( Flash Memory)介绍 322.第二版扩展文件系统Ext2fs( Extended2 Filesystem) 323.临时文件系统mpfs( Temporary Filesystem) 3.24.日志闪存文件系统版本2-JFFS2( Journalling Flash Filesystem) 3241概述 3242.JFFS的设计原理 3.3嵌入式用户界面 331.GUI开发工具综述 331.1. Free864X(带帧缓冲区支持的XlR64) 000000 3.3.1.2. Microwindows 3.3.1.3.FLTK 3.3. 1.4. Qt/Embedded 110 332 Micro windows剖析 111 332.1.分层设计 3.322.设备驱动层 3.323.设备无关的图形引擎层 l11 3324.API(基于Win32) 112 3325.消息传递机制 3326.窗口操作 3.327.客户区域和绝对坐标 3328.设备上下文 113 3.33. Microwindows的移植和中文化 333.1.针对 uClinux所作的修改
- iii - 2.3.1.1. 基本知识...................................................................................................90 2.3.1.2. 关键技术...................................................................................................90 2.3.2. 智能化用户界面..................................................................................................92 2.3.2.1. Agent 技术 .................................................................................................92 2.3.2.2. Agent 技术与用户界面的结合 .................................................................95 2.3.3. Linux 下的用户界面 ............................................................................................96 2.3.3.1. X Window 简介 .........................................................................................96 2.3.3.2. X 服务器....................................................................................................97 2.3.3.3. 窗口管理器...............................................................................................99 第三章 嵌入式 Linux ..................................................................................................................100 3.1. 嵌入式 Linux 内核.......................................................................................................100 3.1.1 嵌入式 Linux 综述 ..............................................................................................100 3.1.2 uCLinux ...............................................................................................................100 3.1.2.1 uClinux 的内存管理.................................................................................101 3.1.2.2 uCLinux 内核结构....................................................................................101 3.1.2.3 内存保护..................................................................................................102 3.1.2.4 编程接口的改变......................................................................................102 3.1.2.5 uCLinux 的应用程序库............................................................................103 3.1.2.6 uCLinux 内核运行方式............................................................................104 3.1.2.7. uClinux 支持的文件系统........................................................................104 3.2. 嵌入式设备的文件系统...............................................................................................104 3.2.1. 闪存(Flash Memory)介绍 ............................................................................104 3.2.2. 第二版扩展文件系统 Ext2fs(Extended 2 Filesystem) ................................104 3.2.3. 临时文件系统 tmpfs(Temporary Filesystem)..............................................105 3.2.4. 日志闪存文件系统版本 2-JFFS2(Journalling Flash Filesystem) ..106 3.2.4.1 概述...........................................................................................................106 3.2.4.2. JFFS 的设计原理:.................................................................................106 3.3 嵌入式用户界面............................................................................................................108 3.3.1. GUI 开发工具综述.............................................................................................108 3.3.1.1. Xfree86 4.X(带帧缓冲区支持的 X11R6.4)......................................108 3.3.1.2. Microwindows..........................................................................................109 3.3.1.3. FLTK ........................................................................................................109 3.3.1.4. Qt/Embedded............................................................................................110 3.3.2 MicroWindows 剖析............................................................................................ 111 3.3.2.1. 分层设计................................................................................................. 111 3.3.2.2. 设备驱动层............................................................................................. 111 3.3.2.3. 设备无关的图形引擎层......................................................................... 111 3.3.2.4. API(基于 Win32)................................................................................112 3.3.2.5. 消息传递机制.........................................................................................112 3.3.2.6. 窗口操作.................................................................................................112 3.3.2.7. 客户区域和绝对坐标.............................................................................113 3.3.2.8. 设备上下文.............................................................................................113 3.3.3. Microwindows 的移植和中文化........................................................................113 3.3.3.1. 针对 uCLinux 所作的修改.....................................................................114
3332.中文化处理 334.应用实例一电子文本阅读器 115 3.341功能要求以及方案选择: 3342具体实现 第四章交叉编译 4.1.编译原理 4.1.1.基础知识 .17 4.1.1.1.编译的一般过程 117 4.1.1.2.与编译器相关的程序 4.1.1.3.编译器的移植 l19 41.2.词法分析 119 41.2.1.词法的形式化描述 119 41.22.词法分析程序的设计 41.3.语法分析 41.3.1.自顶向下的语法分析 41.32.自底向上的语法分析 126 41.4.中间代码 128 4.1.5.代码优化 42.交叉编译技术 133 42.1.交叉编译 42.2.GCC交叉编译器 42.2.1.GCC编译流程. 42.22. Linux环境下的GCC交叉编译器 第五章嵌入式 Linux的软件开发环境 5.1.交叉编译环境 142 5.1.1.编译开发环境的建立 5.1.1.1安装交叉编译环境 142 51.1.2.添加设备驱动和内核模块 142 51.2.可执行文件 51.2.1.Co文件格式 51.2.2.elf文件格式 51.2.3.flat文件格式 52.调试技术 521.常见调试方法 522.内存调试 522.系统调用跟踪 148 523.程序调试 149 53.系统引导和内核启动 531. Bootloader程序的设计与实现 531.1.硬件平台的通信 531.2.硬件平台初始化程序 53.1.3.硬件平台监控程序 532. uCLinux移植. 532.1.第一阶段
- iv - 3.3.3.2. 中文化处理.............................................................................................114 3.3.4. 应用实例-电子文本阅读器............................................................................115 3.3.4.1 功能要求以及方案选择:.......................................................................115 3.3.4.2 具体实现...................................................................................................115 第四章 交叉编译.........................................................................................................................117 4.1. 编译原理.......................................................................................................................117 4.1.1. 基础知识............................................................................................................117 4.1.1.1. 编译的一般过程.....................................................................................117 4.1.1.2. 与编译器相关的程序.............................................................................118 4.1.1.3. 编译器的移植.........................................................................................119 4.1.2. 词法分析............................................................................................................119 4.1.2.1. 词法的形式化描述.................................................................................119 4.1.2.2. 词法分析程序的设计.............................................................................122 4.1.3. 语法分析............................................................................................................123 4.1.3.1. 自顶向下的语法分析.............................................................................124 4.1.3.2. 自底向上的语法分析.............................................................................126 4.1.4. 中间代码............................................................................................................128 4.1.5. 代码优化............................................................................................................130 4.2. 交叉编译技术...............................................................................................................133 4.2.1. 交叉编译............................................................................................................133 4.2.2. GCC 交叉编译器................................................................................................134 4.2.2.1. GCC 编译流程.........................................................................................134 4.2.2.2. Linux 环境下的 GCC 交叉编译器.........................................................137 第五章 嵌入式 Linux 的软件开发环境 .....................................................................................142 5.1. 交叉编译环境...............................................................................................................142 5.1.1. 编译开发环境的建立........................................................................................142 5.1.1.1 安装交叉编译环境...................................................................................142 5.1.1.2. 添加设备驱动和内核模块.....................................................................142 5.1.2. 可执行文件........................................................................................................143 5.1.2.1. Coff 文件格式..........................................................................................143 5.1.2.2. elf 文件格式.............................................................................................143 5.1.2.3. flat 文件格式 ...........................................................................................143 5.2. 调试技术.......................................................................................................................144 5.2.1. 常见调试方法....................................................................................................144 5.2.2. 内存调试............................................................................................................145 5.2.2. 系统调用跟踪....................................................................................................148 5.2.3. 程序调试............................................................................................................149 5.3. 系统引导和内核启动...................................................................................................154 5.3.1. Bootloader 程序的设计与实现..........................................................................154 5.3.1.1. 硬件平台的通信.....................................................................................154 5.3.1.2. 硬件平台初始化程序.............................................................................154 5.3.1.3. 硬件平台监控程序.................................................................................155 5.3.2. uCLinux 移植......................................................................................................155 5.3.2.1. 第一阶段.................................................................................................155