公开/公告号CN1991784A
专利类型发明专利
公开/公告日2007-07-04
原文格式PDF
申请/专利权人 北京中电华大电子设计有限责任公司;
申请/专利号CN200510135528.0
申请日2005-12-30
分类号G06F11/36(20060101);
代理机构
代理人
地址 100015 北京市朝阳区高家园小区1号
入库时间 2023-12-17 18:46:19
法律状态公告日
法律状态信息
法律状态
2018-12-21
未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20081001 终止日期:20171230 申请日:20051230
专利权的终止
2015-10-28
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/36 变更前: 变更后: 申请日:20051230
专利权人的姓名或者名称、地址的变更
2010-02-03
专利权人的姓名或者名称、地址的变更 变更前: 变更后: 申请日:20051230
专利权人的姓名或者名称、地址的变更
2008-10-01
授权
授权
2007-08-29
实质审查的生效
实质审查的生效
2007-07-04
公开
公开
查看全部
技术领域
本发明涉及嵌入式MCU仿真系统领域,尤其涉及到利用FPGA系统灵活进行软件在线调试的方法。
背景技术
随着IC设计的发展,工艺、成本的变化,SoC的验证已经变得越来越重要了,特别是利用FPGA进行原型验证(Prototyping),已经逐渐成为成功的SoC设计不可缺少的环节。
在包含MCU(ARM、51单片机)的SoC嵌入式软件调试过程中,使用JTAG调试是最常用的调试方法,JTAG调试属于完全非插入式(即不使用片上资源)调试,它无需占用目标存储器,也不占用目标系统的任何端口,通过MCU的JTAG边界扫描口调试设备。当然,这需要处理器支持JTAG调试方式,是一种硬件实时的在线在系统调试。
对于不支持JTAG在线调试方式的MCU通常使用串口方式调试,大多数单片机只提供两个通用串口,当调试应用程序时需占用其中一个通用串口与主机PC通信,一般通过驻留监控软件(Monitor)完成数据交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。采用串口调试结合相应的调试软件可以大大提高调试效率。但是如果对于需要同时使用2个串口的应用情况则这种调试便无法进行了,比如开发者可能使用一个串口进行485通信,而另一个串口调试红外设备,这种情况下就无法进行系统在线调试,无法监控软件的运行情况、MCU内部寄存器情况等。
因此需要设计一种新型的SoC系统在线调试的方法,不占用原SoC已有的串口资源,且具备一定的灵活性,可以根据仿真PCB板的结构选择调试方式,实现程序的连续运行、单步、设置断点等功能。
发明内容
本发明的目的在于提供一种灵活的SoC系统在线调试方法,将原有的IP串口资源进行扩展,再将HDL代码综合并下载到FPGA里,使得在SoC原型验证阶段可以方便的使用JTAG方式或者扩展的串口进行调试程序,扩展的串口与通用串口功能相同,可以设置波特率,使得开发者在调试应用程序的同时能使用原IP的两个串口。
本发明的目的是这样实现的:实现系统在线调试,通过扩展的串口与主机进行通信,应使扩展的串口与原有的通用串口具有相同的功能,包括编写串口逻辑电路,定义MCU中的特殊寄存器作为串口的收发寄存器,定义MCU中的串口中断向量,增加波特率发生器,编写驻留程序(Monitor-51)与调试器(u-Vision)接口的初始化程序。对于支持JTAG调试的MCU IP核,将其JTAG控制逻辑与MCU分离,设置一根选择信号线,增加选择通路,可以在FPGA仿真板上通过选择高低信号,设置成JTAG或者串口调试(Serial-plus),选择JTAG方式时,扩展串口的资源同样对用户开放,包括收发寄存器、中断向量,也可根据用户定制不使用扩展的串口,这样可以将扩展串口收发寄存器,中断向量留作他用。
本发明还具有以下特征:扩展的串口在使用时可以自适应波特率设置,用户只需写好Monitor-51的初始化程序后便可以以一定波特率与主机通信,可以通过连续运行、设置断点、单步方式调试程序。
与现有的技术相比,本发明的有益效果在于:既保证了调试的效率,确保了在线调试的真实性,又增加了调试的灵活性,充分利用了FPGA大容量、可配置性的特点,为用户SoC系统原型验证提供了便利条件,用户无需更改外围电路,只需配置调试方式,编写HDL代码,并下载到FPGA中即可。特别是对于不支持JTAG调试的MCU核,如果外围电路需要用到两个串口时,外围电路器件不便于改造,要使得两个串口都具有调试能力,需要为每一个串口都设置监控驻留程序,浪费了FPGA的RAM资源(通常Monitor-51需要16K的RAM资源),若采用扩展的串口,可以只为调试程序配备一套监控驻留程序,这样极大的方便了应用程序的调试,降低了开发成本。
附图说明
图1是有关本发明实施中采用扩展的串口或JTAG调试方式示意图。(其中,虚线的部分为扩展的部分。)
PS(Port Select):端口选择逻辑。
Download Cable:包括RxD、TxD、Gnd线
图2是SoC内部资源配置情况和调试器软件配置示意图。
SCON_PLUS:串口控制寄存器。
SBUF_PLUS:串口数据缓冲寄存器。
BG(Baud Generator):波特率发生器。
Intr Plus:扩展的串口逻辑电路。
JTAG:JTAG调试控制电路。
具体实施方式
下面结合附图对本发明作进一步描述。
在进行系统程序调试时,首先完成SoC系统的硬件设计,然后设计相应的软件,编写开发工具与目标系统的接口程序和初始化程序。在硬件设计阶段,首先要增加串口电路。请配合参阅图1所示,还需要对包含JTAG控制器的电路进行改造,使其与串口能够构成选择机制,这可以方便的通过增加选择器来实现。扩展的串口电路支持同步和异步工作模式,同步工作时,由CPU产生串行时钟,串口工作在半双工模式下,异步工作时,串口工作在全双工模式,在8051核中设置一个保持寄存器SBUF PLUS,参照图2所示,使得软件在读当前数据之前该串口可以接收新数据。同时设置一个串口控制寄存器SCON PLUS,使得软件对该串口完全可控,定义各位分别为Serial-plus mode,receive enable,定义在传输模式2和3下第9数据位,发送中断标志,接收中断标志。最后,设计波特率发生器,对于核内已有的串口0可以使用Timer1或者Timer2产生波特率,串口1可以使用Timer1产生波特率,对于扩展的串口Serial-plus,添加令一路计数器来完成波特率产生,不占用Timer1和Timer2。
硬件仿真完毕,功能正确后,开始软件设计,最重要的是要增加初始化文件INSTALL.A51中对扩展串口的支持,请参照图2所示。由于使用本发明在调试过程中使用的是Keil软件开发工具,默认的调试通道是串口0或串口1,用户只需确定对应硬件的串口入口,在本发明中应利用INSTALL batch文件来配置硬件,如串口类型、Monitor-51使用的xdata的位置,Monitor-51程序代码的起始位置。并且在INSTALL.A51中应声明SCON PLUS和SBUF PLUS的地址,和中断入口,并告知是否检测prom在系统中。MON BANK.A51仍使用默认值。然后在工程中加入STARTUP.A51就可以对编好的代码进行编译,调试应用程序了。
当设计者的原型验证板周边器件变化时,可以通过选择信号,更换调试接口,用户需要做的只是重新下载bit码流到FPGA中,连接主机和调试板的接口信号线,就可以实现在线调试方式的转移。保证了调试效率,又节省了一定的硬件开销。
机译: 利用多频带DRC系统中包含的多个DRC的增益来控制上限的相同能力的多DRC系统和多DRC系统的增益设定方法
机译: 利用LCPCF膜的生物检测装置和方法,用于测试设置在其上的包含甘油三酸酯/ HDL的液体形式的样品
机译: 利用等电聚焦和能够显示变换后的HDL的生物芯片来诊断衰老和相关疾病的方法和工具包