本书是讲述单片机在线开发方法的一本专著,也是清华大学研究生精品课“嵌入式实时系统与单片机应用”的教材。\r\n 本书分绍如何从最小硬件系统设计开始,建立开发单片机应用系统的基本硬件条件,而不必使用仿真器等单片机工发工具;如何写单片机监控程序建立单片机应用软件调试的基本环境;如何用C语言编写应用程序;如何利用商用软件Code Warrior的教学版本,或使用自由软件Linux下的GCC交叉C编译器,将嵌入式实时多任务操作系统μC/OS-II移植到单片机上,实现基于RTOS的开发环境。\r\n 本书对16位单片机MC9S12为例,给出监控程序源代码,还提供了单片机各I/O模块的设备驱动程序。这种在线开发方法同样适用于8位、32位单片机。随书所附光盘中有免费软件开发工具和大量原文资料。\r\n 本书为造就IT高手指路,也供开发单片机应用系统的工程技术人员参考。\r\n
引言\r\n第1章 色彩斑斓的单片机世界\r\n 1.1 单片机世界\r\n 1.2 开发单片机应用不再需要仿真器\r\n 1.3 Motorola 单片机\r\n 1.4 MC68HC08系列单片机\r\n 1.5 MCS08系列8位单片机\r\n 1.6 MC68HC11系列单片机\r\n 1.7 MC68HC12系列单片机\r\n 1.8 MC9S12系列单片机\r\n 1.9 MC68HC16系列单片机\r\n 1.10 Motorola的32位单片机\r\n 1.11 Mtotrola的DSP型单片机 \r\n第2章 单片机基本系统的硬件设计\r\n 2.1 16位单片机\r\n 2.2 初识单片机最小硬件系统\r\n 2.3 异步串行通信\r\n 2.4 MC9S12单片机系统的硬件设计\r\n 2.5 运行模式\r\n 2.6 BDM调试器及硬件设计\r\n第3章 用汇编语言编辑\r\n 3.1 CPU的内部寄存器结构\r\n 3.2 内存空间分配\r\n 3.3 汇编指令集\r\n 3.4 指令按功能分类\r\n 3.5 CPU12的模糊逻辑指令\r\n 3.6 指令按寻址方式分类\r\n 3.7 汇编指令表\r\n 3.8 指令的机器码组织\r\n 3.9 用汇编语言编写程序\r\n 3.10 汇编语言程序设计举例\r\n 3.11 码的转换类子程序\r\n 3.12 汇编语言编程技巧\r\n 3.13 用汇编语言写BDM调试命令\r\n第4章 建立单片机运行环境和写临控程序\r\n 4.1 建立单片机运行环境\r\n 4.2 堆栈指针初始化\r\n 4.3 时钟初始化\r\n 4.4 串行口初始化\r\n 4.5 监控程序\r\n 4.6 人机对话\r\n 4.7 命令字与跳转表\r\n 4.8 建立CPU在内存中的固定映像\r\n 4.9 执行程序\r\n 4.10 显示与修改内存\r\n 4.12 显示和修改CPU寄存器\r\n 4.13 Flash的擦除与写入\r\n 4.14 设置断点\r\n 4.15 中断向量表管理\r\n 4.16 系统调用表\r\n 4.17 帮助信息\r\n第5章 用C语言开发应用程序\r\n第6章 使用嵌入式实时操作系统\r\n第7章 使用GCC交叉编译器开发HC/S12单片机\r\n第8章 单片机软件开发工具\r\n第9章 实验系统与I/O模块\r\n第10章 单片机模糊控制\r\n第11章 单片机应用中的电磁兼容问题\r\n附录A MC9S12D系列单片机开发工具包\r\n附录B 监控程序源代码\r\n附录C CPU12汇编指令集\r\n附录D CPU12指令机器码表\r\n附录E 本书所附光盘说明\r\n参考文献\r\n
本书是讲述单片机开发方法的一本专著,讲的是单片机的在线开发方法,这种方法是我们多年来开发单片机应用的主要方法——它强调的是在线开发和不使用仿真器。这本书也是清华大学研究生精晶课“嵌入式实时系统与单片机应用”教材的单片机部分,实时操作系统部分采用《嵌入式实时操作系统[LC/OS-Ⅱ(第2版)》一书。因为最初的田OS就是为Motorola的MC68HCll单片机写的,故本书采用和其源码兼容的替代产品——S12系列单片机,来实现gC/OS-Ⅱ的运行。这本书也是为嵌入式应用开发工程师写的,由于16位单片机比8位机要复杂很多,所以对那些急于开发产品而又不熟悉16位单片机的工程师,采用我们1提供的开发工具,尽快把目标系统开发环境搭建起来,边开发、边学习,是多快好省的办法。本教材也可供其他工科院校电类本科生学习使用。
本书第1章简单介绍令人眼花缭乱的各类单片机,目的在于强调单片机应用是个性化的,用户针对不同的应用,一定要选择最合适的单片机。第2章以16位单片机为例,给出在线开发单片机的一般方法;从设计单片机最小硬件系统开始,实现人与单片机通过串行口对话,尽快让单片机“活”起来。第3章和第4章介绍单片机汇编语言和如何写一个简单的监控程序,从而实现单片机的在线调试。第5章讲如何在单片机上建立C语言程序的运行环境,C语言和汇编语言是怎么接口的。第6章讲如何将实时操作系统内核uC2/0S—Ⅱ移植到单片机上。第7章介绍如何用自由软件GCC在PC上交叉编译C程序,生成单片机的应用代码,从学习使用Linux下的GCC入门,意在指出一条通向IT行业高手之路。第8章讲解商用软件集成开发环境的使用,用的是网上提供的免费教学版本,这一章还介绍了S12单片机的直接在线调试方法,即后台调试法(BackgroundDebugMode)。第9章简单介绍单片机相关的FO模块,给出基本驱动程序。第10章通过一个实例,给出单片机模糊控制原理的入门知识,因为模糊控制指令也是S12单片机特有的,故特别加了这一章。第11章讲述单片机系统硬件设计应注意的电磁兼容问题。
在附录A中,还给出相关开发工具的使用方法,并将自主开发的监控程序源代码在附录B中给出,这个代码已经在开发板上检验、运行过,读者可以直接拿来使用。附录C和附录D是为便于用户开发中查阅的指令表。
更详尽的原文手册和C的交叉编译软件如GCC软件等也都附在光盘上。上还有大量从网上下载的应用范例。本书所附光盘给出的工具与资料如下:
1.可以从网站上选择到的有关S12单片机的原文资料;另外,光盘
2.Metrowerks公司提供的Co&Warrior特殊版本C交叉编译软件和我们的工程范例;
3.用于S12的自由软件:GNU提供的GCC交叉编译器软件;
4.可直接下载到目标板上的S19格式的S12单片机监控程序。
本教材中用到的单片机实验开发环境可以自己做,并全部使用自由软件,也可以全都购买;或买一些、自己做一些。
感谢Motorola半导体对我校教学与科研的长期支持,特别是提供了S12BDM调试具的制造技术。感谢我的研究生刘永毅、龚光华在研制MC9S12DP256/DGl28开发板、BD调试工具方面做出的贡献。本书中对gC/OS-Ⅱ的移植是我的研究生邵森龙完成的,目标;设计范例是研究生陈萌萌提供的。另外,他还提供了本书的第7章和第9章。
本书写成时,正逢Motorola半导体部从原公司分离出来成立飞思卡尔(Freescale)立上市公司,以求更好的发展。无论将来采用何种命名法,单片机技术是继承和发展的
需求在增长,技术在发展,社会对人才的需求是无止境的,谨求本教材的思路能得同行们的认可,不当之处请读者指正。关于S12单片机开发工具和今后的发展,请访问于清华大学