第1章 嵌入式系统概述 1
1.1 嵌入式系统的定义 1
1.2 嵌入式系统的历史和发展 2
1.2.1 嵌入式系统硬件发展历史 2
1.2.2 嵌入式系统软件发展历史 3
1.3 嵌入式系统的组成 4
1.3.1 嵌入式硬件 4
1.3.2 嵌入式软件 7
1.4 嵌入式系统的应用及特点 10
1.4.1 嵌入式系统的应用 10
1.4.2 嵌入式系统的特点 11
1.5 嵌入式系统的发展趋势 12
第2章 ARM微处理器基础 14
2.1 ARM微处理器概述 14
2.1.1 ARM微处理器结构与选型 15
2.1.2 ARM微处理器的工作状态 16
2.1.3 ARM体系结构的存储器格式 16
2.1.4 指令长度及数据类型 17
2.1.5 处理器模式 17
2.2 ARM寄存器组织 18
2.2.1 ARM状态下的寄存器组织 18
2.2.2 Thumb状态下的寄存器组织 20
2.2.3 程序状态寄存器 21
2.3 ARM微处理器的指令集概述 23
2.3.1 ARM微处理器的指令的分类与格式 23
2.3.2 指令的条件域 24
2.3.3 ARM指令的寻址方式 26
2.4 S3C44BOX简介 28
2.5 S3C44BOX引脚介绍 29
2.6 S3C44BOX特殊功能寄存器 33
2.7 S3C44BOX存储器管理 41
2.8 PWM定时器和看门狗定时器 43
2.8.1 概述 43
2.8.2 PWM定时器操作 44
2.8.3 PWM定时器控制寄存器 46
2.8.4 看门狗定时器 49
第3章 S3C44BOX实验平台设计 51
3.1 Protel及印刷电路版设计 51
3.1.1 Protel99 SE介绍 51
3.1.2 绘制简单电路图 52
3.1.3 简单PCB板设计 62
3.2 开发板电路设计 69
3.2.1 电源电路 69
3.2.2 CPU单元电路 71
3.2.3 SDRAM电路 72
3.2.4 NorFlash电路 72
3.2.5 异步串行接口电路 72
3.2.6 RTL8019网络接口电路 74
3.2.7 按键、蜂鸣器和LED电路 75
3.2.8 JTAG电路 76
3.3 开发板地址空间分配 76
3.4 硬件系统的调试 77
3.4.1 电源、晶振及复位电路 78
3.4.2 S3C44BOX及JTAG接口电路 78
3.4.3 SDRAM接口电路的调试 79
3.4.4 Flash接口电路的调试 80
第4章 嵌入式开发环境 81
4.1 嵌入式开发环境概述 81
4.1.1 交叉编译(cross-compilation) 81
4.1.2 ARM开发常用编译器 82
4.1.3 JTAG概述 84
4.1.4 相关开发工具介绍 86
4.2 SDT2.51使用简介 89
4.2.1 SDT2.5概述 89
4.2.2 管理工程器APM 90
4.2.3 用ADW调试程序 95
4.3 ARM开发环境ADS1.2 99
4.3.1 ADS管理项目 99
4.3.2 ADS调试程序 106
4.4 ARM-ELF免费开发环境 108
4.4.1 arm的gcc概述 108
4.4.2 arm-elf-tool 110
4.4.3 make与Makefile 115
第5章 S3C44BOX平台开发基础 123
5.1 裸机程序设计 123
5.1.1 44BO的I/O端口 123
5.1.2 跑马灯程序 127
5.1.3 生成Flash和RAM代码 130
5.1.4 将目标代码写入Flash 131
5.1.5 用JTAG调试 134
5.2 BootLoader 134
5.2.1 u-boot介绍 135
5.2.2 u-boot移植的框架 135
5.2.3 u-boot常用命令 136
5.3 ARM串行接口程序设计 138
5.3.1 S3C44BOX的UART接口 139
5.3.2 UART特殊功能寄存器 141
5.3.3 串口程序设计 147
5.3.4 串口功能测试 150
5.4 LCD接口程序设计 154
5.4.1 S3C44BOX的LCD控制器 155
5.4.2 LCD控制器的操作 156
5.4.3 显示类型及数据格式 158
5.4.4 LCD接口函数设计 160
5.5 ARM7中断 163
5.5.1 中断的概述 163
5.5.2 S3C44BOX的中断控制器和寄存器 164
5.5.3 向量中断模式的实例 167
5.5.4 非向量中断模式的实例 170
5.6 矩阵键盘程序设计 172
5.6.1 键盘的基本概念 172
5.6.2 ARM7实验平台上矩阵键盘 174
5.6.3 键盘中断的实现 175
5.7 综合实例——俄罗斯方块游戏设计 177
5.7.1 游戏说明 177
5.7.2 游戏设计总体构想 179
5.7.3 游戏的控制 185
第6章 μC/OS及应用开发 186
6.1 μC/OS-Ⅱ操作系统 186
6.1.1 μC/OS-Ⅱ简介 186
6.1.2 μC/OS-Ⅱ特点 187
6.1.3 μC/OS-Ⅱ内核结构 189
6.2 μC/OS-Ⅱ在44BO上的移植 193
6.2.1 移植条件 193
6.2.2 μC/OS-Ⅱ在44BO上的移植步骤 194
6.2.3 μC/OS-Ⅱ外设驱动接口 200
6.3 μC/OS-Ⅱ应用程序开发 202
6.3.1 系统初始化 203
6.3.2 μC/OS-Ⅱ应用程序基本结构 203
6.3.3 μC/OS-ⅡAPI介绍 204
6.3.4 μC/OS-Ⅱ多任务实现机制分析 206
6.4 μC/OS-Ⅱ应用实例——接星星 207
6.4.1 μC/OS-Ⅱ应用开发的一般步骤 207
6.4.2 功能和界面 209
6.4.3 程序模块 209
6.4.4 源程序 210
第7章 μClinux及其应用开发 220
7.1 μClinuX系统概述 220
7.2 μClinux移植 222
7.2.1 μClinux2.4.24内核组成 222
7.2.2 移植主要步骤 223
7.2.3 内核裁剪与定制 227
7.2.4 编译运行 228
7.3 μClinux应用程序设计 232
7.3.1 程序设计 232
7.3.2 添加应用程序到内核 236
7.3.3 通过网络添加应用程序到目标系统 239
7.4 μClinux驱动程序设计 243
7.4.1 驱动程序概述 243
7.4.2 驱动程序开发流程 244
7.4.3 驱动程序实例 247