第1章 单片机技术发展新趋势及双核单片机 1
1.1 片上系统以及应用系统单片化趋势 2
1.2 以存储器为核心制订解决方案 3
1.3 使用实时操作系统 6
1.4 MISRA标准C 7
1.5 协处理器在单片机中的应用 8
1.6 单片机世界中的双核单片机 9
1.6.1 双核单片机系列的由来 10
1.6.2 双核单片机的基础——单核单片机系列 11
1.7 MC9S12系列单片机 14
1.7.1 MC9S12A系列和B系列16位单片机 14
1.7.2 带CAN总线的MC9S12D系列16位单片机 15
1.7.3 MC9S12DP512单片机 16
1.7.4 低供电电压的16位单片机 18
1.7.5 带USB接口的16位单片机 18
1.7.6 带以太网接口的16位单片机 19
1.8 使用CPU V1的双核单片机系列 19
1.8.1 S12XA系列单片机 19
1.8.2 S12XB系列单片机 21
1.8.3 S12XD系列单片机 21
1.8.4 带液晶、步进电机驱动模块的双核S12XHZ系列单片机 23
1.8.5 带液晶驱动的单核单片机 25
1.9 使用CPU V2内核的S12X系列单片机 26
1.9.1 S12X CPU V2内核 26
1.9.2 S12XE系列单片机 26
1.10 支持FlexRay通信协议的S12XF系列单片机 27
1.10.1 FlaxRay通信协议 27
1.10.2 S12XF系列单片机 29
1.10.3 S12XS系列单片机 30
1.11 双核单片机的开发工具 31
1.11.1 软件开发工具 31
1.11.2 动态调试方法 32
1.12 双核单片机中的其他新技术 32
1.12.1 片内容错与纠错技术 32
1.12.2 片内存储器资源管理技术 33
1.12.3 编译、调试技术的新发展 34
第2章 单片机基本系统的硬件设计 36
2.1 16位单片机 36
2.1.1 带协处理器的16位单片机 37
2.1.2 MC9S12XDP512单片机 38
2.2 单片机基本硬件系统 43
2.2.1 MC9S12XD的基本硬件系统 44
2.2.2 监控程序 45
2.2.3 体验机器码 48
2.3 利用异步串行口实现人机通信 50
2.3.1 串行通信协议RS-232标准 50
2.3.2 ASCII码 52
2.3.3 串行数据格式 53
2.3.4 RS-232-C电缆的连接方法 54
2.3.5 通信速率 54
2.4 MC9S12XD单片机系统的硬件设计 55
2.5 运行模式 60
2.5.1 单片运行模式 60
2.5.2 扩展运行模式 61
2.6 MC9S12XE单片机系统的硬件设计 62
第3章 主处理器及其指令集 67
3.1 主处理器的内部寄存器结构 67
3.1.1 S12X V1内核的CPU内部结构 67
3.1.2 S12X V2内核的CPU内部结构 69
3.1.3 16位CPU与8位CPU的对比 70
3.1.4 32位CPU与16位CPU的对比 71
3.2 内存空间分配 72
3.3 S12X的内存扩展与管理 74
3.3.1 S12X CPU寻址空间的扩展 74
3.3.2 Flash页面管理寄存器PPage 75
3.3.3 RAM页面管理寄存器RPage 75
3.3.4 EEPROM页面管理寄存器EPage 76
3.3.5 S12X用全程寄存器扩展寻址空间 77
3.3.6 全程寄存器GPage 77
3.4 S12X CPU V2内核的内存管理 81
3.5 CPU12X汇编指令集 83
3.6 指令按功能分类 83
3.6.1 数据传送指令 84
3.6.2 堆栈指针指令 85
3.6.3 算术与逻辑运算指令 86
3.6.4 程序控制指令 90
3.6.5 循环控制指令 92
3.6.6 测试与位操作指令 93
3.7 CPU12X的模糊逻辑指令 93
3.8 指令按寻址方式分类 95
3.8.1 隐含寻址 95
3.8.2 立即数寻址 96
3.8.3 直接寻址 96
3.8.4 扩展寻址 96
3.8.5 变址寻址 96
3.8.6 带自动加、减5位偏移量的间接寻址 97
3.8.7 相对寻址 97
3.9 汇编指令表 98
3.10 指令的机器码组织 99
3.11 用汇编语言编写程序 100
3.11.1 汇编程序的格式 100
3.11.2 汇编管理指令 101
3.12 汇编语言程序设计举例 102
3.13 码的转换类子程序 105
3.14 汇编语言编程技巧 108
第4章 协处理器 110
4.1 协处理器的寻址空间 111
4.1.1 I/O寄存器空间 112
4.1.2 Flash空间 113
4.1.3 RAM空间 113
4.1.4 RAM的分配与保护 114
4.2 协处理器CPU的内核结构 115
4.3 协处理器的寻址方式 118
4.4 协处理器的汇编语言和CPU指令集 120
4.5 复位和中断 129
4.5.1 中断向量表 129
4.5.2 中断向量基地址寄存器 132
4.6 与协处理器相关的寄存器 133
4.7 协处理器汇编程序的例子 140
4.8 CISC与RISC的比较 141
第5章 用C语言开发应用程序 144
5.1 C语言是开发单片机应用软件的有力工具 144
5.2 开发嵌入式应用的C编译器的特点 146
5.2.1 编译过程与集成开发环境 146
5.2.2 不要使用初始化变量 148
5.2.3 注意函数的可重入性 149
5.3 建立C语言程序运行环境 150
5.4 应用程序模块化 153
5.5 合理使用全局变量和局部变量 154
5.6 函数的结构与函数间参数的传递 155
5.7 在C程序中直接操作硬件 157
5.8 程序模块的框架与组织 158
5.9 程序的链接与定位 159
5.10 用C语言写XGate程序 161
第6章 使用嵌入式实时操作系统 165
6.1 嵌入式实时操作系统μC/OS-Ⅱ 165
6.2 移植μC/OS-Ⅱ 167
6.2.1 根据应用定义内核的大小和功能 169
6.2.2 修改OS_CPU.H文件 172
6.2.3 编写OS_CPU_C.C文件 174
6.2.4 产生时钟节拍中断 186
6.3 制作用户自己的项目 189
6.3.1 主程序main.c 189
6.3.2 3个任务 192
6.3.3 链接与程序定位 192
6.4 精心分配RAM资源 195
6.4.1 RAM空间的分页管理 195
6.4.2 估算μC/OS-Ⅱ占用的RAM资源 197
6.4.3 估算内核占用RAM空间举例 203
第7章 BDM后台调试模式 205
7.1 S12X BDM概述 205
7.2 进入BDM模式 206
7.3 BDM通信协议及底层软件 207
7.3.1 BDM调试的相关寄存器 207
7.3.2 BDM指令基本结构 209
7.3.3 测量目标系统的时钟频率 210
7.3.4 BDM基本操作——读/写单字节 211
7.3.5 BDM指令的组织 215
7.4 BDM简单应用 218
7.4.1 用BDM对Flash编程 218
7.4.2 通过BDM显示存储器内容 219
7.5 TBDML工具 221
第8章 单片机软件开发工具使用入门 224
8.1 商用软件开发工具CodeWarrior for HCS12 224
8.2 安装CodeWarrior 225
8.3 建立一个简单的工程 225
8.4 自动生成的文件系统 229
8.5 写一个汇编程序 231
8.6 编写一个最简单的C程序 233
8.7 编写一个能看到演示效果的C程序 235
8.8 增加新程序模块 236
8.9 建立双核工程 236
8.10 定义装载地址和复位向量 241
第9章 应用工程实例1——用协处理器管理SCI 243
9.1 定义主从CPU的共享变量和数据区 243
9.2 协处理器的中断服务程序 245
9.3 主CPU响应来自协处理器的中断 247
9.4 协处理器的初始化 248
9.5 程序清单main.c 249
9.6 程序清单xgate.h 251
9.7 程序清单xgate.cxgate 252
9.8 程序清单链接参数文件.prm 256
第10章 应用工程实例2——用协处理器处理μC/OS-Ⅱ时钟节拍中断 260
10.1 μC/OS-Ⅱ的时钟节拍 260
10.1.1 μC/OS-Ⅱ的时钟节拍函数 260
10.1.2 钟节拍函数OSTimtick()的一个节拍服务 261
10.2 用XGate实现μC/OS-Ⅱ的时钟节拍 262
10.3 范例工程 267
10.3.1 main.c 267
10.3.2 xgate.cxgate 271
10.4 XGate的使用与程序调试 276
10.4.1 XGate的状态 276
10.4.2 XGate程序的下载 276
10.4.3 XGate程序中的常见错误 277
10.4.4 XGate程序的调试 278
10.5 效果测试与分析 279
附录A MC9S12X系列单片机开发工具包 281
A.1 概述 281
A.1.1 HCS12X系列单片机 281
A.1.2 HCS12X开发工具包组件 281
A.2 MC9S12XEP100开发板及与PC通信 282
A.2.1 MC9S12XEP100开发板 282
A.2.2 开发板工作模式的选择 284
A.2.3 开发板的硬件连接 284
A.2.4 PC的设置 284
A.3 监控程序及监控命令详解 287
A.3.1 命令详解 287
A.3.2 改变波特率 290
A.3.3 复位、中断向量表 292
A.3.4 用户可以使用的RAM空间 292
附录B 协处理器XGate指令机器码表 293
附录C S12X CPU汇编指令表 296
附录D S12X CPU指令机器码表 320
参考文献 324