首页> 中国专利> 嵌入式处理器高速在线下载直通通道的设计方法

嵌入式处理器高速在线下载直通通道的设计方法

摘要

本发明公开了一种嵌入式处理器高速在线下载直通通道的设计方法。本发明在原有单个数据下载模式的基础上增加了数据下载直通模式,大幅提升了下载速度。在数据下载直通模式下,下载代理服务程序只需要先设定下载数据块的起始地址,然后按地址顺序将数据下载到直通通道上,在线调试接口硬件负责将下载代理服务程序传下来的数据直接下载到目标平台的对应内存上。在线调试接口在数据直通模式下可以自动生成下载地址,取消了下载代理服务程序冗余地址的计算和设定过程,大幅提高了数据下载的吞吐率。

著录项

  • 公开/公告号CN101162440A

    专利类型发明专利

  • 公开/公告日2008-04-16

    原文格式PDF

  • 申请/专利权人 杭州中天微系统有限公司;浙江大学;

    申请/专利号CN200710156914.7

  • 发明设计人 严晓浪;孟建熠;葛海通;

    申请日2007-11-20

  • 分类号G06F11/36;

  • 代理机构杭州求是专利事务所有限公司;

  • 代理人张法高

  • 地址 310012 浙江省杭州市西湖区华星路99号东部软件园创业大厦A403

  • 入库时间 2023-12-17 19:54:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-01-06

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20100630 终止日期:20141120 申请日:20071120

    专利权的终止

  • 2010-06-30

    授权

    授权

  • 2008-06-11

    实质审查的生效

    实质审查的生效

  • 2008-04-16

    公开

    公开

说明书

技术领域

本发明涉及一种嵌入式处理器高速在线下载直通通道的设计方法。通过在嵌入式处理器在线调试接口模块中增加专用的下载直通通道,可迅速提高主机下载程序和数据的速度,提高代码在线调试效率。

背景技术

随着集成电路设计进入片上系统(SoC)时代,嵌入式系统的设计复杂度日益增加,功能不断的增强。嵌入式处理器是嵌入式系统的核心。嵌入式处理器的处理性能的不断提高,使得原来需要用专用硬件电路实现的功能可以被设计成软件来实现。用软件实现的功能可以有效提高系统的灵活性和扩展性。增加新的功能或者修改设计时留下的错误,都可以通过升级软件来快速完成。因此对于嵌入式系统设计者来说,在处理器性能能够满足特定的需求的情况下,那些需要实现的特定的功能会被优先考虑设计成软件。这样就导致嵌入式系统的软件部分不断增加。

传统的嵌入式系统通过在线调试的方法,在嵌入式硬件平台上调试目标软件。在线调试指,用户通过调试主机与嵌入式处理器的在线调试接口之间通信,跟踪和控制嵌入式处理器的执行过程,以达到调试嵌入式软件的要求。调试主机和嵌入式处理器在线调试接口通过标准JTAG进行通信。由于JTAG是一个串行的总线,数据传输速率相对较慢。

调试过程中,一般需要与嵌入式处理器相关的工具链的支持。工具链指支持嵌入式处理器软件编译、链接和调试的一整套软件程序。嵌入式软件一般采用交叉编译的方法,在主机上用工具链将目标代码进行编译,链接,然后通过调试程序下载到目标开发系统中进行在线调试。一般嵌入式系统在线调试过程如图1所示。

由于调试通信的总线采用数据率很低的JTAG串行总线(JTAG总线一般被用作边界扫描,嵌入式处理器在线调试模块采用该总线协议是为了复用引脚),因此传统的调试接口通信速度一般很低(一般都在10K以内)。传统的调试接口采用如图2所示的模式下载数据。从图2发现下载代理服务程序下载一个字的数据需要经过3个阶段的操作。第一阶段需要把当前下载的数据的地址移入处理器扫描链中,然后由处理器执行之后把地址保存到处理器的通用寄存器中。第二阶段把下载的数据移入处理器扫描链中,同样由处理器执行后保存到处理器的通用寄存器中。第三阶段通过向处理器扫描链中移入一条内存写操作指令,指示处理器运行内存写操作,将数据写到相应的内存中。由于每个阶段都需要由软件驱动在线调试器的TAP控制器,产生了大量的冗余数据操作,极大的限制的下载速度。

