开发套件使用说明.doc_第1页
开发套件使用说明.doc_第2页
开发套件使用说明.doc_第3页
开发套件使用说明.doc_第4页
开发套件使用说明.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录 AMC9S12 D系列单片机开发工具包清华Motorola单片机应用开发研究中心附录 A1MC9S12 D系列单片机开发工具包1概述3HCS12D系列单片机3HCS12开发工具包组件3MC9S12DP256或DG128开发板及与PC机通讯5MC9S12DP256或DG128开发板5开发板上的跳线8开发板的硬件连接8PC机的设置9监控程序及监控命令详解12命令详解12F命令15E命令15P 命令16Q命令16G命令16L命令16S命令16R命令17B命令17Z命令18改变波特率18复位、中断向量表20用户可以使用的RAM空间20系统调用20编译器codewarrior for HCS12 使用方法入门21建立工程文件21编写main.c 程序23定义存储空间分配26应用程序的编译27向开发板下载程序28运行应用程序30BMD调试器及使用方法32BDM调试器使用方法32设置BDM头的时钟频率33和目标板连接33Help 命令35向FLASH下载程序36擦除目标板的片内flash37常用BDM调试命令38汇编和反汇编命令38控制目标CPU运行的命令39显示和修改CPU寄存器的命令39显示和修改内存40以S格式读出目标代码40其它BDM命令40概述 这里描述的是根据教材介绍的知识,我们自行设计的一套MC9S12D系列单片机开发工具包。更新的版本见清华Motorola单片机应用开发研究中心的网站:开发包的主要硬件是一块MC9S12DP265(或DG128)开发板,即书中描述的最小系统,和一个MC9C12DG128最小系统组成的BDM调试器。实际上,开发板下载了用于BDM的监控程序后也可以当BDM调试器用。这是一个有了鸡可以生蛋,有了蛋可以孵鸡的问题。实际上,只要能把程序下载到单片机中,有了本书提供的知识,有免费的开发软件,几乎不需要购买其他开发工具,就可以完成应用系统的开发。HCS12D系列单片机HCS12是Motorola (Freescale)新推出的高性能16位微控制器,具有强大的功能和广阔的市场前景。HCS12单片机系列提供由32K-512K第三代快闪嵌入式存储器。每一个HCS12单片机总线速度可达50 MHz, 外围时钟可以到25MHZ。还具备编码效益、片上纠错能力,并与摩托罗拉68HC11和68HC12结构编码向上兼容。由于112引脚的D系列单片机MC9S12DP256单片机和MC9S12DT256、MC9S12DJ256、MC9S12DG256、MC9S12DG256、MC9S12A256,以及MC9S12DT128、MC9S12DG128、 MC9S12DJ128、MC9S12DB128 这十余种单片机,与CPU相关的引脚都是兼容的,仅某些I/O引脚的定义不同。本开发板提供为MC9S12DP256 单片机设计的最小系统,驻留用于单片机开发的监控程序,故用同样的印刷电路板,焊上不同的单片机,几乎无需对监控程序做调整,就可以适用于上述那十余种单片机。本说明书适用于Dx256,也适用于Dx128。区别是:Dx256 有 12K 片内 RAM,从 $1000 到 $3FFF;Dx128 有 8K 片内 RAM,从 $2000 到 $3FFF;HCS12开发工具包组件HCS12开发工具包硬件系统包括以下组件:l MC9S12DP256或DG128(兼容所有112引脚封装的S12)开发板一块l 监控程序(可实现单板调试) l BDM调试器一个,简称BDM头l BDM 6芯扁带电缆一根l 编程开发工具串口通讯线一根l 标准5V电源一个l CDROM 一张MC9S12DP256或DG128开发板及与PC机通讯MC9S12DP256/DG128开发板MC9S12DP256开发板如图A.1 所示。MC9S12DP256开发板上最主要的器件是MC9S12DP256单片机,由于MC9S12DP256单片机兼容所有HCS12 D系列112pin封装的单片机,同样的印刷线路板,焊上其它类型的MC9S12D系列单片机就构成了其它相应单片机的开发板。这些D系列的单片机是:MC9S12DG128MC9S12DJ128MC9S12DB128MC9S12DT128MC9S12DP256MC9S12DT256MC9S12DJ256MC9S12DG256MC9S12DT256MC9S12DJ256MC9S12DG256Motorola (Freescale) 近日还推出了有512K FLASH的相应D系列单片机,引脚也与上述单片机引脚兼容。图 A.1 MC9S12DP256或DG128开发板MC9S12DP256或DG128开发板实际上是MC9S12DP256或DG128单片机构成的最小系统。板上有构成最小系统需要的复位电路、晶体振荡器及时钟电路,串行接口的RS-232 驱动电路,5V电源插座。MC9S12DP256或DG128单片机中已经写入了我们开发的监控程序。8个调试用的小灯并非构成最小系统所必须,但对调试应用系统非常有用。印刷板上还有2个CAN总线的驱动电路和引出端,必要时用户可以自行焊上驱动芯片。这2个CAN总线的接口电路是MC9S12DP256单片机5个CAN总线中与MC9S12DG128、MC9S12DG256兼容的那2个。单片机的所有I/O端口都通过2个64芯的欧式插头引出。这2个插头在PCB上的距离如图A.2所示。表 A.1 给出了开发板上P1与P2 插座的引脚定义。用户可以根据图A.2和表A.1的定义设计自己的应用系统,即目标母板,然后将开发板插在目标母板上调试。图 A.2 MC9S12DP256或DG128开发板P1、P2间的距离是1900mil。表 A.1 开发板上P1与P2 插座的引脚定义P1P21VCC2VCC1NC2VCC3NC4NC3NC4NC5GND6GND5NC6NC7NC 8NC7NC8P139NC10NC9PT310PT211RXCAN112TXCAN011PT112PT013RXCAN014TXCAN113P814NC15PT416PT515P616P517PT618PT717P418P319P1920P2019P220P121P2122P2221P11222P11123NC24PB023P11024P10925PB126PB225P10826P10727PB328PB427NC28P10129PB530PB629P10030P9931PB732P3231P9832P9733P3334P3433P9634P9535P3536P3635P9436P9337NC38NC37P9238P9139P3940NC39NC40NC41P4142NC41P8842P8743P4344P4443NC44P8545NC46NC45P8446P8347NC48P4847P8248P8149P4950P5049P8050P7951P5152P5251P7852P7753P5354P5453P7654P7555P5556P5655P7456P7357P5758P5857P7258P7159P5960P6059P7060P6961P6162P6261P6862P6763P6364P6463NC64P65开发板上的跳线开发板上的跳线共有4个,分别为MODA、MODB、PK7和PE7。MODA和MODB用于改变单片机运行模式,详见“MC9S12DP256B User Guide” 第73页,Section 4。单片方式时,跳线MODA设为0,MODB也设为0。在扩展方式下,PK7用于设置使用(设为1)还是不使用片内FLASH。在单片方式下该跳线不起作用。 PE7内部有上拉电阻,复位时为高电平。加跳线到地强制将该位置为零表示使用外部有源时钟,不加跳线默认为高,表示使用无源晶体振荡器。故不要使用任何跳线,任其浮空。开发板的硬件连接 开发板硬件连接很简单,对开发板无需任何设置。用一条普通串口线(我们在开发套件中已经提供)连接开发板的9芯D型插头到PC机的串口1(串口2也可以,只要把后面的超级终端设置成“直接连接到串口2”就可以了)。5V电源连接到串口旁边的电源插口中,这样开发板就连接好了。开发板一端的连接如图A.3 所示。PC机、开发板、5V电源的连接关系如图A.4所示。PCDP256开发板串口线电源5V图A.3 系统的连接关系开发板与用户设计的目标系统的关系如图A.3 所示。开发板有自己的电源,同时可以通过板上的欧式插头、座向用户的应用系统板供电;开发板也可以通过欧式插头、座供电。但,不要同时用2个电源分别向开发板和应用系统板供电!用开发板自带的5V电源供电时,整个系统的供电电流不得超过自带电源的标称供电电流。注意,在没有熟悉和掌握整个开发环境之前,不要将开发板插到应用系统板上!图A.4 将 MC9S12DP256开发板插在应用系统板上PC机的设置可以使用PC机中自带的超级终端软件实现PC机与开发板的通讯,虽然PC机自带的超级终端软件比较慢,很多PC机实际上达不到标称波特率应该达到的速率,即达不到字符间最小间隔1个、1.5个、2个停止位的最高速率。但使用PC机自带的超级终端软件比较方便,不必寻找专门的通讯软件。首先打开超级终端,按如下的顺序点击鼠标,如图A.5所示。开始程序附件通讯超级终端 图A.5 打开超级终端选择Hypertrm, 得到如图A.6 所示的窗口:图A.6 Hypertrm 窗口填入名称,这里用MC9S12DP256。选择“确定”, 如图A.8所示。这是给与开发板通讯用的通讯协议文件命名,以后再次使用超级终端时直接点击选定的文件名或图标即可,不必再次重复下面的设置。图A.8 给通讯协议文件命名如果开发板是连接到串口1,就选“直接连接到串口1”,如果开发板连接到串口2,就选“直接连接到串口2”。选择“确定”,如图A.8 所示:图A.8 设置使用COM1 或COM2 使用的串行口通讯协议如图A.9 所示,使用9600波特率,8位传送,无奇偶校验,一个停止位,无流量控制或使用Xon/Xoff协议,并选择“确定”如图A.9所示: 图A.9 设置串口通讯协议按开发板的S1复位键可以看到如图A.10所示的内容: 图A.10 按开发板上的复位按键得到的用户界面这样开发板的调试环境就建立起来了。监控程序及监控命令详解监控程序代码小于4K,放在地址$F000处。它把$FF80的中断向量表移到EF80处,顺序不变。用户可以使用$EF80处的中断向量表,此中断向量表和MC9S12DP256手册上的中断向量表顺序相同,只是从$FF80移到了$EF80。监控程序起来时,如果串口在4秒内没有收到数据,就会检查$EFFE$EFFF(用户复位向量表)是否为FFFF,如果不是,说明FLASH中有用户程序。程序自动调转到$EFFE$EFFF所指向的用户程序。如果程序起来4秒内串口接到数据或者$EFFE-$EFFF为$FFFF,则进入DEBUG监控程序。DEBUG监控程序在等待命令时,PORTB口上b0b7的8个小灯间隔点亮,但不闪烁。命令详解H命令帮助命令,显示各种命令信息按“H”按钮看到如图A.11所示的内容: 图A.11 H命令, 显示监控命令表这里“A”指“Ctrl”键与“A”键同时按下。A,B,X,Y,C,P:分别为改变A寄存器、B寄存器、X寄存器、Y寄存器、CC寄存器或者PC寄存器的值。D命令D命令(Display)显示一段内存的内容。按下E键后要填入需要显示的内存的起始地址和终止地址。然后回车就会显示这一段地址的内容。如图A.12所示:图 A.12 D命令,显示内存中的内容M命令M命令(Memory Modify)改变RAM内存中的内容。按“M”后填入要改变的RAM内存地址。然后会显示此RAM内存地址的内容,接着用户可以填入希望改成的内容。如果修改成功,用户可以修改下一个地址的内容;如果修改失败,显示“?”。如果需要停止修改,直接输入回车就可以了。按“”键,回到上一个内存地址,M命令如图A.13所示: 图A.13 用M命令显示和修改RAM内存 C命令C命令(Change)改变FLASH页面寄存器PPAGE的值。按“C”后显示PPAGE寄存器的值。然后用户可以填入希望改成的值。如图3.4所示:图A.14 显示和修改FLASH页面寄存器PPAGE的内容F命令下载程序到FLASH中,可识别S1或S2格式的S19文件。按“F”键后,开发板上的单片机等待接收来自串行口的数据文件。然后选择“发送” “发送文本文件”,找到要下载的*.S19文件,按”打开(O)”,这样,就把文件下载到FLASH中去了,如图A.15所示。注意,文件类型应选“所有文件”。 图A.15 用F命令下载应用程序到FLASH中E命令E命令(Erase),擦除FLASH的$4000-$7FFF和$C000-$DFFF两处。FLASH $F000-$FFFF处有监控程序,受保护。P 命令首先要用“C”命令选择你想下载的FLASH页,然后“P”命令把程序下载到这一页中。S19文件中地址为$8000$BFFF,PPAGE页由“C”命令选择。Q命令首先要用“P”命令选择你想擦除的FLASH页,然后用“Q”命令擦除这一页。G命令从PC寄存器的地址处,开始运行程序。可以用Ctrl P 命令修改PC指针到拟运行程序的起始地址。L命令把程序下载到片内RAM中,也就是$1000-$3FFF处。可识别S1格式的S19文件。按“L”键后,开发板上的单片机等待接收来自串行口的数据文件。然后选择“发送” “发送文本文件”,找到要下载的*.S19文件,按”打开(O)”,这样,就把文件下载到RAM中去了,如图3.5所示。注意,文件类型应选“所有文件”。S命令显示堆栈指针SP寄存器中的值,并显示SP地址附近的内容,即堆栈中的内容。如图A.16所示: 图A.16 用S命令查看堆栈指针和堆栈中的内容R命令R命令显示所有CPU寄存器的内容。如图A.17所示: 图A.17 用R命令查看CPU寄存器中的内容B命令B命令可以设置两个硬件断点。设置断点首先要设断点的PPAGE,然后设断点的地址。如果是$3E、$3F页,地址可以是$4000-$7FFF或$C000-$FFFF之间。程序运行到断点时程序停止,显示寄存器内容,同时两个断点自动清除,断点模块被禁止,如图3.8 所示: 图A.18 用 B命令设置两个硬件断点 请特别注意,CPU可看到的64K寻址空间中, FLASH 存储器地址$4000$7FFF 的页面地址是$3E, 地址$C000$FFFF 的页面地址是$3F, 而地址$8000$BFFF 的页面地址对MC9S12GP256 单片机来说可以是$30$3F,对MC9S12DG128 单片机来说则可以是$30$37。设置断点时Ppage 地址一定要设对。当CPU的运行在某一断点停下来时,2个断点同时被清除了。需要的话,下面可能的2个断点要重新设置。设置2个断点的意图在于,用户不知道所设的断点是否是指令的操作码是,可以设2个连续的地址,或者用户不知道程序可能走向那个分支时,设定到2个不同的分支。Z命令Z命令用于清除断点。Z命令让断点模块禁止,断点清除。 图A.18 Z 命令使断点寄存器清零。内存0028002F是硬件断点寄存器。从图A.18中可以看出,执行“Z”命令后,硬件断点寄存器都清零了。改变波特率用户可以直接改变波特率寄存器的值选择通讯的波特率。波特率的寄存器地址为$00c9。默认的值为$9c,对应的波特率为9600。以下是波特率寄存器的值和波特率的对应关系。波特率寄存器的值 波特率 $9c 9600 $4e 19200 $27 38400 $1a 57600 $d 115200改变方法是使用M命令修改地址为$00C9寄存器的内容,如图2.19所示。 图A.19 将开发板波特率修改为19200以上是把波特率寄存器$00c9的值从9c改为4e。由于波特率改变e已经不能显示出来。然后用户要断开超级终端的连接,把波特率改为19200。然后连接就可以了。修改PC机的COM1的波特率如图A.20所示, 重新显示波特率寄存器的内容图如图A.21所示,可以看到新的值$4E。图A.20 修改PC机的COM1的波特率 图A.21 重新显示波特率寄存器的内容 $4E复位、中断向量表MC9S12DP256或DG128的中断向量表在存储空间的高地址,从复位向量地址$FFFF开始向低地址延伸,详细排列见附带光盘上的“MC9S12DP256B Device User Guide”Section 5,Table 5-1,Interrupt Vector Locations,或DG128相应的章节。中断向量区从$FF80开始到$FFFF,共可存放64个复位、中断向量。MC9S12DP256或DG128用了58个向量,从$FF80到$FF8B的6个没有用。由于监控程序是从$FF00开始到$FDFF,占用3.5K。为防止在调试过程中反覆地擦除、下载程序过程中误将监控程序擦除,对$F000到$FFFF的4K空间加了写保护。故中断向量表就得移到没有保护的区域。在监控程序中,已经将中断向量表中58个中断向量从$FF8C到$FFFD移到$EF8C到$EFFF。用户只要填写转移了的中断向量表即可,例如,IRQ中断向量本来应该在$FFF2和$FFF3中,监控程序将其移到$EFF2和$EFF3,故用户使用IRQ中断时只要将中断向量写到$EFF2和$EFF3就可以了。用户的复位向量可以写在$EFFE和$EFFF,但复位后要等4秒钟才能运行用户程序。这是因为复位后要先进入监控程序对系统做初始化,然后检查RS-232口有没有字符输入,若4 秒内没有,则进入用户程序。用户可以使用的RAM空间MC9S12Dx236有12K片内RAM,从$1000到$3FFF。MC9S12Dx128有8K片内RAM,从$2000到$3FFF。监控程序初始化时将堆栈指针初始化到$3FE7,监控程序要占用$3FE8到$3FFF的24个字节内存空间。用户可以从$1000(对于Dx128,从$2000开始)开始安排要调试的用户程序或数据。由于对FLASH的擦除和写入期间FLASH是禁止读的,故对FLASH操作的F、B、K和O命令要将执行这些命令的代码复制到RAM中进行。代码的命令缓冲区从$3FE0开始,其中F命令代码最长,为323字节($143字节)。系统调用系统调用是监控程序中可提供给用户使用的子程序。入口地址功能注解$FE80热启动地址回监控程序$FE83输出一个字符将A寄存器中的ASCII码输出$FE86输出字符串X寄存器指向字符串,字符串以$04结尾$FE89输入一个字符由RS232口输入字符,字符在A寄存器中$FE8C输入一个字符并回显由RS232口输入字符,显示字符,字符在A中$FE8F检查键盘输入状态Z标志为1,无字符输入;Z标志为0,有字符输入$FE82输出一个字符将A寄存器中的ASCII码输出$FE85$FE88$FE98编译器codewarrior for HCS12 使用方法入门 以下以一个简单的例子说明CODEWARRIOR如何使用。建立工程文件安装好codewarrior后,打开codewarrior窗口,点击file,选new,如图A.22所示: 图A.22 选择new,建立工程文件然后选择HC12 Stationary,输入工程的名字,例如LED,点击“确定”,如图A.23所示:图A.23 选择HC12 Stationary,并给工程文件命名选择legacysimulatorC Generic 然后点击OK,如图A.24、图A.25、图A.26所示:图A.24选择Legacy 图A.25 选择Simulator 图A.26 选择 C Generic这样,一个新的工程就建成了。编写main.c 程序工程文件生成以后,回看到自动生成的文件系统,如图A.27所示: 图A.27 自动生成的文件系统这个文件系统中最重要的是main.c文件和default.prm文件。main.c是用户需要开发的应用程序,default.prm文件定义程序的代码区和数据区,与系统硬件有关。双击main.c文件,敲入以下代码:/* LEDS.C example file for Motorola MC9S12DP256 Evaluation Board */#include /* port B definitions */#define PORTB (*(volatile unsigned char*)(0x0001) #define DDRB (*(volatile unsigned char*)(0x0003) /* Timer TCNT definitions */#define TSCR1 (*(volatile unsigned char*)(0x0046) #define TSCR2 (*(volatile unsigned char*)(0x004D) #define TFLG2 (*(volatile unsigned char*)(0x004F) #define TCNT (*(volatile unsigned short*)(0x0044) int counter;void TimerOverflow(void) /* This function waits for th timer overflow.Then it changes the LEDs bargraph display */ while (TCNT != 0x0000); while (TCNT = 0x0000); counter+; if (counter = 8) PORTB = 0x7e; /* LEDs lightshow */ if (counter = 7) PORTB = 0xbd; if (counter = 6) PORTB = 0xdb; if (counter = 5) PORTB = 0xe7; if (counter = 4) PORTB = 0xe7; if (counter = 3) PORTB = 0xdb; if (counter = 2) PORTB = 0xbd; if (counter = 1) PORTB = 0x7e;void main(void) TSCR1 = 0x80; /* enable timer TCNT */ TSCR2 = 0x03; /* TCNT prescaler setup */ counter = 0; DDRB=0xff; /* PTB as output */ PORTB=0xff; /* LEDs off */ for (;) TimerOverflow(); if (counter = 8) counter = 0; TSCR2 = 0x05; /* TCNT prescaler switch */ 点击SAVE, 如图4.7所示。这是一段让开发板上的小灯闪烁的程序。图A.28 保存源程序定义存储空间分配双击default.prm文件会看到如图A.29所示的代码: 图A.29 文件default.prm 定义存储空间分配这里:MY_RAM是程序的数据区;MY_ROM是程序的代码区;VECTOR 0 _Startup表示把单片机的0xFFFE处的复位向量设为这个程序的入口地址。注意,如果使用监控程序调试,0xF000到0xFFFF是受保护的,不能擦写,因为这里是监控程序所在的地方。对于MC9S12DP256 单片机开发板,文件default.prm可以暂不作改动。注意,对于MC9S12DP256 单片机,有12K RAM,默认的RAM区在 0x1000 到0x3FFF。上面的默认空间0x1000 到0x1FFF,虽然只有4K,但运行小程序没有问题。对于MC9S12DG128 单片机,片内有8K RAM,默认的RAM区在 0x0000 到0x1FFF。上面的默认空间0x1000 到0x1FFF,虽然只有4K,但运行小程序也没有问题。而作为MC9S12DG128 单片机开发板,我们希望能与MC9S12DP256单片机开发板兼容,在MC9S12DG128 单片机开发板的监控程序中,我们已经将MC9S12DG128 的RAM区重新定位在0x2000 到0x3FFF,以同MC9S12DP256开发板一致。若使用我们的MC9S12DG128开发板,文件default.prm 中的MY_RAM 要改到0x2000 到0x3FFF。应用程序的编译点击MAKE按钮,如图A.30 所示:图A.30 用Make命令编译应用程序 点击Make右边第2个图标,即一个绿色的三角和一只小虫,表示Debbug,可以在PC机上仿真运行该程序。现在编译完成了,到这个工程所在的文件夹里可以看到,在bin子目录下可以看到生成了CGeneric.abs.s19 文件,如图A.31、图A.32所示。改变CodeWarrior软件包中的选项设置,还可以生成列表文件.lst 等,这些功能可以等到用户熟悉了基本的使用方法后,借助软件包中的help信息,慢慢了解和掌握。 图A.31 LED工程下的文件系统结构图A.32 生成的.S19目标文件打开bin文件夹,有一个CGeneric.abs.s19文件,这就是编译的结果。向开发板下载程序现在,可以用监控程序的F命令把这个文件下载到单片机中去了。先键入F,然后按“传送”,选“发送文本文件”,如图4.12所示: 图A.33 在超级终端选项中选“发送文本文件”找到刚才bin目录下的CGeneric.abs.s19,按“打开(O)”。如图A.34所示。记住,文件类型要选“所有文件(*.*),才能看到.S19文件。” 图A.34 向开发板发送bin目录下的.S19文件这样,用户的程序就下载到单片机中去了。开发板每接收到.S19文件的一个记录(1行),就把代码写入到FLASH中,并在屏幕上显示一个“*”号,直到文件传送完,如图A.35所示。 图A.35 用F命令向开发板下载程序运行应用程序修改程序计数器PC的值,按CTRL+P,输入C029,再键入G命令。如图A.36所示。这样程序就跑起来了。图A.36 运行用户程序这里说明一下程序的入口地址为什么是C029不是C000。这是因为工程是从START12.C开始执行,然后再执行用户的main.c。这是codewarrior内部规定的。用户只需要知道就可以了。用户程序的入口地址是用户在default.prm文件中定义的代码地址加上29。例如default.prm文件定义如下:/* This is a generic Prm File If it does not fit your needs, you may adapt it or choose an another one in the linker preference panel */ NAMES END SECTIONS MY_RAM = READ_WRITE 0x1000 TO 0x1FFF; MY_ROM = READ_ONLY 0x4000 TO 0x7FFF;PLACEMENT DEFAULT_ROM INTO MY_ROM; DEFAULT_RAM INTO MY_RAM;ENDSTACKSIZE 0x600VECTOR 0 _Startup /* set reset vector on _Startup */则用户入口地址是$4029。用户可以简化和修改Startup文件,重新定义程序的起始地址。BMD调试器及使用方法BDM调试器如图A.37所示,单独使用时,需要通过5V电源插座给BDM头供电。用BDM头调试目标系统时,BDM头可以通过BDM电缆向目标板供电,BDM头的电源的供给也可以从BMD电缆得到。但,注意,不要同时用2个电源给BDM头和目标板同时供电。图A.37 BDM调试器图A.38 给出 PC机通过BDM头与目标机相连的示意图,也给出了BDM调试插头、座的引脚定义。图A.38 PC机通过BDM头与目标机相连,BDM调试插头、座的引脚定义 BDM电缆的6针插头座千万不能插反,插反会引起BKGD引脚(S12单片机的I/O端)与电源(Vdd)短路,会烧毁BKGD引脚,烧毁单片机! BDM电缆为十色扁带电缆,按照电子学关于颜色的约定,顺序为:棕、红、橙、黄、绿、蓝、紫、灰、白、黑。 在棕色线的端部插座上有一黑色 标志,这个标志指向的插孔为1。这个1号插孔要对准BDM头上标明的1。同样,电缆另一端1号插孔要对准目标板上标明的1。注意: BDM电缆的6针插头座千万不能插反,插反会引起BKGD引脚(S12单片机的I/O端)与电源(Vdd)短路,会烧毁BKGD引脚,烧毁单片机! 以下介绍BDM调试器的使用方法。 BDM调试器使用方法1 和PC机间用普通串口线相连2 插上5V电源3 配置超级终端首先打开超级终端:开始程序附件通讯超级终端设置方法见附录A中的“PC机设置” 一节。设置BDM头的时钟频率BDM 实际上是一个9S12单片机系统,它一方面通过RS-232接口与PC机通讯,另一方面控制目标板,使之能进入BDM方式,并能控制目标板在BDM方式下运行。初始化BDM头指的是。让BDM头知道目标板的运行时钟频率。如果目标板使用的是16M外部晶体振荡器,BDM头也要设置成16000K。按BDM头上的SW-PB复位键会看到以下内容,如图A.38所示:图A.38 BDM复位后向超级终端窗口发送的信息选择1,设置BDM头的工作时钟:若目标板使用的是16M无源晶振。BDM头应设置成与目标板一致,键入“1”后,输入16000,目标系统将设置成使用与外部晶振同样频率的16MHz时钟。另外几个选项意义如下:2 让目标板复位;3 重新建立BDM头与目标板的连接;4 擦除FLASH并解开密码锁(S12系列单片机有FLASH密码锁);5 BDM调试。因为此时目标板还没有接上,所以不要选择2、3、4、5选项。和目标板连接用户设定1为16000KHZ后,可以把BDM头6针插针和开发板的BDMIN 6针插座相连了。如图A.39所示: 图A.39 用BDM调试器调试目标系统注意扁带电缆红色一端为1,要插向开发模块BDMIN 插座的1脚。注意,千万不要插反。如果此时目标系统有另外的电源供电,要拔掉BDM头上的电源,让目标系统通过BDM电缆给BDM头供电。否则,BDM头通过BDM电缆给目标系统供电。回车,进入BDM调试器控制界面。再次按BDM调试器的SW-PB可见到如图A.40所示的接上目标板以后的BMD调试界面。这里S 表示,目标板的CPU12处于Stop(停止)状态,若出现R 则表示目标板的CPU12处于Run(运行)状态。图A.40 接上目标板以后的BMD调试界面Help 命令键入“help” 可以看到很多调试命令。如图A.41所示:图 A.41 可以使用的BDM调试命令表 按任意键得到BDM调试器的命令表后半部分,如图A.42所示:图 A.42 可以使用的BDM调试命令表后半部分 当写入适当的BDM调试程序时,S12 开发板可作为BDM调试工具使用。用BDM扁带电缆将BDMOUT插座与要开发的目标系统相联,可以BDM方式调试目标系统。目前的监控程序没有调试其它目标系统系统的功能,故不要使用BDMOUT插座。向FLASH下载程序使用以下命令可以向FLASH下载程序和擦除FLASH中的程序:FLOAD 向目标板的flash下载程序。记得要加 ;b参量。没有这个参量下载的S19文件是线性格式的。FBULK 擦除目标板的flash.键入fload ;b,回车,此时目标板上的CPU12 等待从BDM接收FLASH编程命令。点击超级终端的“传送”,选择“发送文本文件”,如图A.43所示:图A.43 让PC机通过串口向BDM头发送.S19格式文件在找到要下载的*.s19文件后,按“打开(O)”,这样,就把文件下载到单片机中去了。注意:文件类型选“所有文件”。这里用户可以先下载我们提供的“LED.S19”文件。下载过程中在PC机的超级终端窗口中可以看到显示一连串的“*”。每一个“*”代表 .S19 中的一行,即一个记录已经成功地下载了。由于FLASH的写入是16位操作,下载时可能会出现出错提示,指出要下载的.S19文件出现了单字节的情况。解决的办法是,给源文件增加或减少一个字节(例如增加或减少一个要显示的空格),重新编译产生总数为偶数字节的.S19文件。另一个可能出现的错误提示是,S 记录太长。这是因为S记录文件的第一个记录,即S0记录太长,长度超过了BDM工具缓冲区可接收

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论