您的位置 首页 软件

根据GAL的BDM调试体系规划

随着BDM调试模式逐渐标准化,自制BDM调试工具变得越来越容易,特别是对于支持BDM调试模式的多种类型的CPU,自己设计的BDM调试系统只需少量的改动即可移植使用,而不必重复购买价格昂贵的调试开发系统

现在运用Motorola微处理器开发嵌入式体系时根本上都是运用Motorola公司供给的开发体系或许CodeWarrior公司的开发体系等付费贵重的调试东西。最近因为Flash技能的开展,特别是一些CPU(如CPU12/16/32/32+,PowerPC5xx/8xx,ColdFire等)能够用JTAG口在布景形式下调试,故仿真器已能够省去。而且跟着BDM调试形式逐步标准化,克己BDM调试东西变得越来越简略,特别是关于支撑BDM调试形式的多种类型的CPU,自己规划的BDM调试体系只需少数的改动即可移植运用,而不用重复购买价格贵重的调试开发体系,这样做能够节约很多的本钱。

1 BDM调试形式介绍

Motorola微处理器的调试模块针对不同场合的运用别离供给了3种调试支撑:实时盯梢、BDM调试和实时调试。实时盯梢是要求能够盯梢运用程序的动态履行途径,这是实时体系的根本要求;在BDM调试办法下,处理器被停机,很多的指令能够被发送到处理器中拜访内存和寄存器,外部仿真体系运用一个三脚、串行的双工通道与处理器通讯;实时调试则能够不需求CPU间断运转,调试间断答应实时体系履行一个专一的服务例程,快速保存首要的寄存器和变量等上下文内容,并使体系当即回来到正常操作,外部的开发体系能拜访被保存的数据是因为硬件支撑处理器和BDM初始化指令的一致性操作。

其间BDM调试形式为规划人员供给了一种低层次的调试手法,让用户能够间断CPU的运转,单步调试程序,读取CPU的各个寄存器的内容,这些仅仅是经过向CPU发送几个简略的指令就能够完结,明显,这样使调试软件的规划很简略,一般自己就能够编写。硬件调试卡的规划也十分简略,关键是要满意好通讯时序联系和电平转化要求。

这几种调试办法都共用26脚的BDM调试引脚信号,这些信号的界说如表1所示,BDM调试首要运用了DSCLK,DSI,DSO三种信号。

2 BDM调试体系的运转条件及其体系组成

(1)体系运转的约束条件

虽然许多BDM指令能够与处理器并行操作,可是要想安全可靠地运用BDM操作,最好的办法便是让处理器间断运转。可是停机操作关于那些要求实时呼应的运用程序的调试明显不抱负。可是因为实时盯梢和实时调试模块与BDM调试模块引脚共用,所以晋级和扩展BDM调试体系,能够很简略支撑实时运用程序的调试。

(2)BDM调试体系组成

该体系首要由3个部分组成,如图1所示。 

BDM调试卡效果是完结从并口到BDM调试端口(信号界说如表1所示)的操作时序的转化;BDM调试卡的驱动程序则是完结开发体系与待开发的嵌入式体系的通讯进程处理,如组成必定格局的数据包、解说接纳到的应对数据或许微处理器的状况数据等;BDM调试软件则是功用软件,完结读写指定方位的Flash或许SRAM数据、暂停、复位等功用。

值得留意的是,因为现在BDM调试模块的标准化,调试卡和驱动程序在不同类型的CPU大将具有通用性,仅仅BDM调试软件需求依据各种CPU对应的指令集来稍加修正即可复用。下面将以作者开发的一个针对Motorola公司的32位单片机MCF5272规划BDM调试体系的进程进行论说。

3 CodeFire系列处理器MCF5272的BDM调试体系的规划

3.1 BDM调试卡规划

BDM接口的串行操作时序剖析如图2所示。从图2中能够看出,在调试模块的串行状况机中一切的事情是依据处理器时钟(PSTCLK)的上升沿的。DSCLK的频率是PSTCLK的1/5,而且DSCLK的上升沿相关于PSTCLK的上升沿有必定的延时。这儿的 DSCLK的效果类似于周期性的使能信号。每一次串行数据的传输可分为4个阶段:C1,C2,C3和C4。在DSCLK的高电平期间,数据从DSI输入,经过2个PSTCLK周期的同步(C1和C2)而被采样,然后在DSCLK的低电平期间PSTCLK的第1个上升沿处(C3)来暂时BDM状况机改动状况,随后在第2个PSTCLK上升沿(C4),DSI预备传送新的数据,DSO上则输出本来数据输入相对应的应对数据。BDM状况机在DSI上数据采样检测到的时分改动状况,当一切的数据传输结束,BDM状况机的状况也就不会有什么改动。

依据BDM端口的信号界说,不难看出这些信号都是单向的。其间要留意的是:PSTCLK是调试模块从处理器中获取的,而DSCLK则是外部的开发体系发生的。要完结从并口到BDM口的时序操作转化,最简略的办法是使并口作业在SPP端口形式下的4位组形式,在该形式下每次经过状况端口的4个状况位反向传送半个字节,两次传输完结向PC机传送一个字节数据[1]。他的操作时序如图3所示。

因为一切的信号都是单向的,时序和逻辑比较简略,因而,选用GAL器材完结并口操作时序与BDM操作时序的转化。GAL要完结的功用首要是数据的串并和并串转化。

GAL器材与并口接口的信号有:

输入信号:D0~D7,C1(主机忙状况线),DSCLK(供给串行通讯时钟信号)。
输出信号:S3,S4,S5,S7(这4个信号做数据反向输出),S6(给PC机供给一个间断信号)。