随着嵌入式软件规模的不断扩大,下载的数据和程序数据量急剧上升。缓慢的下载速度已经成为限制嵌入式软件工程师调试效率的瓶颈。因此提高嵌入式处理器的在线下载和调试速度以成为嵌入式处理器实际应用中必须解决的迫在眉睫的工作。为了解决这一瓶颈,此前的一些工作主要集中在两个方面:一个方面是在通过提高调试器JTAG的频率,通过提高通信频率来提高下载数据的带宽;另一个方面的工作是先用传统在线调试接口下载一段特定的小程序(bootload)到内存,然后运行程序,该程序可以通过嵌入式系统的其他高速接口(如网卡,USB接口)等下载数据,提高下载速度。第一种方法虽然做法上最简单,但是受到频率提升的限制;第二种方法虽然在一定程度上提高了下载速度,但是它是通过间接的方法来下载程序,用户需要设计专用的下载程序,不同的应用扩展性不好,下载过程需要由用户来创建。基于解决下载速度和方便用户调试的出发点,本发明提出了一种通过减少JTAG总线之间的冗余数据通信,增加通信效率,设置专用硬件下载直通通道,实现了对嵌入式处理器在线下载速度的大幅度提升。

发明内容

本发明的目的是提供一种嵌入式处理器高速在线下载直通通道的设计方法。

特征包括如下:

1)在在线硬件调试接口中增加一种旨在进行批量数据下载的直通通道模式;

2)在线调试接口内部设置块下载起始地址寄存器和数据缓存寄存器,用来寄存来自下载代理程序发送的起始地址和连续的数据;

3)在线调试接口内部自动生成当前下载数据对应的内存地址,数据地址支持按字,半字和字节下载;

4)在线调试接口自动完成处理器扫描链的填充以及通过处理器流水线的接口将预设的命令或数据下载到流水线中,由流水线完成指令执行的操作;

5)下载直通通道数据缓存寄存器有缓冲机制,支持在发送数据的同时,接收下一个数据以进一步提高下载速度;

6)在线调试接口模块支持普通下载模式和直通下载模式的动态切换;

7)下载代理程序在下载批量数据时,先设置下载起始地址,然后连续下载批量数据。

所述的在在线硬件调试接口中增加一种旨在进行批量数据下载的直通通道模式:下载的方式从原来单地址下载单个数据转变为单地址即起始地址下载批量数据。

所述的在线调试接口内部设置块下载起始地址寄存器和数据缓存寄存器,用来寄存来自下载代理程序发送的起始地址和连续的数据:在原来在线调试接口原有的寄存器上,扩展出为下载直通通道专用的两个寄存器,外部接口和访问操作与原来的寄存器相同。

所述的在线调试接口内部自动生成当前下载数据对应的内存地址,数据地址支持按字,半字和字节下载:通过在线调试接口内部硬件逻辑的状态控制,自动计算出下一次需要下载的数据的目标地址;硬件控制逻辑根据配置信息,自动按照字,半字和字节进行下载。

所述的在线调试接口自动完成处理器扫描链的填充以及通过处理器流水线的接口将预设的命令或数据下载到流水线中,由流水线完成指令执行的操作:下载直通通道通过硬件状态转换,自动将当前等待下载的数据所需的地址和数据信息通过处理器的扫描链移入处理器的流水线中,处理器根据扫描链移入的操作和数据进行相应的操作。

所述的载直通通道数据缓存寄存器有缓冲机制,支持在发送数据的同时,接收下一个数据以进一步提高下载速度:该寄存器支持在当前数据的下载过程中,处理下一个从JTAG串行口输入的数据,即在下载代理服务程序不考虑当前数据是否已经由下载直通通道下载完毕的情况下,直接发送下一个数据,消除了冗余的状态查询过程,提高数据下载率。

所述的在线调试接口模块支持普通下载模式和直通下载模式的动态切换:下载代理服务程序可以通过关闭下载直通模式使能位,直接关闭下载直通模式,此后的数据可直接通过普通模式下载。

所述的下载代理程序在下载批量数据时,先设置下载起始地址,然后连续下载批量数据:下载代理服务程序在下载批量数据过程中,首先下载起始地址,然后下载批量数据,依次循环往复,下载完所有的数据。

本发明设计方法简便,易于实现,硬件开销很小,且可以兼容原有版本的在线下载程序,对于提高嵌入式系统的调试效率将起到积极的作用。

附图说明

图1是传统嵌入式系统的调试过程示意图;

图2是传统下载代理服务程序下载数据经历的3个过程示意图;

