第1章 MPC860/850体系结构及编程环境 1
1.1 MPC860/850体系结构与特点 2
1.2 MPC860/850的编程环境 5
1.2.1 寄存器体系结构 5
1.2.2 指令体系结构 8
1.2.3 异常处理(中断) 9
1.2.4 指令缓存与数据缓存 11
1.2.5 内存管理单元(MMU) 11
1.3 本章小结 12
第2章 MPC860/850开发与调试平台 13
2.1 Linux 环境下开发平台的组成 13
2.2 Linux环境下的开发平台 14
2.2.1 交叉编译工具 14
2.2.2 BDM调试工具 14
2.2.3 PPCBOOT引导程序 14
2.2.4 Linux内核 14
2.2.5 MPC860/850目标板 15
2.3 MPC860/850的开发平台 15
2.3.1 WS-StartK8xxL 的快速测试 16
2.3.2 嵌入式Linux的开发工具 18
2.3.3 Linux/x86宿主机的开发平台 20
2.3.4 用BDM工具下载映像文件到目标板 25
2.4 MPC860/850应用软件的开发流程 30
2.4.1 软件开发流程 31
2.4.2 应用程序 32
2.4.3 将应用程序加入Linux内核并重新编译 33
2.5 本章小结 34
第3章 MPC860/850主模块的硬件设计 35
3.1 WS-MPC850L核心模块及其性能 35
3.1.1 存储器 36
3.1.2 复位电路 36
3.1.3 接口 36
3.2 核心模块的设计及芯片选型 37
3.2.1 存储控制器与外部存储器的设计 39
3.2.2 时钟电路与复位电路的设计 43
3.2.3 核心模块的原理图 46
3.3 WS-MPC850L核心模块的引出脚定义 51
3.4 本章小结 66
第4章 MPC860/850应用平台的硬件设计 67
4.1 WS-StartK8xxL应用平台底板的性能 67
4.2 MPC860/850应用平台的硬件设计 68
4.2.1 电源的设计 68
4.2.2 MPC860/850的SMC与串行RS-232接口的设计 69
4.2.3 10 M以太网接口的设计 70
4.2.4 10/100 M快速以太网接口的设计 75
4.2.5 BDM调试接口的设计 79
4.2.6 SPI及I2C接口的设计 80
4.2.7 PCMCIA接口的设计 82
4.3 本章小结 86
第5章 MPCBDM调试工具 86
5.1 MPCBDM调试工具 86
5.1.1 MPCBDM调试工具软件包 86
5.1.2 MPCBDM的交叉调试软件gdb的编译 86
5.1.3 交叉调试工具的运行 88
5.2 MPCBDM接口电缆 91
5.3 MPCBDM的硬件工作原理 92
5.4 针对MPC8xx调试软件的脚本文件 92
5.4.1 脚本文件 93
5.4.2 自定义命令 98
5.5 MPCBDM交叉调试软件的分析与修改 99
5.5.1 mpcbdm.c源程序的分析 99
5.5.2 mpcbdm.c源程序的修改 121
5.6 本章小结 122
第6章 PPCBOOT的分析与修改 123
6.1 PPCBOOT简介 123
6.2 PPCBOOT的配置与编译 125
6.2.1 选择处理器结构与板子类型 125
6.2.2 编译与建立PPCBOOT 125
6.3 PPCBOOT源程序的分析 126
6.3.1 MPC860/850的上电过程 126
6.3.2 PPCBOOT引导过程的分析 126
6.3.3 PPCBOOT的监控程序 147
6.4 PPCBOOT 源程序的修改 154
6.4.1 PPCBOOT修改的原因 155
6.4.2 根据硬件设计修改PPCBOOT 155
6.4.3 制作RAM版的PPCBOOT 196
6.4.4 修改RAM版的PPCBOOT 197
6.4.5 根据不同的Flash修改PPCBOOT 207
6.4.6 增加测试硬件的命令 207
6.5 本章小结 219
第7章 嵌入式Linux内核的裁剪及修改 220
7.1 Linux内核的设置与编译 220
7.2 Linux内核的裁剪 220
7.3 头文件的修改 228
7.4 嵌入式Linux下的BusyBox 229
7.4.1 BusyBox的获得 229
7.4.2 BusyBox中命令的加/减 229
7.4.3 BusyBox的编译 233
7.4.4 将BusyBox嵌入Linux内核 233
7.5 Linux内核引导过程的简单分析 234
7.5.1 设置Linux内核工作环境的内存 234
7.5.2 Linux内核环境的进一步初始化 239
7.5.3 不可返回的init线程的功能 241
7.6 本章小结 254
第8章 嵌入式Linux下的程序开发 255
8.1 通用的Makefile文件 255
8.2 多线程程序的运行 256
8.3 C++程序的运行 258
8.4 修改ramdisk的空间 260
8.5 本章小结 262
第9章 Linux设备驱动程序的设计 263
9.1 设备驱动程序 263
9.2 文件操作 263
9.3 设备驱动模块与内核 268
9.4 简单的模块程序 269
9.5 module_init( )和module_exit( )宏定义的使用 270
9.6 字符设备驱动程序常用的函数 271
9.7 一个假想的字符设备的驱动程序 272
9.8 几个针对MPC860/850硬件的设备驱动程序 276
9.8.1 设置I/O端口的电平 276
9.8.2 时间中断驱动程序 284
9.8.3 SPI接口的设备驱动程序 300
9.8.4 I2C接口的设备驱动程序 314
9.9 本章小结 330
第10章 MPC8xx在嵌入式系统中的应用举例 331
10.1 MPC8xx在LAN Switch中的应用 331
10.2 MPC8xx在VoIP网关中的应用 333
10.3 MPC8xx用作无线局域网的接入点或网关 334
10.4 局域网图像监控设备 335
10.5 通信设备 335
思考题 336
参考文献 338
后记 340