他与BDM端口接口的信号有:

输入信号:PSTCLK,DSO。
输出信号:DSI。 

故需装备12个输入端和6个输出端,故选用74GAL16V8的器材即可满意要求[2]。现在GAL器材要完结的便是将与并口接口的输入信号(D0~D7,C1,DSCLK)转化成与BDM接口的输出信号(DSI),同理,也要将与BDM端口接口的输入信号(PSTCLK,DSO)转化成与并口接口的输出信号(S3,S4,S5,S6,S7),完结了这2个转化,然后对GAL编程,规划PCB地图,能够很快做出BDM调试卡。

3.2 BDM驱动程序的规划

BDM调试卡现已完结了并口到BDM口的时序操作转化,依照必定的数据格局传送和接纳数据则是BDM调试卡的驱动程序要完结的作业,驱动程序对数据的处理分为2层:底层完结根本的字节数据的收发(康复和拆分);上层则完结数据包的收发。底层的数据收发原理在调试卡的规划进程中现已做了详细的介绍,以下首要介绍数据包的收发处理程序规划应留意的事项。

从BDM操作时序图中能够看出,串行通道数据传输速度从直流到PSTCLK频率的1/5频率之间,该通道运用双工形式,数据可在主控设备和从控设备之间一起发送和接纳,每次传送的数据块由一个17 b的数据包组成,该数据包由一个状况/操控位和一个16 b数据字组成。数据格局如下所示:

发送数据时最高位为操控标志,该位保存,在开发体系向CPU宣布指令和数据时,该位应该被铲除。

接纳数据时最高位为状况标志位,指示从CPU回来的音讯类型。他与数据域及数据表明的音讯意义之间的联系为:

明显,因为每次只能传送一个字节,故发送一个数据包需求履行3次传送操作。应留意因为并口作业在4位组形式,每次只能接纳4 b数据[1],而并口操作是以字节为单位进行的,因而,实际上接纳一个数据包最少应该履行6次接纳操作,而不是5次。也便是说终究剩余一位数据也要当一个字节传送,这在驱动程序的规划傍边很简略弄错。

BDM调试模块为外部开发体系供给了12个根本类型的指令(用助记符表明):RAREG/RDREG(读A/D寄存器),WAREG/WDREG(写A/D寄存器),READ(从存储器读数据),WRITE(向存储器写数据),DUMP(与READ指令结合运用转储数据块),FILL(与WRITE指令结合运用填充数据块),GO(持续履行程序),NOP(不做任何操作,能够被用做一个空指令),RCREG(读体系操控寄存器),WCREG(向体系操控寄存器写入数据),RDMREG(读调试模块寄存器),WDMREG(写向调试模块寄存器写入数据);各种指令和他对应的应对数据的格局能够从MCF5272芯片材料上查到。上层驱动程序终究的使命便是完结这12种根本指令数据和应对数据的收发,并为调试软件供给相应的函数调用接口,详细的驱动程序规划比较简略,关键是要留意对从调试模块回来的状况数据进行犯错处理。特别是应该差异CPU还没预备好和总线操作被间断2种音讯。前者呈现的比较多,一般是在CPU正在履行一个使命,不能及时呼应BDM指令时回来的音讯,而后者则往往是CPU履行了2条有抵触的指令(也便是不合法拜访资源)。这个在驱动程序中看不出有很大的差异,可是在调试运用程序时常常陈述“BUSError”信息。

3.3 BDM调试软件的规划

该软件应该具有如下根本的功用:体系初始化,重启体系,查看CPU外围期间作业是否正常,读写Flash中的数据,读写SRAM中的数据,单步履行程序。

调试软件首要是调用驱动程序完结的12种BDM调试指令接口函数来完结各种功用的。其间需求传递参数给驱动程序的有:

①查看外部设备接口是否作业正常:如RS232串口、USB口、并口、网口等。这类操作需求接口地址和间断号等参数,而且需求回来操作成果。

②读写SRAM和Flash中的数据:这些操作需求供给存储器的地址规模。

调试软件的规划因开发体系的操作体系不同,在完结上有比较大的差异,但处理进程根本相同,因而,软件的规划也比较简略,没有必要赘述。

3.4 体系运转及其测验

运用MCF5272做嵌入式体系开发时,开发渠道的操作体系是RedHatLinux,因而,驱动程序和调试软件都是针对Linux规划的。驱动程序将BDM调试卡作为一个字符设备看待,BDM卡的初始化是在/usr/src/linux/driverschar/mem.c中增加BDM卡初始化代码[3],该设备的根本进口点在驱动程序的file_operation结构中,对BDM卡的操作指令均在此完结,详细代码不再胪陈。

调试体系做全体测验时,首要要在Linux下创立一个字符型的BDM设备,然后履行insmod指令将驱动程序模块打入操作体系内核中[3],在成功地创立了BDM设备文件和安装好BDM调试卡的驱动程序之后,就能够调试和履行该调试软件了。

4 结语

BDM调试体系具有本钱低、操作便利、移植简略等特色。在Linux环境下针对MCF5272成功开发了BDM调试体系后,又先后将该体系软件稍加改动,就轻易地移植到与MCF5272同属ColdFire系列的MCF5249和Power PC系列的MPC555等CPU上,而且在Window下从头编写了驱动程序和调试软件,运用图形界面操作,根本上达到了CodeWarrior相应软件的功用,为产品的快速低本钱开发做出了奉献。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/195181.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部