图3是高速下载直通通道下载过程示意图;

图4是高速下载直通通道硬件实现原理图;

图5是高速下载直通通道下载过程控制状态转换图。

具体实施方式

本发明减少了传统下载模式中冗余的数据地址设定和写内存操作的设定,只保留有效数据下载单一过程,提高了数据下载的有效率,从而能够有效提高了数据下载的带宽。

嵌入式处理器高速在线下载直通通道的设计方法:

1)在在线硬件调试接口中增加一种旨在进行批量数据下载的直通通道模式;

2)在线调试接口内部设置块下载起始地址寄存器和数据缓存寄存器,用来寄存来自下载代理程序发送的起始地址和连续的数据;

3)在线调试接口内部自动生成当前下载数据对应的内存地址,数据地址支持按字,半字和字节下载;

4)在线调试接口自动完成处理器扫描链的填充以及通过与处理器流水线的接口将预设的命令或数据下载到流水线中,由流水线完成指令执行的操作;

5)下载直通通道数据缓存寄存器有缓冲机制,支持在发送数据的同时,接收下一个数据以进一步提高下载速度;

6)在线调试接口模块支持普通下载模式和直通下载模式的动态切换;

7)下载代理程序在下载批量数据时,先设置下载起始地址,然后连续下载批量数据。

所述的在在线硬件调试接口中增加一种旨在进行批量数据下载的直通通道模式:下载的方式从原来单地址下载单个数据转变为单地址即起始地址下载批量数据。下载过程为单地址多数据,如图3所示。下载代理服务程序首先通过设置下载直通通道使能位开启下载直通通道。然后选中起始地址寄存器,设置好起始地址。最后选中下载直通通道数据缓冲寄存器,连续下载数据。数据以批量方式下载,极大的提高下载速率。

所述的在线调试接口内部设置块下载起始地址寄存器和数据缓存寄存器,用来寄存来自下载代理程序发送的起始地址和连续的数据:在原来在线调试接口原有的寄存器上,扩展出为下载直通通道专用的两个寄存器,外部接口和访问操作与原来的寄存器相同。在原有的调试接口通道中,可以简单扩展出两个专为下载直通通道设计的寄存器:起始地址寄存器和数据缓冲寄存器。两个寄存器分别了32位硬件寄存器。

所述的在线调试接口内部自动生成当前下载数据对应的内存地址,数据地址支持按字,半字和字节下载:通过在线调试接口内部硬件逻辑的状态控制,自动计算出下一次需要下载的数据的目标地址;硬件控制逻辑根据配置信息,自动按照字,半字和字节进行下载。下载直通通道支持以字(4字节),半字(2字节)和字节为单位进行批量下载。在在线调试器的控制寄存器中,扩展2位寄存器表示处理器当前下载的模式:00表示以字为单位进行下载,01表示以半字为单位进行下载,10表示以字节为单位进行下载,11表示以未定义的长度。默认状态按照字为单位进行下载,尽可能提高下载的效率。下载直通通道模式下,在线调试接口动态自动生成下一个需要被下载数据的地址。该地址由一个32位的硬件地址加法单元计算得到,地址可以以4字节,2字节和1字节为单位增长。这要求上层下载代理服务程序在下载数据前必须通过设定下载直通通道的地址递增模式位预先告诉硬件地址累加器。32位的硬件地址累加模块将根据上层软件设定的递增模式,直接选择地址增加的单位。

在线调试接口自动完成处理器扫描链的填充以及通过与处理器流水线的接口将预设的命令或数据下载到流水线中,由流水线完成指令执行的操作:下载直通通道通过硬件状态转换,自动将当前等待下载的数据所需的地址和数据信息通过处理器的扫描链移入处理器的流水线中,处理器根据扫描链移入的操作和数据进行相应的操作。直通通道的数据自动完成扫描链的填充以及处理器流水线接口预设命令和数据,最终将数据下载到目标内存中,需要经历以下几个阶段如图5所示:

1.空闲状态:空闲状态是一种直通通道关闭的模式。上电复位后,下载直通通道自动进入该状态。

2.等待起始地址状态:如果直通通道被开启,控制状态自动由空闲状态进入本状态。本状态的主要工作是等待从下载代理服务程序发送而来的数据地址,即等待下载的起始地址。

