CN102662835A - 一种针对嵌入式***的程序调试方法及嵌入式*** - Google Patents

一种针对嵌入式***的程序调试方法及嵌入式*** Download PDF

Info

Publication number
CN102662835A
CN102662835A CN2012100811619A CN201210081161A CN102662835A CN 102662835 A CN102662835 A CN 102662835A CN 2012100811619 A CN2012100811619 A CN 2012100811619A CN 201210081161 A CN201210081161 A CN 201210081161A CN 102662835 A CN102662835 A CN 102662835A
Authority
CN
China
Prior art keywords
data
debugging
cpu
debug
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100811619A
Other languages
English (en)
Other versions
CN102662835B (zh
Inventor
王泰运
林淑琴
方嘉崧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING SUNPLUS-EHUE TECHNOLOGY CO., LTD.
Sunplus Technology Co Ltd
Original Assignee
BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Sunplus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd, Sunplus Technology Co Ltd filed Critical BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN201210081161.9A priority Critical patent/CN102662835B/zh
Publication of CN102662835A publication Critical patent/CN102662835A/zh
Application granted granted Critical
Publication of CN102662835B publication Critical patent/CN102662835B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种针对嵌入式***的程序调试方法及嵌入式***,属于程序调试领域。该方法包括:嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与所述CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式;之后CPU将程序实时运行产生的数据经协议转换后通过其通讯口传输给调试主机。本发明由CPU通过其通讯口传输高层调试指令并将其转换成底层调试指令,以及在进入调试模式后,由其通讯口输出数据,降低了调试成本。

Description

一种针对嵌入式***的程序调试方法及嵌入式***
技术领域
本发明涉及程序调试技术领域,尤其涉及一种针对嵌入式***的程序调试方法及嵌入式***。
背景技术
程序调试的主要工作是跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况,从而达到调试的目的。目前,程序调试除了有软件调试方式外,还有硬件调试。
所谓硬件调试是指在计算上调试软件的配合下实现的一种交叉调试过程。硬件调试的过程主要是:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器中,仿真器仿真全部的目标板资源如所有的目标板接口且真实的引脚输出。仿真器可以接入实际的电路中,然后像目标板一样执行。同时,仿真器也会返回目标板内部内存与时序等情况给计算机的辅助软件,这样,通过利用调试软件设置单步、全速、运行到光标的常规调试指令就可以利用辅助软件在计算机上观测到程序真实的执行情况。
现有技术中,常用的针对嵌入式***的硬件调试方式包括采用在线仿真器(ICE,In-Circuit Emulator)方式以及采用在线调试器(ICD,In-CircuitDebug)方式。由于嵌入式***应用的一个显著特点是与现实世界中的硬件直接相关,存在各种异变和事先未知的变化,从而给微处理器的指令执行带来各种不确定因素,这种不确定性在目前情况下只有通过在线仿真器ICD才有可能发现。但是,由于在线仿真器ICE的发展远远落后于CPU的发展,其运行速度也难以跟上CPU的主频,使得其在模拟CPU的同时向外输送调试信息变得较为困难。另外,一种CPU就需要与之对应的专用在线仿真器ICE,这样,也就导致开发成本较高。针对这些问题,业界开发出在线仿真器ICD在线调试方式,在这种调试方式中,通过在芯片中内嵌一在线仿真器ICE,同时利用在开发板上引出的调试端口,通过一具有核心硬件的在线调试器ICE的接口盒即在线仿真器ICD将来自主机的高层调试指令转换成该调试端口可以发送或接收的调试指令,从而完成调试过程。目前,已有ARM公司、MOTO公司开发出相应的在线调试器ICD调试方案。
下面以ARM公司开发ARM9基于JTAG端口的ICD程序调试方案对通用的在线调试器ICD方案进行说明。联合测试行动小组(JTAG,Joint TestAction Group)是一种国际标准测试协议(IEEE 1149.1兼容),通常所说的JTAG端口大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;另一类用于程序的调试(Debug);JTAG端口最初是用来对芯片进行测试的,但后来发现也可以用JTAG端口对程序进行调试。现在多数的高级器件都支持JTAG协议,如与JTAG端口兼容的器件可以是微处理器(MPU,micro-processing unit)、微控制器(MCU,micro-controlling unit)、可编程逻辑器件(PLD,programmable logic device)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、数字信号处理器(DSP,Digital signalprocessor)、特殊应用集成电路(ASIC,Application Specific Integrated Circuit)或其它符合IEEE1149.1规范的芯片。标准的JTAG端口是4线:调试模式选择(TMS,Test Mode Selection)信号、调试时钟输入(TCK,Test Clock Input)信号、调试数据串行输入(TDI,Test Data Input)信号、调试数据串行输出(TDO,Test Data Output)信号,只要通过调试时钟输入信号TCK和调试模式选择信号TMS的设置即可实现调试数据串行输入信号TDI和调试数据串行输出信号TDO的控制。调试时钟输入信号TCK用于输入调试时钟,调试时钟输入信号TCK上升沿时将数据通过调试数据串行输入信号TDI输入JTAG端口;调试时钟输入信号TCK下降沿数据通过调试数据串行输出信号TDO从JTAG端口输出;调试时钟输入信号TCK上升沿时调试模式选择信号TMS用来设置JTAG端口处于某种特定的调试模式,也就是选择对应的扫描链使扫描链对应的芯片与外界IO隔离开来,避免外界IO干扰,以对该扫描链对应的芯片进行数据输入输出,而扫描链在非调试状态下,对于芯片来说是透明的,并不影响芯片的正常工作。
图1为ARM9的ICD硬件调试的硬件连接示意图。
PC主机101作为调试主机(调试主机也可以是工控机、工作站),发出高层调试指令,如设置断点、设置观察点、访问内存等。
在线调试器ICD 102作为协议转换器,将调试主机发出的高层调试指令转换为底层的调试指令,这些指令再通过JTAG端口103就可以直接利用嵌入式ICE-RT 107与目标CPU106对话。在线调试器ICD102实际上在PC主机101和JTAG端口103之间架起一座桥梁,用于实现PC端高层调试指令与JTAG协议的转换,将PC端的并行数据转换为可通过JTAG端口传输的串行数据,例如将PC端的一次鼠标点击转换成JTAG端口传输的数据,并最终依据转换后的数据通过嵌入式ICE-RT107实现对CPU106的控制。
嵌入式实时在线电路仿真器(ICE-RT,In-Circuit Emulator-Realtime)107可以实现实时寻址、断点、单步以及对CPU 106的控制,使用边界扫描链和JTAG端口103与PC主机101交互信息,嵌入式ICE-RT107包括断点和观察点寄存器和比较器,断点和观察点寄存器分别用来存储断点和观察点的地址,而比较器则是将存储的断点和观察点地址与CPU106运行程序实时的数据地址进行比对,确定是否进入调试模式。嵌入式ICE-RT 107使运行的代码能够停下来以便调试,当遇到断点或观察点时,处理器停下来并进入调试状态。一旦进入调试状态,就可使用第一扫描链105强制指令进入指令流水线,检查处理器的寄存器。对所有寄存器的数据进行存储,将它们的值送到数据总线,在数据总线上再启用第一扫描链105、在线调试器ICD102转换后输送给PC主机101。在调试装置中可以通过特定的arm/thumb指令来读写CPU的内部寄存器和修改内存的内容。
测试接入端口(TAP,Test Access Port)控制器104,通过JTAG端口103的底层调试指令来控制和操作扫描链。在ARM中,第一扫描链105和第二扫描链108最常用,第一扫描链105设置在CPU 106的周围,通过第一扫描链105访问通用的寄存器和***存储空间,第二扫描链108设置在嵌入式ICE-RT107的周围,通过第二扫描链108来访问嵌入式ICE-RT107内部的寄存器。
利用图1所示的硬件连接进行ICD调试流程如图2所示,包括如下步骤:
步骤201:PC主机101产生高层调试指令(如设置断点)。
步骤202:ICD 102将该高层调试指令转换成JTAG端口103的调试模式选择信号TMS、调试时钟输入信号TCK、调试数据串行输入信号TDI、调试数据串行输出信号TDO并发送给TAP控制器104,这些信号组成可被ARM识别的底层调试指令。
步骤203:TAP控制器104根据调试模式选择信号TMS启用第二扫描链108,将第二扫描链108连接在调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间,并根据调试模式选择信号TMS和调试时钟输入信号TCK信号通过调试数据串行输入信号TDI对应的信号线将底层调试指令对应的数据(例如:断点地址)预先存储到嵌入式ICE-RT107的寄存器中。
步骤204:嵌入式ICE-RT107中对CPU 106在运行程序时产生的数据进行监控,并利用其内的一比较器将预先存储的数据与CPU 106在程序实时运行数据进行比对,当两者一致时,则进入程序调试。
步骤205:根据PC主机101产生的另一高层调试指令(如查看内存),经在线调试器ICD 102转换后产生底层调试指令,该底层调试指令经过TAP控制器104后将对应的第一扫描链105置于调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间,CPU 106运行程序产生的数据经过调试数据串行输出信号TDO对应的信号线输出到JTAG端口103,再由在线调试器ICD 102转换成可通过JTAG端口103输送到PC主机101的数据。
JTAG调试的关键就在于将所需要的指令寄存器或者数据寄存器至于调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间,然后通过调试模式选择信号TMS和调试时钟输入信号TCK信号来读写这些寄存器的内容,而调试的本质是通过设置这些寄存器的值来达到启动调试、设置断点、观察给定地址值等功能。如果要启用第二扫描链的话,在调试时钟输入信号TCK上升沿调试模式选择信号TMS信号有效时,首先将相应的指令写入到指令寄存器中,访问被该指令连接到调试数据串行输入信号TDI、调试数据串行输出信号TDO对应的信号线之间的扫描链选择寄存器,通过将“2”(扫描链标识)写入扫描链选择寄存器中,从而将第二扫描链连接在调试数据串行输入信号TDI、调试数据串行输出信号TDO对应的信号线之间。底层调试指令对应的地址通过调试数据串行输入信号TDI写入到对应的扫描链,该地址通过调试数据串行输出信号TDO从对应的寄存器中读出,以与CPU运行程序产生的地址进行比对。在进入调试模式后,底层调试指令对应的数据、地址、控制字通过调试数据串行输入信号TDI写入到对应的扫描链,之后,CPU根据这些数据、地址、控制字运行程序产生的对应数据、地址、控制字通过调试数据串行输出信号TDO输出。
在ICD调试方案中,必不可少的要用到在线调试器ICD,以将高端调试指令转换为调试端口(如JTAG端口)可传输的底层调试指令的专用ICD,必须通过PC→在线调试器ICD→JTAG端口→TAP控制器→扫描链→嵌入式ICE-RT→CPU的路径来进行调试指令;在调试过程中,将CPU运行程序产生的数据经过在线调试器ICD转换后在PC端呈现给调试者。由于这种在线调试器ICD的购置成本动辄万元,有的高达十几万元,从而使得程序开发的成本较高。另外,由于要使用这种专用在线调试器ICD连接在调试主机和调试目标之间,所以在调试目标的开发板上必须要设置对应的端口引线,增加了开发板得封装成本。
发明内容
本发明提供了一种嵌入式***及针对嵌入式***的硬件调试方法,可极大降低针对嵌入式***的硬件调试的成本。
为克服现有技术的上述缺陷,本发明提供了一种针对嵌入式***的程序调试方法,包括:
A1、嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
B1、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
C1、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与所述CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤D1;否则,继续执行步骤C1;
D1、所述CPU将程序实时运行产生的数据经协议转换后通过其通讯口传输给调试主机。
为克服现有技术的上述缺陷,本发明提供了另一种针对嵌入式***的程序调试方法,包括:
A2、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
B2、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
C2、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤D2,否则继续执行步骤C2;
D2、第一CPU将第二CPU程序实时运行产生的数据经协议转换后通过其通讯口输出到调试主机。
为克服现有技术的上述缺陷,本发明提供了又一种针对嵌入式***的程序调试方法,包括:
A3、嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器对来自调试主机的高层调试指令转换生成底层调试指令;
B3、数据选择开关选择来自嵌入式***外接的在线调试器生成的、经调试端口传输的底层调试指令,或者嵌入式***的CPU生成的底层调试指令至测试接入端口控制器;
C3、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
D3、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤E3;否则,继续执行步骤D3;
E3、将CPU程序实时运行产生的数据通过数据选择开关选择发送给所述CPU并通过所述CPU的通讯口传输给调试主机,或者发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机。
为克服现有技术的上述缺陷,本发明提供了又一种针对嵌入式***的程序调试方法,包括:
A4、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器对来自调试主机的高层调试指令转换为底层调试指令;
B4、数据选择开关选择来自嵌入式***的第一CPU或者嵌入式***外接的在线调试器生成的底层调试指令传输至测试接入端口控制器;
C4、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
D4、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤E4;否则,继续执行步骤D4;
E4、将第二CPU程序实时运行产生的数据通过数据选择开关选择发送给所述第一CPU经所述第一CPU协议转换后通过其通讯口传输给调试主机,或者经调试端口发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机。
为克服现有技术的上述缺陷,本发明提供了一种针对嵌入式***,包括:CPU、测试接入端口控制器和嵌入式实时在线电路仿真器;
所述CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;以及在程序进入调试模式后,将CPU上程序实时运行产生的数据通过其通讯口传输给调试主机;
测试接入端口控制器用于将底层调试指令对应的数据存储到嵌入式实时在线电路仿真器的寄存器中;
嵌入式实时在线电路仿真器用于将所述寄存器中预先存储的数据与CPU在实时程序运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
克服现有技术的上述缺陷,本发明还提供了一种针对嵌入式***,包括第一CPU、第二CPU、测试接入端口控制器和嵌入式实时在线电路仿真器:
所述第一CPU用于通过其通讯口接收来自嵌入式***外部调试主机的高层调试指令,并将其转换为底层调试指令;以及在进入调试模式后将第二CPU程序实时运行产生的数据进行协议转换后通过所述通讯口输出到调试主机;
所述测试接入端口控制器用于将底层调试指令对应的数据存储到嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器用于将预先存储在所述寄存器中的数据与第二CPU在程序实时运行数据进行比对,当两者一致时,则使程序进入调试模式。
为克服现有技术的上述缺陷,本发明还提供了一种针对嵌入式***,包括CPU、测试接入端口控制器、嵌入式实时在线电路仿真器、数据选择开关和调试端口;
所述CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令以及实时运行程序;
所述调试端口用于传输嵌入式***外接的在线调试器生成的底层调试指令;
所述数据选择开关用于选择来自嵌入式***外接在线调试器生成的、经调试端口传输的底层调试指令,或者所述CPU生成的底层调试指令至测试接入端口控制器;当进入调试模式时,所述数据选择开关选择将所述CPU程序实时运行产生的数据发送给所述CPU进行协议转换,并通过所述通讯口传输给调试主机;或者发送给嵌入式***外接在线调试器进行协议转换后传输给调试主机;
所述测试接入端口控制器将底层调试指令对应的数据预先存储到所述嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与所述CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
为克服现有技术的上述缺陷,本发明还提供了一种针对嵌入式***,包括第一CPU、第二CPU、测试接入端口控制器、嵌入式实时在线电路仿真器、数据选择开关和调试端口;
所述第一CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
所述调试端口用于传输嵌入式***外接的在线调试器生成的底层调试指令;
所述数据选择开关用于选择来自嵌入式***外接的在线调试器生成的、经调试端口传输的底层调试指令,或者所述第一CPU生成的底层调试指令至所述测试接入端口控制器;当进入调试模式时,数据选择开关选择将所述第二CPU程序实时运行产生的数据由第一CPU进行协议转换后经所述通讯口传输给调试主机,或者发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机;
所述测试接入端口控制器将底层调试指令对应的数据预先存储到所述嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
本发明中,通过嵌入式***本身的CPU将来自调试主机的高层调试指令转换为底层调试指令并通过其本身的通讯口传输给TAP控制器,并通过TAP控制器将进入调试模式对应的底层调试指令相对应数据预先存储TAP控制器中,并与CPU实时运行程序产生的数据进行比对,当两者一致时,则使程序进入调试模式。在调试的过程中,可以通过CPU本身的上述通讯口与调试主机进行数据的交互,而避免了使用外接的ICD即以对应的调试端口,从而降低了调试成本。
附图说明
图1为现有技术中ARM9的ICD硬件调试的硬件连接示意图;
图2为现有技术中利用图1所示的硬件连接进行ICD调试流程图;
图3为本发明实施例提供的针对单核嵌入式***的程序调试一流程图;
图4为本发明实施例提供的对单核嵌入式***进行调试的一硬件连接示意图;
图5为本发明实施例提供的针对单核嵌入式***的程序调试另一流程图;
图6为本发明实施例提供的针对单核嵌入式***的程序调试另一硬件连接示意图;
图7为本发明实施例提供的针对双核嵌入式***的程序调试一流程图;
图8为本发明实施例提供的针对双核嵌入式***进行硬件调试的一硬件连接示意图;
图9为本发明实施例提供的针对双核嵌入式***的程序调试另一流程图;
图10为本发明实施例提供的针对双核嵌入式***进行硬件调试的另一硬件连接示意图。
具体实施方式
为了克服ICD调试技术方案中的上述缺陷,本发明由嵌入式***的CPU通过其通讯口传输高层调试指令,并将该高层调试指令转换为底层调试指令。将该底层调试指令对应的数据存储到嵌入式ICE-RT的寄存器中,以与CPU上实时运行的程序产生的数据进行比对,确定是否进入调试模式;当两者数据一致时,使程序进入调试模式。之后,则可以将程序实时运行产生的数据经协议转换后通过CPU本身的调试口传输给调试主机。高层调试指令可以包括断点(breakpoint)设置、观察点(watching point)设置、单步执行(singlestepping)。CPU本身的通讯口可以包括通用异步接收/发送装置(UART、Universal Asynchronous Receiver/Transmitter)接口、以太网(ethernet)接口、通用串行总线(USB,Universal Serial Bus)接口等有线或其他无线通讯口。
为使本发明的技术原理、特点以及技术效果更加清楚,以下通过具体实施例进行详细阐述。
针对单核嵌入式***的程序调试方法和硬件连接示意图实施例
对于单核设备,由于只有一颗CPU,CPU既要被动的参与调试,又要主动的参与调试产生底层调试指令,因此,如果要依托扫描链来进行数据读写,则不能被启动CPU周围的扫描链,否则,会使CPU停止工作,从而也就无法使得CPU参与高层调试指令到底层调试指令的转换。
图3为本发明实施例提供的针对单核嵌入式***的程序调试一流程图。如图3所示,包括如下步骤:
步骤301:嵌入式***的CPU通过其通讯口接收来自PC主机的高层调试指令并将其转换为可被TAP控制器接收的底层调试指令。
现有技术中,由嵌入式***外接的在线电路仿真器接收调试主机的高层调试指令,并将其进行协议转换后生成底层调试指令,并通过对应的调试端口传输。本实施例中,直接利用参与程序调试的CPU本身的通讯口来接收来自调试主机的高层调试指令,并将由CPU将该高层调试指令直接转换为底层调试指令,避免了对嵌入式***外接ICD的依赖。
对于基于不同调试端口的嵌入式***调试方案来说,调试端口不同,对应的底层调试指令具体的体现也有不同。比如,对于两线(SBW,SPY-BI-WIRE)-JTAG端口来说,对应的底层调试指令可对应到调试时钟输入信号(SPY-BI-WIRE Test Clock Input,SBWTCK)以及调试数据串行输入/输出信号(SPY-BI-WIRE Test Data Input/output,SBWTDIO);对背景调试模式端口(BDM,Background Debugging Mode)来说,则可对应到调试时钟输入信号(DSCLK,debug serial clock),调试数据串行输入信号(DSI,debug serial input),调试数据串行输出信号(DSO,debug serialoutput)。对于串行线调试(SWD,Serial wire debug)端口来说,则可对应到:调试数据串行输入输出信号(SWDIO,Serial wire debug input/output)调试时钟输入信号(SWDCLK,Serial wire debug clock)。对于标准的JTAG端口来说,可对应到调试模式选择信号TMS、调试时钟输入信号TCK、调试数据串行输入信号TDI和调试数据串行输出信号TDO。底层调试指令对应的这些信号可通过其各自对应的信号线进行传输,并可存在对应的寄存器中。
本实施例中,对于基于JTAG端口来说,可以通过4条信号线分别传输调试模式选择信号TMS、调试时钟输入信号TCK、调试数据串行输入信号TDI和调试数据串行输出信号TDO,并将其分别存储到四个不同的寄存器中,以便于数据读写。相应的高层调试指令到底层调试指令的转换可结合具体应用在调试主机端的调试工具如GDB,参考国际标准测试协议IEEE 1149.1。
步骤302:TAP控制器将调试模式选择信号TMS信号对应的扫描链至于调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间。
步骤303:根据调试模式选择信号TMS、调试时钟输入信号TCK,通过调试数据串行输入信号TDI对应的信号线将底层调试指令对应的数据经该对应的扫描链存储到嵌入式ICE-RT的寄存器中;
为了控制嵌入式ICE-RT中数据的读写,在嵌入式ICE-RT周围可以设置有扫描链,利用该扫描链即可分别通过调试数据串行输出信号TDO、调试数据串行输入信号TDI对应的信号线对嵌入式ICE-RT中的数据进行读写。
本实施例中,底层调试指令对应的数据可以包括断点地址、观察点地址或内存访问地址,即可将底层调试指令所针对的程序运算对应的地址存储到嵌入式ICE-RT的寄存器。
步骤304:嵌入式ICE-RT中将预先存储的数据与CPU在程序实时运行数据进行比对,当两者一致时,则进入程序调试。
步骤304换言之,是嵌入式ICE-RT对CPU在运行程序时产生的数据进行监控的过程。如果嵌入式ICE-RT寄存器中预先存储的数据是底层调试指令对应的地址,将CPU在程序实时运行时的地址与预先存储的地址进行比对,当二者一致时,则使程序进入调试模式。
本实施例中,可以在嵌入式ICE-RT设置一比较器,利用该比较器来进行程序实时运行时的地址与预先存储的地址的比对。
步骤305:在进入调试模式后,CPU将运行程序产生的数据经过协议转换后通过其通讯口传输给PC主机。
现有技术中ICD程序调试方案中在程序进入调试模式后,当调试主机要读取CPU在程序实时运行产生的数据的话,需要启动CPU周围对应的扫描链,再根据底层调试指令对应的信号读取程序实时运行产生的数据,并将该数据通过TAP控制器、调试端口输出给嵌入式***外接的ICD,由嵌入式***外接的ICD进行协议转换后发送给调试主机。而本实施例中,进入调试模式后,CPU寄存器的数据送到数据总线,在经过与调试工具如GDB对应的协议转换后,利用CPU本身的通讯口与调试主机进行直接的数据传输,一方面避免了使用价格昂贵的外接ICD,降低了调试成本,另外一方面避免了使用调试端口,从而可以减少引线数量,降低封装成本。
图4为本发明实施例提供的对单核嵌入式***进行硬件调试的一硬件连接示意图。如图4所示,包括PC主机401,该单核嵌入式***包括CPU 402、TAP控制器403、扫描链404和嵌入式ICE-RT 405。
PC主机401作为调试主机发出高层调试指令,如设置断点、设置观察点、访问内存等。调试主机也可以是工控机、工作站。断点包括但不限于INT3断点、硬件断点、内存断点、消息断点、条件断点等。
CPU 402用于通过其通讯口接收来自PC主机401的高层调试指令并将其转换为可被TAP控制器103接收的底层调试指令;以及在进入调试模式后,将CPU上程序实时运行产生的数据经过对应的协议转换后通过其本身的通讯口传输给PC主机401。
TAP控制器403用于启动嵌入式ICE-RT406周围的扫描链404,将底层调试指令对应的数据(例如:断点地址、观察点地址或内存访问地址)存储到嵌入式ICE-RT406的寄存器中;
嵌入式ICE-RT 40用于将寄存器中预先存储的数据如地址与CPU在程序实时运行数据如地址进行比对,当两者一致时,使程序进入调试模式。
图5为本发明实施例提供的针对单核嵌入式***的程序调试另一流程图。本实施例中,为了便于调试人员灵活进行调试方案的选择,设置了一数据选择开关,通过该数据选择开关选择底层调试指令的来源。
步骤501、嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器ICD接收来自调试主机的高层调试指令并将其转换为底层调试指令;
步骤502、数据选择开关选择来自嵌入式***外接的ICD生成的、经调试端口传输的底层调试指令,或者嵌入式***的CPU生成的底层调试指令至TAP控制器;
步骤503、TAP控制器将底层调试指令对应的数据预先存储到嵌入式ICE-RT的寄存器中;
步骤504、嵌入式ICE-RT将其寄存器中预先存储的数据与CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤505;否则,继续执行步骤504;
步骤505、将CPU程序实时运行产生的数据通过数据选择开关选择发送给所述CPU进行协议转换后,并通过所述CPU的通讯口传输给调试主机,或者发送给嵌入式***外接的ICD进行协议转换后传输给调试主机。
本实施例中,数据选择开关可以通过设置一对应寄存器的存储数据来进行控制,比如,当寄存器存储的数据为0时,选择来自基于嵌入式***外接的在线调试器ICD和调试端口进行程序调试;当寄存器存储的数据为1时,选择基于嵌入式***本身的CPU及其通讯口进行程序调试。整个调试的其他详细内容可参见前述内容,在此不再赘述。
对应地,图6为本发明实施例提供的针对单核嵌入式***的程序调试另一硬件连接示意图,如图所示,包括PC主机601,该嵌入式***包括CPU602、TAP控制器603、嵌入式ICD-RT604、数据选择开关605、调试端口606、外接ICD607、第一扫描链609和第二扫描链608;
PC主机601作为调试主机,根据调试人员的设置产生高层调试指令。
CPU602用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令以及实时运行程序;
TAP控制器603用于启动第二扫描链608将底层调试指令对应的数据预先存储到嵌入式ICD-RT604的寄存器中,或者在进入调试模式后,启动第一扫描链609将CPU602实时运行程序产生的数据发送给嵌入式***外接ICD607;
数据选择开关605用于选择来自嵌入式***外接ICD生成的、经调试端口传输的底层调试指令,或者嵌入式***的CPU602生成的底层调试指令至TAP控制器603;当进入调试模式时,数据选择开关605选择将CPU602实时运行程序产生的数据发送给CPU602进行协议转换后,并通过CPU602的通讯口传输给PC主机601,或者启动第一扫描链609将CPU602实时运行程序产生的数据发送给嵌入式***外接ICD607进行协议转换后传输给PC主机601;
调试端口606用于传输嵌入式***外接ICD607生成的底层调试指令;
嵌入式ICE-RT604将其寄存器中预先存储的数据与CPU602在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
针对多核嵌入式***的程序调试方法和硬件连接示意图实施例
对于双核或者多核设备来说,可以使用非调试目标CPU参与高层调试指令到底层调试指令的转换,因此可以采用TAP控制器控制调试目标CPU周围的扫描链,实现调试数据的输入输出。双核或多核设备比如手机等手持型终端,家电如电视等大型设备。这些核之间可以是同类型、同功能的多对称多处理机(SMP,Symmetrical Multi-Processing),或者不同类型、不同功能的异构多处理机(HMP,Heterogeneous multi-processing)。
图7为本发明实施例提供的针对双核嵌入式***的程序调试一流程图。如图7所示,包括:
步骤701、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
本实施例中,嵌入式***的第一CPU本身的通讯口可以为通用异步接收/发送装置(UART,Universal Asynchronous Receiver/Transmitter)接口、以太网(ethernet)接口、通用串行总线(USB)接口等有线或其他无线通讯口。
本实施例中,对于基于JTAG端口来说,可以通过4条信号线分别传输调试模式选择信号TMS、调试时钟输入信号TCK、调试数据串行输入信号TDI和调试数据串行输出信号TDO,并在步骤702之前将其分别存储到四个不同的寄存器中,以供数据读取。
步骤702、TAP控制器根据调试模式选择信号TMS将嵌入式ICE-RT对应的扫描链置于调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间。
步骤703、TAP控制器根据调试模式选择信号TMS和调试时钟输入信号TCK,通过调试数据串行输入信号TDI、调试数据串行输出信号TDO将底层调试指令对应的数据预先存储到嵌入式ICE-RT的寄存器中。
步骤704、嵌入式ICE-RT将所述寄存器中预先存储的数据与第二CPU在程序实时运行的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤705,否则继续执行步骤704;
步骤705、TAP控制器将第二CPU对应的扫描链置于调试数据串行输入信号TDI和调试数据串行输出信号TDO对应的信号线之间;
步骤706、TAP控制器根据调试模式选择信号TMS和调试时钟输入信号TCK,通过调试数据串行输出信号TDO将第二CPU程序实时运行产生的数据输出到第一CPU;
步骤707、第一CPU将第二CPU程序实时运行产生的数据经协议转换后通过第一CPU的通讯口输出到调试主机。
与单核嵌入式***程序调试流程不同之处在于,由于双核嵌入式***具有两个处理机核,因此,可以选用其中第一CPU来进行高层调试指令到底层调试指令的转换;而第二CPU运行拟调试的程序而第二CPU并不像单核***那样,即负责指令转换,又要负责程序的运行,所以在依托扫描链来读写芯片内数据的过程中,则可以启动第二CPU周围的扫描链,使用扫描链强制指令进入指令流水线,检查第二CPU的寄存器,对所有寄存器的数据进行存储,将它们的值送到数据总线,在数据总线上再启用第二CPU周围的扫描链以实现通数据向调试主机的传输。
图8为本发明实施例提供的针对双核嵌入式***进行硬件调试的一硬件连接示意图,如图8所示,PC主机801作为调试主机发出高层调试指令。嵌入式***可以包括第一CPU802、TAP控制器803、第一扫描链804、第二扫描链805、嵌入式ICE-RT806和第二CPU807。
第一CPU 802用于接收来自PC主机801的高层调试指令,并将其转换为可被TAP控制器803接收的底层调试指令,以及在进入调试模式后将第二CPU802程序实时运行产生的数据进行协议转换后输出到PC主机801。该底层调试指令可以对应到基于JTAG端口的四线信号:分别传输调试模式选择信号TMS、调试时钟输入信号TCK、调试数据串行输入信号TDI和调试数据串行输出信号TDO。
TAP控制器803用于启动第一扫描链804和第二扫描链805,以分别访问第二CPU807的通用的寄存器和***存储空间来读写数据,访问嵌入式ICE-RT506内部的寄存器读写数据。
嵌入式ICE-RT806用于将预先存储在其寄存器中的数据与第二CPU807在程序实时运行数据进行比对,当两者一致时,则使程序进入调试模式。
图9为本发明实施例提供的针对双核嵌入式***的程序调试另一流程图。如图9所示,包括:
步骤901、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器ICD接收来自调试主机的高层调试指令并将其转换为底层调试指令;
步骤902、数据选择开关选择来自嵌入式***的第一CPU经其本身的通讯口,或者嵌入式***外接的ICD生成的底层调试指令经调试端口传输至TAP控制器;
步骤903、TAP控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
步骤904、嵌入式ICE-RT将其寄存器中预先存储的数据与第二CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤905;否则,继续执行步骤904;
步骤905、将第二CPU程序实时运行产生的数据通过数据选择开关选择发送给第一CPU进行协议转换,并经其通讯口传输给调试主机,或者经调试端口发送给嵌入式***外接的ICD进行协议转换后传输给调试主机。
图10为本发明实施例提供的针对双核嵌入式***进行硬件调试的另一硬件连接示意图。PC主机1001作为调试主机发出高层调试指令。嵌入式***包括:第一CPU1002、TAP控制器1003、第一扫描链1004、第二扫描链1005、嵌入式ICE-RT1006、第二CPU1007、数据选择开关1008、调试端口1009、外接的ICE1010。
第一CPU1002用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
调试端口1009用于传输嵌入式***外接的在线调试器ICD由高层调试指令转换生成的底层调试指令;
数据选择开关1008用于选择来自嵌入式***外接的ICD生成的、经调试端口1009传输的底层调试指令,或者嵌入式***的第一CPU1002生成的底层调试指令经其本身的通讯口至TAP控制器1003;当进入调试模式时,数据选择开关1008通过启动第一扫描链1004,并选择将第二CPU1007程序实时运行产生的数据发送给第一CPU1002进行协议转换,并经第一CPU1002通讯口传输给PC主机1001,或者经调试端口1009发送给嵌入式***外接的ICE1010进行协议转换后传输给PC主机1001;
TAP控制器通过启动嵌入式ICE-RT1006周围第二扫描链1005,将底层调试指令对应的数据预先存储到嵌入式ICE-RT1006寄存器中,以及在进入调试模式后启动第二CPU1007周围的第一扫描链1004读取第二CPU1007在程序实时运行时的数据,以输出给第一CPU1002。
嵌入式ICE-RT1006将其寄存器中预先存储的数据与第二CPU1007在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
双核嵌入式***中,负责高级调试指令到底层调试指令转化你的第一CPU也可以由微处理器MPU、微控制器MCU、数字信号处理器DSP等处理机核代替。
本发明的上述方案除了克服使用ICD测试导致程序开发成本较高等缺陷,还有可实现不拆机进行调试。由于大多数终端设备至少都具有USB口或者其他通讯口,所以,可以直接用该设备上配置的usb口与PC建立连接,而不需要拆机使用JTAG端口与在线调试器ICD连接,再与PC连接完成调试,降低了调试成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (23)

1.一种针对嵌入式***的程序调试方法,其特征在于,包括:
A1、嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
B1、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
C1、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与所述CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤D1;否则,继续执行步骤C1;
D1、所述CPU将程序实时运行产生的数据经协议转换后通过其通讯口传输给调试主机。
2.根据权利要求1所述的方法,其特征在于,所述通讯口为通用异步接收/发送装置接口、以太网接口或通用串行总线接口。
3.根据权利要求1所述的方法,其特征在于,所述底层调试指令包括:调试时钟输入信号,以及调试数据串行输入/输出信号。
4.根据权利要求3所述的方法,其特征在于,所述底层调试指令还包括:调试模式选择信号。
5.根据权利要求4所述的方法,其特征在于,所述步骤A1之后包括:将所述调试数据串行输入/输出信号、调试模式选择信号、调试时钟信号分别存储到对应的寄存器中。
6.根据权利要求5所述的方法,其特征在于,所述步骤B1之前包括:所述测试接入端口控制器调试模式选择信号将对应的扫描链置于调试数据串行输入信号和调试数据串行输出信号对应的信号线之间。
7.根据权利要求5所述的方法,其特征在于,所述步骤B1为:所述测试接入端口控制器根据调试模式选择信号和调试时钟输入信号,通过调试数据串行输入信号对应的信号线将底层调试指令对应的数据存储到嵌入式实时在线电路仿真器的寄存器中。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述底层调试指令对应的数据包括断点地址、观察点地址或内存访问地址。
9.一种针对嵌入式***的程序调试方法,其特征在于,包括:
A2、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
B2、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
C2、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤D2,否则继续执行步骤C2;
D2、第一CPU将第二CPU程序实时运行产生的数据经协议转换后通过其通讯口输出到调试主机。
10.根据权利要求9所述的方法,其特征在于,所述通讯口为通用异步接收/发送装置接口、以太网接口或通用串行总线接口。
11.根据权利要求9所述的方法,其特征在于,所述底层调试指令包括:调试时钟输入信号、调试数据串行输入信号/输出信号。
12.根据权利要求11所述的方法,其特征在于,所述底层调试指令还包括:调试模式选择信号。
13.根据权利要求12所述的方法,其特征在于,所述步骤A2之后包括:将所述调试时钟输入信号、调试数据串行输入信号、调试数据串行输出信号和调试模式选择信号分别存储到对应的寄存器中。
14.根据权利要求13所述的方法,其特征在于,所述步骤B2之前包括:测试接入端口控制器根据调试模式选择信号将嵌入式实时在线电路仿真器对应的扫描链置于调试数据串行输入信号和调试数据串行输出信号对应的信号线之间。
15.根据权利要求11所述的方法,其特征在于,所述B2步骤为:
测试接入端口控制器根据调试模式选择信号和调试时钟输入信号,通过调试数据串行输入信号、调试数据串行输出信号将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中。
16.根据权利要求11所述的方法,其特征在于,所述步骤D2之前包括:测试接入端口控制器将第二CPU对应的扫描链置于调试数据串行输入信号和调试数据串行输出信号对应的信号线之间;
所述步骤D2包括:测试接入端口控制器根据调试模式选择信号和调试时钟输入信号,通过调试数据串行输入信号、调试数据串行输出信号对应的信号线将第二CPU程序实时运行产生的数据输出到第一CPU。
17.根据权利要求9至16任一项所述的方法,其特征在于,所述底层调试指令对应的数据包括断点地址、观察点地址或内存访问地址。
18.一种针对嵌入式***的调试方法,其特征在于,包括:
A3、嵌入式***的CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器对来自调试主机的高层调试指令转换生成底层调试指令;
B3、数据选择开关选择来自嵌入式***外接的在线调试器生成的、经调试端口传输的底层调试指令,或者嵌入式***的CPU生成的底层调试指令至测试接入端口控制器;
C3、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
D3、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤E3;否则,继续执行步骤D3;
E3、将CPU程序实时运行产生的数据通过数据选择开关选择发送给所述CPU并通过所述CPU的通讯口传输给调试主机,或者发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机。
19.一种针对嵌入式***的调试方法,其特征在于,包括:
A4、嵌入式***的第一CPU通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令,和/或,嵌入式***外接的在线调试器对来自调试主机的高层调试指令转换为底层调试指令;
B4、数据选择开关选择来自嵌入式***的第一CPU或者嵌入式***外接的在线调试器生成的底层调试指令传输至测试接入端口控制器;
C4、测试接入端口控制器将底层调试指令对应的数据预先存储到嵌入式实时在线电路仿真器的寄存器中;
D4、嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式并执行步骤E4;否则,继续执行步骤D4;
E4、将第二CPU程序实时运行产生的数据通过数据选择开关选择发送给所述第一CPU经所述第一CPU协议转换后通过其通讯口传输给调试主机,或者经调试端口发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机。
20.一种嵌入式***,其特征在于,包括CPU、测试接入端口控制器和嵌入式实时在线电路仿真器;
所述CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;以及在程序进入调试模式后,将CPU上程序实时运行产生的数据通过其通讯口传输给调试主机;
测试接入端口控制器用于将底层调试指令对应的数据存储到嵌入式实时在线电路仿真器的寄存器中;
嵌入式实时在线电路仿真器用于将所述寄存器中预先存储的数据与CPU在实时程序运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
21.一种嵌入式***,其特征在于,包括第一CPU、第二CPU、测试接入端口控制器和嵌入式实时在线电路仿真器:
所述第一CPU用于通过其通讯口接收来自嵌入式***外部调试主机的高层调试指令,并将其转换为底层调试指令;以及在进入调试模式后将第二CPU程序实时运行产生的数据进行协议转换后通过所述通讯口输出到调试主机;
所述测试接入端口控制器用于将底层调试指令对应的数据存储到嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器用于将预先存储在所述寄存器中的数据与第二CPU在程序实时运行数据进行比对,当两者一致时,则使程序进入调试模式。
22.一种嵌入式***,其特征在于,包括CPU、测试接入端口控制器、嵌入式实时在线电路仿真器、数据选择开关和调试端口;
所述CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令以及实时运行程序;
所述调试端口用于传输嵌入式***外接的在线调试器生成的底层调试指令;
所述数据选择开关用于选择来自嵌入式***外接在线调试器生成的、经调试端口传输的底层调试指令,或者所述CPU生成的底层调试指令至测试接入端口控制器;当进入调试模式时,所述数据选择开关选择将所述CPU程序实时运行产生的数据发送给所述CPU进行协议转换,并通过所述通讯口传输给调试主机;或者发送给嵌入式***外接在线调试器进行协议转换后传输给调试主机;
所述测试接入端口控制器将底层调试指令对应的数据预先存储到所述嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与所述CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
23.一种嵌入式***,其特征在于,包括第一CPU、第二CPU、测试接入端口控制器、嵌入式实时在线电路仿真器、数据选择开关和调试端口;
所述第一CPU用于通过其通讯口接收来自调试主机的高层调试指令,并将其转换为底层调试指令;
所述调试端口用于传输嵌入式***外接的在线调试器生成的底层调试指令;
所述数据选择开关用于选择来自嵌入式***外接的在线调试器生成的、经调试端口传输的底层调试指令,或者所述第一CPU生成的底层调试指令至所述测试接入端口控制器;当进入调试模式时,数据选择开关选择将所述第二CPU程序实时运行产生的数据由第一CPU进行协议转换后经所述通讯口传输给调试主机,或者发送给嵌入式***外接的在线调试器进行协议转换后传输给调试主机;
所述测试接入端口控制器将底层调试指令对应的数据预先存储到所述嵌入式实时在线电路仿真器的寄存器中;
所述嵌入式实时在线电路仿真器将所述寄存器中预先存储的数据与第二CPU在程序实时运行时的数据进行比对,当两者一致时,则使程序进入调试模式。
CN201210081161.9A 2012-03-23 2012-03-23 一种针对嵌入式***的程序调试方法及嵌入式*** Expired - Fee Related CN102662835B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210081161.9A CN102662835B (zh) 2012-03-23 2012-03-23 一种针对嵌入式***的程序调试方法及嵌入式***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210081161.9A CN102662835B (zh) 2012-03-23 2012-03-23 一种针对嵌入式***的程序调试方法及嵌入式***

Publications (2)

Publication Number Publication Date
CN102662835A true CN102662835A (zh) 2012-09-12
CN102662835B CN102662835B (zh) 2015-10-28

Family

ID=46772332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210081161.9A Expired - Fee Related CN102662835B (zh) 2012-03-23 2012-03-23 一种针对嵌入式***的程序调试方法及嵌入式***

Country Status (1)

Country Link
CN (1) CN102662835B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218294A (zh) * 2013-04-16 2013-07-24 华为技术有限公司 一种嵌入式***的调试方法、调试转换装置和***
CN103729288A (zh) * 2013-11-01 2014-04-16 华中科技大学 一种嵌入式多核环境下应用程序的调试方法
CN104778116A (zh) * 2014-01-09 2015-07-15 深圳市中兴微电子技术有限公司 一种多断点的软件调试装置和方法
CN106776433A (zh) * 2016-12-15 2017-05-31 深圳市博巨兴实业发展有限公司 一种微控制器芯片中的调试单元
CN106935272A (zh) * 2015-12-31 2017-07-07 北京京存技术有限公司 开启eMMC后门调试的方法和装置
WO2018036559A1 (zh) * 2016-08-26 2018-03-01 华为技术有限公司 Jtag调试装置以及jtag调试方法
CN107861866A (zh) * 2017-09-30 2018-03-30 南京国睿中数电子科技有限公司 一种基于uart接口的嵌入式***调试方法
CN108628734A (zh) * 2017-03-21 2018-10-09 中兴通讯股份有限公司 一种功能程序调试方法和终端
CN109858621A (zh) * 2019-01-09 2019-06-07 深兰科技(上海)有限公司 一种卷积神经网络加速器的调试装置、方法及存储介质
CN110249316A (zh) * 2017-12-07 2019-09-17 深圳市汇顶科技股份有限公司 调试器以及芯片调试方法
CN111579974A (zh) * 2020-06-09 2020-08-25 中国电子科技集团公司第十四研究所 实现边界扫描测试的被测模块、嵌入式***及测试方法
CN111858205A (zh) * 2020-06-30 2020-10-30 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN112035346A (zh) * 2020-08-25 2020-12-04 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于嵌入式dsp操作***的自动化测试方法、***及介质
CN112416536A (zh) * 2020-12-10 2021-02-26 成都海光集成电路设计有限公司 提取处理器执行上下文的方法及处理器
CN112667456A (zh) * 2020-12-29 2021-04-16 西安富成防务科技有限公司 基于串口的人机交互调试方法
CN113626305A (zh) * 2021-06-23 2021-11-09 国网浙江省电力有限公司营销服务中心 一种非侵入式负荷识别算法的调试方法和调试***
CN115080478A (zh) * 2022-06-09 2022-09-20 苏州大学 嵌入式平台显示***
US11513980B2 (en) 2021-01-21 2022-11-29 Silicon Motion, Inc. Method and apparatus for performing access management of memory device with aid of universal asynchronous receiver-transmitter connection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978937A (en) * 1994-12-28 1999-11-02 Kabushiki Kaisha Toshiba Microprocessor and debug system
CN101174233A (zh) * 2006-11-01 2008-05-07 凌阳科技股份有限公司 一种嵌入式***的测试方法及***
CN102073009A (zh) * 2010-11-29 2011-05-25 杭州中天微***有限公司 一种基于片上闪存的***芯片jtag调试控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978937A (en) * 1994-12-28 1999-11-02 Kabushiki Kaisha Toshiba Microprocessor and debug system
CN101174233A (zh) * 2006-11-01 2008-05-07 凌阳科技股份有限公司 一种嵌入式***的测试方法及***
CN102073009A (zh) * 2010-11-29 2011-05-25 杭州中天微***有限公司 一种基于片上闪存的***芯片jtag调试控制方法

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218294B (zh) * 2013-04-16 2015-12-02 华为技术有限公司 一种嵌入式***的调试方法、调试转换装置和***
CN103218294A (zh) * 2013-04-16 2013-07-24 华为技术有限公司 一种嵌入式***的调试方法、调试转换装置和***
CN103729288A (zh) * 2013-11-01 2014-04-16 华中科技大学 一种嵌入式多核环境下应用程序的调试方法
CN103729288B (zh) * 2013-11-01 2016-02-24 华中科技大学 一种嵌入式多核环境下应用程序的调试方法
CN104778116B (zh) * 2014-01-09 2018-09-18 深圳市中兴微电子技术有限公司 一种多断点的软件调试装置和方法
CN104778116A (zh) * 2014-01-09 2015-07-15 深圳市中兴微电子技术有限公司 一种多断点的软件调试装置和方法
CN106935272A (zh) * 2015-12-31 2017-07-07 北京京存技术有限公司 开启eMMC后门调试的方法和装置
WO2018036559A1 (zh) * 2016-08-26 2018-03-01 华为技术有限公司 Jtag调试装置以及jtag调试方法
CN107783874A (zh) * 2016-08-26 2018-03-09 华为技术有限公司 Jtag调试装置以及jtag调试方法
CN106776433A (zh) * 2016-12-15 2017-05-31 深圳市博巨兴实业发展有限公司 一种微控制器芯片中的调试单元
CN108628734B (zh) * 2017-03-21 2023-03-28 中兴通讯股份有限公司 一种功能程序调试方法和终端
CN108628734A (zh) * 2017-03-21 2018-10-09 中兴通讯股份有限公司 一种功能程序调试方法和终端
CN107861866A (zh) * 2017-09-30 2018-03-30 南京国睿中数电子科技有限公司 一种基于uart接口的嵌入式***调试方法
CN110249316A (zh) * 2017-12-07 2019-09-17 深圳市汇顶科技股份有限公司 调试器以及芯片调试方法
CN109858621A (zh) * 2019-01-09 2019-06-07 深兰科技(上海)有限公司 一种卷积神经网络加速器的调试装置、方法及存储介质
CN111579974A (zh) * 2020-06-09 2020-08-25 中国电子科技集团公司第十四研究所 实现边界扫描测试的被测模块、嵌入式***及测试方法
CN111579974B (zh) * 2020-06-09 2021-09-03 中国电子科技集团公司第十四研究所 实现边界扫描测试的嵌入式***及测试方法
CN111858205B (zh) * 2020-06-30 2022-07-08 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN111858205A (zh) * 2020-06-30 2020-10-30 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN112035346A (zh) * 2020-08-25 2020-12-04 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于嵌入式dsp操作***的自动化测试方法、***及介质
CN112416536A (zh) * 2020-12-10 2021-02-26 成都海光集成电路设计有限公司 提取处理器执行上下文的方法及处理器
CN112416536B (zh) * 2020-12-10 2023-08-18 成都海光集成电路设计有限公司 提取处理器执行上下文的方法及处理器
CN112667456A (zh) * 2020-12-29 2021-04-16 西安富成防务科技有限公司 基于串口的人机交互调试方法
US11513980B2 (en) 2021-01-21 2022-11-29 Silicon Motion, Inc. Method and apparatus for performing access management of memory device with aid of universal asynchronous receiver-transmitter connection
TWI802113B (zh) * 2021-01-21 2023-05-11 慧榮科技股份有限公司 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器
CN113626305A (zh) * 2021-06-23 2021-11-09 国网浙江省电力有限公司营销服务中心 一种非侵入式负荷识别算法的调试方法和调试***
CN115080478A (zh) * 2022-06-09 2022-09-20 苏州大学 嵌入式平台显示***
CN115080478B (zh) * 2022-06-09 2023-10-27 苏州大学 嵌入式平台显示***

Also Published As

Publication number Publication date
CN102662835B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
CN102662835B (zh) 一种针对嵌入式***的程序调试方法及嵌入式***
US6675284B1 (en) Integrated circuit with multiple processing cores
US5978870A (en) On-chip parallel-serial data packet converter to interconnect parallel bus of integrated circuit chip with external device
US6125416A (en) Method and device for communicating across a chip boundary including a serial-parallel data packet converter having flow control logic
US5983379A (en) Test access port controller and a method of effecting communication using the same
CN107704346B (zh) Soc芯片调试方法及调试***
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
CN107992390B (zh) 一种基于片上总线的芯片调试方法
CN103714029A (zh) 新型二线同步通信协议及应用
CN106569416B (zh) 一种微控制器的串行接口与仿真调试接口复用方法及装置
EP0862115B1 (en) Trigger sequencing controller
JPH10253719A (ja) Tapコントローラを有する集積回路
CN102968364A (zh) 一种基于通用调试接口的SoC硬件调试器
CN100487668C (zh) 一种嵌入式处理器的调试方法
CN101840368A (zh) 多核处理器的jtag实时片上调试方法及其***
CN104077203A (zh) 一种可经由usb接口实现计算机硬件诊断的方法及装置
CN103049361A (zh) 具有嵌入式逻辑分析功能的fpga及逻辑分析***
CN109426594A (zh) 一种芯片调试装置、方法及计算机可读存储介质
US6041378A (en) Integrated circuit device and method of communication therewith
CN116610590A (zh) 基于zynq平台实现多片fpga远程调试方法及***
EP0840235B1 (en) Message protocol
WO2016184170A1 (zh) Smi接口器件的调试装置及方法、存储介质
CN106844118B (zh) 一种基于Tbus总线标准的片内总线测试***
CN113326670A (zh) 原型验证***、方法、处理单元、及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BEIJING SUNPLUS EHUE TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING BEIYANG ELECTRONIC TECHNOLOGY CO., LTD.

Effective date: 20140303

TA01 Transfer of patent application right

Effective date of registration: 20140303

Address after: Science and Industry Park, Taiwan, Hsinchu, China, No. 19-1

Applicant after: Lingyang Science and Technology Co., Ltd.

Applicant after: BEIJING SUNPLUS-EHUE TECHNOLOGY CO., LTD.

Address before: Science and Industry Park, Taiwan, Hsinchu, China, No. 19-1

Applicant before: Lingyang Science and Technology Co., Ltd.

Applicant before: Beijing Beiyang Electronic Technology Co., Ltd.

TA01 Transfer of patent application right
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151028

Termination date: 20160323

CF01 Termination of patent right due to non-payment of annual fee