第一篇 基础理论篇 3
第1章 嵌入式系统基础 3
1.1 嵌入式系统的概念 3
1.1.1 概念 3
1.1.2 组成 4
1.1.3 特点 5
1.2 实时系统 6
1.2.1 实时系统 6
1.2.2 实时系统的特点及分类 6
1.3 嵌入式和实时系统的应用 7
1.3.1 嵌入式应用 7
1.3.2 一般应用 8
1.4 实时操作系统 9
1.4.1 实时操作系统的分类 9
1.4.2 实时操作系统的概念 11
1.4.3 实时操作系统的发展 11
1.4.4 实时操作系统的组成 13
1.4.5 实时操作系统的特点及应用 14
1.4.6 常见的实时操作系统 14
1.5 实时操作系统的内核 17
1.5.1 任务管理 17
1.5.2 存储器管理 23
1.5.3 任务间的通信和同步 24
1.5.4 定时器管理 27
1.5.5 中断管理 27
1.6 嵌入式应用软件 28
1.7 国内外嵌入式系统的发展现状及未来 28
第2章 嵌入式实时软件的开发 30
2.1 嵌入式实时软件开发的特点 30
2.2 嵌入式应用软件的开发流程 32
2.2.1 需求分析阶段 33
2.2.2 设计阶段 33
2.2.3 生成代码阶段 37
2.2.4 固化阶段 40
2.3 嵌入式实时开发的软、硬件资源 41
2.3.1 硬件资源 41
2.3.2 软件资源 43
2.4 板级支持包(BSP) 53
2.5 嵌入式开发的可移植性和可重用性 55
第3章 嵌入式系统硬件基础 57
3.1 嵌入式处理器 58
3.1.1 嵌入式微处理器(Embedded Micro Processor Unit,EMPU) 58
3.1.2 嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMU) 59
3.1.3 嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP) 60
3.1.4 嵌入式片上系统(Embedded SystemOnChip,ESOC) 60
3.2 嵌入式系统调试 61
3.2.1 实时在线仿真系统ICE(In-CircuitEmulator) 62
3.2.2 Monitor调试 62
3.2.3 模拟调试 62
3.3.1 编程器编程 63
3.3 嵌入式FLASH的编程 63
3.3.2 普通接口编程 64
3.3.3 JTAG编程 64
3.4 基本嵌入式系统的外围接口 70
3.4.1 预分频器(Prescaler) 70
3.4.2 可编程定时器/计数器(Programmable Timer/Counter) 71
3.4.3 PWM(脉宽调制) 72
3.4.4 WatchDogTimer(看门狗定时器) 72
3.4.5 A/D或者D/A转换 73
3.4.6 I2C(Intel Integrated Circuit)总线接口 74
3.4.7 SPI总线接口 77
第二篇 综合应用篇 81
第4章嵌 入式Linux的开发 81
4.1 嵌入式Linux概况 81
4.1.1 Linux简介 82
4.1.2 嵌入式Linux 82
4.1.3 嵌入式Linux的组成 85
4.1.4 嵌入式Linux的版本 86
4.2 嵌入式Linux开发基础 88
4.2.1 Linux的程序文件后缀名 88
4.2.2 Linux下的汇编语言 89
4.3 开发工具 93
4.3.1 GCC编译器 94
4.3.2 GDB调试程序 99
4.3.3 make项目维护程序 105
4.4 嵌入式Linux内核的生成 112
4.4.1 内核的配置和生成 112
4.4.2 内核的启动过程 115
4.5 嵌入式Linux远程调试实例 120
4.5.1 GDB远程调试的结构 120
4.5.2 GDB远程串行通信协议 122
4.5.3 GDB远程调试建立的条件 123
4.5.4 stub的结构 124
4.5.5 远程调试步骤 143
第5章 路由器开发实例讲解 145
5.1 路由器基础知识 146
5.1.1 路由器的工作原理 146
5.1.2 路由器的功能 147
5.1.3 路由器的优点 148
5.1.4 用户接入路由器 148
5.1.5 NAT(Network Address Translation)网络地址转换 149
5.1.6 虚拟专用网VPN(Virtual Private Network) 151
5.1.7 路由器对VoIP(VoiceOverIP)技术的支持 152
5.2 防火墙(Firewall) 153
5.2.1 分组过滤防火墙 155
5.2.2 代理防火墙 156
5.2.3 防火墙的安全措施 157
5.3 硬件、软件设计分析 159
5.3.1 集成开发工具LambdaTOOL 162
5.3.2 嵌入式操作系统核心DeltaCORE 167
5.4 硬件设计原理 169
5.5.1 BSP板级支持包的原理和开发 170
5.5 BSP及驱动程序设计 170
5.5.2 驱动程序的原理和实例解析 181
5.5.3 网卡的工作原理和结构 183
5.5.4 网卡驱动程序实例的编写 191
5.6 软件模块设计及调试 217
5.6.1 协议栈的分析 217
5.6.2 功能代码分析 219
5.7 系统开发后期工作 246
5.7.1 代码固化 246
5.7.2 代码优化 249
第6章 基于爱普生芯片的嵌入式实验板开发 251
6.1 项目的分析 251
6.2 实验板的硬件部分 252
6.2.1 系统微处理器S1C33209 252
6.2.2 系统中硬件的详细设计 253
6.2.3 硬件测试 265
6.3.1 S1C33209指令集 266
6.3 实验板的软件部分 266
6.3.2 嵌入式开发的操作系统ROS33 273
6.3.3 嵌入式开发环境WB33 285
6.3.4 嵌入式调试工具DB33 296
6.4 嵌入式应用程序 301
6.4.1 程序的执行模式 301
6.4.2 程序的开发流程 303
6.4.3 简单的嵌入式应用程序开发 308
6.4.4 FLASH驱动与固化 316
6.4.5 串口通信 319
6.4.6 LCD接口与驱动 328
6.4.7 调试监控程序 336
6.4.8 复杂的嵌入式应用程序开发 341
6.5 小结 342
附录A GNU GPL——GNU通用公共许可证 344
附录B 网络资源 349