3.地址发送状态:如果成功收到由下载代理服务程序发送而来的数据起始地址,立刻进入本状态。本状态的主要工作是将准备好的起始地址发送至处理器扫描链。扫描链填充完毕后,控制处理器退出调试模式执行地址准备工作(将地址存入处理器的通用寄存器中)。

4.数据等待状态:地址被成功发送后,立刻进入本状态。本状态的任务是等待从下载代理服务程序端下载的数据。如果数据被成功接收,立刻进入数据发送阶段。如果代理服务程序移入的是一个新的地址,则状态返回至地址发送阶段,按步骤3方式重新设置起始地址。

5.数据发送状态:当数据被成功接收后,下载直通通道立即设置处理器扫描链,将当前接收到的数据与相关的控制指令移送至处理器扫描链,并控制处理器退出调试模式进行指令执行,将当前的数据存入相应的通用寄存器中。

6.下载命令产生状态:当处理器将数据地址和数据内容成功的保存至处理器的通用寄存器后,需要向处理器发出内存写操作的指令,从而使数据可以被成功的下载到目标地址中。由于下载直通通道支持以字,半字和字节为单位进行批量下载,因此,该状态根据下载模式选择生成STW,STH或者STB指令。

7.指令发送状态:指令发送状态下,指令被发送至处理器的流水线进行执行。

8.指令完成等待状态:由于下载指令的执行需要时间,该状态用来等待下载指令从流水线中执行完成。

下一下载地址产生状态:该状态是整个下载直通通道的核心状态。该状态中,硬件将根据当前直通通道的下载模式,自动生成下一下载数据的目标地址。该状态取代原先通过下载代理服务程序设置数据地址的过程,硬件生成地址仅需要一个时钟周期,极大的提高了下载速率。下载地址产生后,状态将自动转入地址发送阶段,将当前由硬件自动生成的下载地址下载到处理器中。由于下载地址的发送,仅改变处理器中的寄存器,在下载服务程序下一个控制或数据到来之前,提前下载地址是安全的并且被可撤销的。

下载直通通道数据缓存寄存器有缓冲机制,支持在发送数据的同时,接收下一个数据以进一步提高下载速度:该寄存器支持在当前数据的下载过程中,处理下一个从JTAG串行口输入的数据,即在下载代理服务程序不考虑当前数据是否已经由下载直通通道下载完毕的情况下,直接发送下一个数据,消除了冗余的状态查询过程,提高数据下载率。下载代理服务程序通过驱动在线调试器的TAP控制器(标准JTAG状态转换机制),将数据按照协议要求,以串行数据的方式发送到在线调试接口的移位寄存器中。移位寄存器负责将调试代理服务程序发送过来的串行数据根据协议的要求进行解析,并且将串行数据变成并行数据。TAP控制器将移位完成后并行数据发送到数据缓冲寄存器或者地址寄存器中。在批量传输的起始阶段,起始地址需要通过TAP控制器移入地址寄存器中;后续的数据都会按照传输的顺序移入数据缓冲寄存器中。数据寄存器在发送到CPU的同时,可以接收下一个从JTAG传输下来的数据,具有缓冲机制。

在线调试接口模块支持普通下载模式和直通下载模式的动态切换:下载代理服务程序可以通过关闭下载直通模式使能位,直接关闭下载直通模式,此后的数据可直接通过普通下载。为了兼容旧版本的下载代理服务程序,在处理器在线调试接口模块的控制寄存器中,设置下载直通通道使能位。该位上电之后默认设置为关闭,也就是下载直通通道关闭模式。原有版本的下载代理服务程序由于不会设置这一位,可以在普通模式下正常工作。更新后的下载代理服务程序可以根据实际的需要,动态选择开启或者关闭该位来控制下载直通通道。该位支持下载过程中下载直通通道的自动开启和关闭,即支持直通通道下载模式和普通模式的动态切换功能。

下载代理程序在下载批量数据时,先设置下载起始地址,然后连续下载批量数据:下载代理服务程序在下载批量数据过程中,首先下载起始地址,然后下载批量数据,依次循环往复,下载完所有的数据。由于处理器内部采用并行传送方式,内部处理速度极快;而JTAG串行口的数据下载速度远跟不上处理器内部的处理速度。因此在利用下载直通通道进行数据下载时,下载代理服务程序利用下载直通通道的特性,首先设置下载起始地址,然后批量下载数据,可以减小JTAG口上的通信量,从而提高下载速度。提高JTAG的频率将减少直通通道在数据等待状态的等待时间,进一步提高程序和数据的下载速度。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号