首页> 中国专利> 利用HDL扩展串口的SoC系统在线调试方法

利用HDL扩展串口的SoC系统在线调试方法

摘要

本发明提供了一种可以灵活扩展SoC系统在线调试的方法。在SoB(System on a Board)及嵌入式系统程序开发过程中,将已有IP核的串口资源进行扩展,并设置选择,利用FPGA可重复配置的便利性,使得用户可以根据FPGA仿真板的结构任意选择目标系统的调试方式,即JTAG方式或者串口方式。当选择串口方式调试时利用扩展的串口,不占用目标系统的串口资源。当程序调试完毕可以即时将程序写入目标存储器中。这样在使用不同IP核时即可以有针对的选择程序调试方式,实现了在线调试的同时又不会占用目标系统的串口资源,提高了程序调试效率。

著录项

  • 公开/公告号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中,连接主机和调试板的接口信号线,就可以实现在线调试方式的转移。保证了调试效率,又节省了一定的硬件开销。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号