CN114625580A - 一种基于arm swd调试协议的单线调试系统及方法 - Google Patents

一种基于arm swd调试协议的单线调试系统及方法 Download PDF

Info

Publication number
CN114625580A
CN114625580A CN202011443379.5A CN202011443379A CN114625580A CN 114625580 A CN114625580 A CN 114625580A CN 202011443379 A CN202011443379 A CN 202011443379A CN 114625580 A CN114625580 A CN 114625580A
Authority
CN
China
Prior art keywords
data
bit
debugging
bits
swd
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.)
Pending
Application number
CN202011443379.5A
Other languages
English (en)
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.)
Xiaohua Semiconductor Co ltd
Original Assignee
Huada Semiconductor 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 Huada Semiconductor Co ltd filed Critical Huada Semiconductor Co ltd
Priority to CN202011443379.5A priority Critical patent/CN114625580A/zh
Publication of CN114625580A publication Critical patent/CN114625580A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults

Abstract

本发明提供一种基于ARM SWD调试协议的单线调试系统及方法,包括调试器和调试目标;所述调试器和所述调试目标之间基于单线调试协议进行数据交互。本发明的基于ARM SWD调试协议的单线调试系统及方法能够实现调试器与调试目标之间的单线通信,从而减少调试期间对I/O资源的占用,极大地提升了调试的便利性。

Description

一种基于ARM SWD调试协议的单线调试系统及方法
技术领域
本发明涉及一种调试系统及方法,特别是涉及一种基于ARM SWD调试协议的单线调试系统及方法。
背景技术
ARM SWD(Serial Wire Debug)调试协议基于一个双线的串行接口,即通信时钟SWCLK 和双向数据SWDIO。现有技术中,如图1所示,基于ARM SWD协议的调试系统通常由调试目标、调试器和加载有集成开发环境(Integrated Development Environment,IDE)的上位机组成。通常调试目标为微控制单元(Microcontroller Unit,MCU);调试器采用通用调试器,如JLINK、ULINK等;上位机的IDE采用KEIL、IAR等。在调试时,调试器将上位机的调制指令转换为SWD协议,通过SWCLK和SWDIO对调试目标MCU进行调试控制、状态监测以及程序下载等操作。具体地,SWD协议的基本操作如表1所示。
表1、SWD协议的基本操作说明
Figure BDA0002823256640000011
基于SWD协议,调试器通过一系列的读写操作实现对调试目标MCU的调试控制。设定调试器为主机端Host,调试目标为从机端Target。如图2所示,调试器对调试目标进行写操作时,主机端发起8位数据包请求,数据包请求后,默认1位转换位,等待3位从机端 ACK,再加入1位转换位,主机端发送32位写数据以及1位校验位。如图3所示,调试器对调试目标进行读操作时,主机端发起8位数据包请求,数据包请求后,默认1位转换位,等待3位从机端ACK,从机端继续发送32位读数据和1位校验位,最后加入1位转换位。
然而,在上述基于ARM SWD协议进行调试期间,调试功能将一直占用MCU的普通I/O资源,进而挤占用户可使用的I/O资源,给调试带来不便。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于ARM SWD调试协议的单线调试系统及方法,能够实现调试器与调试目标之间的单线通信,从而减少调试期间对 I/O资源的占用,极大地提升了调试的便利性。
为实现上述目的及其他相关目的,本发明提供一种基于ARM SWD调试协议的单线调试系统,包括调试器和调试目标;所述调试器和所述调试目标的发送帧均依次包括1位开始位、2位控制位、N位数据位和1位停止位;其中N为自然数;在所述调试器进行写操作时,所述调试器将2位表示数据包请求的控制位和SWD写数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器,其中N=a+b,a和b为自然数;所述调试器判断ACK后,将2位表示为写数据的控制位、SWD写数据的N位数据编为一帧以将SWD写数据的4N位数据依次编为四帧,再将2位表示为写数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试目标,其中N=c+d,c和d为自然数。
于本发明一实施例中,在所述调试器进行读操作时,所述调试器将2位表示为数据包请求的控制位和SWD读数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标接收读请求后,将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器;所述调试器判断ACK后,继续接收所述调试目标的数据;所述调试目标将2位表示为读数据的控制位、SWD读数据的N位数据编为一帧以将SWD读数据的4N位数据依次编为四帧;将2位表示为读数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试器。
于本发明一实施例中,所述调试器的发送帧中,控制位为00表示N位数据位为写数据,控制位为11表示N位数据位为数据包请求;控制位为01表示N位数据位的前三位为ACK,控制位为10表示N位数据位为读数据。
于本发明一实施例中,所述调试器还用于在每次写操作和读操作之前,发送同步帧进行同步。
于本发明一实施例中,所述调试目标包括调试内核和调试控制模块;所述调试内核基于 ARM SWD协议进行数据读写;
当所述调试控制模块接收到的数据帧的控制位表示JTAG到SWD切换时,所述调试控制模块发送JTAG切换SWD的时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示复位时,所述调试控制模块发送复位时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示数据包请求时,所述调试控制模块提取所述数据帧的N个数据位并发送至所述调试内核,再将所述调试内核的ACK打包成帧发送至所述调试器;
当所述调试控制模块接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作;当判断进行写操作时,接收后续的五帧数据,并转换为SWD写数据的4N位数据和c位校验位发送至所述调试内核;当判断进行读操作时,将所述调试内核发送的SWD读数据的4N位数据和c位校验位转换为五帧数据发送至所述调试器。
于本发明一实施例中,所述调试目标为MCU,所述调试控制模块集成在所述MCU内。
于本发明一实施例中,还包括上位机,与所述调试器相连,用于发送调试命令至所述调试器;所述调试器根据所述调试命令与所述调试目标进行数据读写。
本发明提供一种基于ARM SWD调试协议的单线调试方法,包括:
设置调试器和调试目标的发送帧均依次包括1位开始位、2位控制位、N位数据位和1位停止位;其中N为自然数;
在所述调试器进行写操作时,所述调试器将2位表示数据包请求的控制位和SWD写数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器,其中N=a+b,a和b为自然数;所述调试器判断ACK后,将2位表示为写数据的控制位、SWD写数据的N位数据编为一帧以将SWD写数据的4N位数据依次编为四帧,再将2位表示为写数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试目标,其中N=c+d,c和d为自然数。
于本发明一实施例中,在所述调试器进行读操作时,所述调试器将2位表示为数据包请求的控制位和SWD读数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标接收读请求后,将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器;所述调试器判断ACK后,继续接收所述调试目标的数据;所述调试目标将2位表示为读数据的控制位、SWD读数据的N位数据编为一帧以将SWD读数据的4N位数据依次编为四帧;将2位表示为读数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试器。
于本发明一实施例中,所述调试目标包括调试内核和调试控制模块;所述调试内核基于 ARM SWD协议进行数据读写;
当所述调试控制模块接收到的数据帧的控制位表示JTAG到SWD切换时,所述调试控制模块发送JTAG切换SWD的时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示复位时,所述调试控制模块发送复位时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示数据包请求时,所述调试控制模块提取所述数据帧的N个数据位并发送至所述调试内核,再将所述调试内核的ACK打包成帧发送至所述调试器;
当所述调试控制模块接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作;当判断进行写操作时,接收后续的五帧数据,并转换为SWD写数据的4N位数据和c位校验位发送至所述调试内核;当判断进行读操作时,将所述调试内核发送的SWD读数据的4N位数据和c位校验位转换为五帧数据发送至所述调试器。
如上所述,本发明的基于ARM SWD调试协议的单线调试系统及方法,具有以下有益效果:
(1)实现了调试器与调试目标之间的单线通信,从而减少调试期间对I/O资源的占用;
(2)提升了调试期间I/O资源的利用率,便于调试。
附图说明
图1为现有技术中基于ARM SWD协议的调试系统于一实施例中的结构示意图;
图2为现有技术中基于ARM SWD协议的写操作于一实施例中的写操作时序图;
图3为现有技术中基于ARM SWD协议的读操作于一实施例中的读操作时序图;
图4为本发明的调试器的发送帧于一实施例中的结构示意图;
图5为本发明的调试目标的发送帧于一实施例中的结构示意图;
图6为本发明的同步帧于一实施例中的结构示意图;
图7为本发明的单线调试协议中写协议于一实施例中的示意图;
图8为本发明的单线调试协议中读协议于一实施例中的示意图;
图9为本发明的JTAG到SWD时序转换示意图;
图10为本发明的复位时序转换示意图;
图11为本发明的数据包请求时序转换示意图;
图12为本发明的写数据时序转换示意图;
图13为本发明的读数据时序转换示意图;
图14为本发明的基于ARM SWD调试协议的单线调试系统于一实施例中的调试过程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的基于ARM SWD调试协议的单线调试系统及方法在ARM SWD协议的基础上,能够实现调试器与调试目标之间的单线通信,减少了调试期间对I/O资源的占用,极大地提升了调试的便利性,极具实用性。在本发明中,所述调试器作为主机端,所述调试目标作为从机端,可以为MCU。
于一实施例中,本发明的基于ARM SWD调试协议的单线调试系统包括调试器和调试目标。在所述单线调试系统中,设定SWD数据的数据位为4N位,调试器和调试目标的发送帧的数据位为N位,ACK为a位,校验位为c位,其中N、a和c均为自然数。当发送帧发送 ACK或校验位时,在ACK后面用b位“0”补齐至N位数据位,在校验位后面用d位“0”补齐至N位数据位。故a+b=N,c+d=N。为了便于描述,下面的实施例中以N取值为8,a 取值为3,c取值为1为例进行说明。
如图4所示,所述调试器的发送帧依次包括1位开始位(Start)、2位控制位(Cmd[0:1])、 8位数据位(Data[0:7])和1位停止位(Stop)。其中,开始位Start必须为0。控制位Cmd[0:1] 取值为00代表Data[0:7]为写数据,取值为01代表JTAG到SWD切换,取值为10代表复位,取值为11代表Data[0:7]为数据包请求。数据位Data[0:7]表示写数据或数据包请求。停止位 Stop必须为1。其中,需要说明的是,发送帧的数据位的位数可以根据需求进行限定,优选采用8位数据位。
如图5所示,所述调试目标的发送帧依次包括1位开始位(Start)、2位控制位 (Cmd[0:1])、8位数据位(Data[0:7])和1位停止位(Stop)。其中,开始位Start必须为0。控制位Cmd[0:1]取值为00代表无效,取值为01代表Data[0:7]的前三位为ACK,取值为10 代表Data[0:7]为读数据,取值为11代表无效。数据位Data[0:7]表示写数据或数据包请求。停止位Stop必须为1。
于本发明一实施例中,每次写操作和读操作之前,所述调试器发送同步帧进行同步。当所述调试目标接收到同步帧后,通过计算同步数据的边沿间隔,调整波特率计数器,以达到同步的目的。所述同步帧如图6所示,包括连续14位0和8位01010101。优选地,所述调试器和所述调试目标的通信波特率为115200bps。
在所述调试器对所述调试目标进行写操作时,如图7所示,作为主机端的所述调试器将开始位、2位表示数据包请求的控制位和SWD写数据的8位数据包请求和停止位编为第一帧发送至作为从机端的所述调试目标。所述调试目标将开始位、2位表示为ACK的控制位、3 位ACK和5位0和停止位编为第二帧返回至所述调试器。所述调试器判断ACK后,将开始位、2位表示为写数据的控制位、SWD写数据的1个字节的8位数据和停止位编为一帧,重复四次后将SWD写数据的32位数据共编为四帧,最后再将开始位、2位表示为写数据的控制位、SWD写数据的1位校验位和7位0和停止位编为一帧,共五帧发送至所述调试目标,从而完成所述调试器对所述调试目标的写操作。
在所述调试器对所述调试目标进行读操作时,如图8所示,所述调试器将开始位、2位表示为数据包请求的控制位和SWD读数据的8位数据包请求和停止位编为第一帧发送至所述调试目标。所述调试目标接收所述数据包请求表示的读请求后,将开始位、2位表示为ACK 的控制位、3位ACK和5位0和停止位编为第二帧返回至所述调试器。所述调试器判断ACK后,继续接收所述调试目标的数据。所述调试目标将开始位、2位表示为读数据的控制位、SWD读数据的一个字节的8位数据和停止位编为一帧,重复四次后将SWD读数据的32位数据共编为四帧,最后再将开始位、2位表示为读数据的控制位、SWD写数据的1位校验位和7位0和停止位编为一帧,共五帧发送至所述调试器,从而完成所述调试器对所述调试目标的数据读取。
为了实现本发明的基于ARM SWD调试协议的单线调试,于本发明一实施例中,所述调试目标包括调试内核和调试控制模块HCDP。所述调试内核基于ARM SWD协议进行数据读写;所述调试控制模块HCDP用于实现基于ARM SWD协议的所述调试内核和采用单线调试协议的调试器之间的数据交换。
具体地,所述调试控制模块HCDP接收所述调试器发送来的数据帧,根据所述数据帧中控制位的信息来判断所需执行的操作。
(1)当所述调试控制模块HCDP接收到的数据帧的控制位为01时,表示JTAG到SWD切换,则所述调试控制模块HCDP发送如图9所示的JTAG切换SWD的时序至所述调试内核,以使所述调试内核执行对应的操作。此时,接收到的数据帧的数据位Data[0:7]将被忽略。
(2)当所述调试控制模块HCDP接收到的数据帧的控制位为10时,表示复位,则所述调试控制模块HCDP发送如图10所示的复位时序至所述调试内核,以使所述调试内核进行复位。此时,接收到的数据帧的数据位Data[0:7]将被忽略。
(3)当所述调试控制模块HCDP接收到的数据帧的控制位为11时,表示数据包请求,则如图11所示,所述调试控制模块HCDP提取所述数据帧的8个数据位并发送至所述调试内核。所述调试内核读取所述8个数据位,并生成ACK。所述调试控制模块HCDP再将所述调试内核的ACK打包成帧发送至所述调试器。其中,所述帧包括开始位、2位表示为ACK的控制位、3位ACK和5位0和停止位。
(4)当所述调试控制模块HCDP接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作。
如图12所示,当判断进行写操作时,所述调试控制模块HCDP接收所述调试器发送来的后续的五帧数据,并转换为SWD写数据的32位数据和1位校验位发送至所述调试内核。其中,所述五帧数据即为开始位、2位表示为写数据的控制位、SWD写数据的1个字节的8位数据和停止位编成的四帧,开始位、2位表示为写数据的控制位、SWD写数据的1位校验位和7位0和停止位编成的一帧。
如图13所示,当判断进行读操作时,所述调试控制模块HCDP将所述调试内核发送的 SWD读数据的32位数据和1位校验位转换为五帧数据发送至所述调试器。所述五帧数据为开始位、2位表示为读数据的控制位、SWD读数据的一个字节的8位数据和停止位编成的四帧,开始位、2位表示为读数据的控制位、SWD写数据的1位校验位和7位0和停止位编成的一帧。
于本发明一实施例中,所述调试目标为MCU,所述调试控制模块HCDP与MCU内核集成在所述MCU内。所述MCU内核通过所述调试控制模块HCDP进行复位、时钟同步、数据发送、数据接收等操作。其中,
于本发明一实施例中,本发明的基于ARM SWD调试协议的单线调试系统还包括上位机,与所述调试器相连,用于发送调试命令至所述调试器;所述调试器根据所述调试命令与所述调试目标进行数据读写,调试过程如图14所示。
在所述单线调试方法中,设定SWD数据的数据位为4N位,调试器和调试目标的发送帧的数据位为N位,ACK为a位,校验位为c位,其中N、a和c均为自然数。当发送帧发送 ACK或校验位时,在ACK后面用b位“0”补齐至N位数据位,在校验位后面用d位“0”补齐至N位数据位。故a+b=N,c+d=N。为了便于描述,下面的实施例中以N取值为8,a 取值为3,c取值为1为例进行说明。
于本发明一实施例中,本发明的基于ARM SWD调试协议的单线调试方法包括:
a)设置调试器和调试目标的发送帧均依次包括1位开始位、2位控制位、8位数据位和1 位停止位。
b)在所述调试器进行写操作时,所述调试器将2位表示数据包请求的控制位和SWD写数据的8位数据包请求编为第一帧发送至所述调试目标;所述调试目标将2位表示为ACK的控制位、3位ACK和5位0编为第二帧返回至所述调试器;所述调试器判断ACK后,将2 位表示为写数据的控制位、SWD写数据的8位数据编为一帧以将SWD写数据的32位数据依次编为四帧,再将2位表示为写数据的控制位、SWD写数据的1位校验位和7位0编为一帧,共五帧发送至所述调试目标。
c)在所述调试器进行读操作时,所述调试器将2位表示为数据包请求的控制位和SWD 读数据的8位数据包请求编为第一帧发送至所述调试目标;所述调试目标接收读请求后,将 2位表示为ACK的控制位、3位ACK和5位0编为第二帧返回至所述调试器;所述调试器判断ACK后,继续接收所述调试目标的数据;所述调试目标将2位表示为读数据的控制位、SWD读数据的8位数据编为一帧以将SWD读数据的32位数据依次编为四帧;将2位表示为读数据的控制位、SWD写数据的1位校验位和7位0编为一帧,共五帧发送至所述调试器。
于本发明一实施例中,所述调试目标包括调试内核和调试控制模块;所述调试内核基于ARM SWD协议进行数据读写;当所述调试控制模块接收到的数据帧的控制位表示JTAG到 SWD切换时,所述调试控制模块发送JTAG切换SWD的时序至所述调试内核;当所述调试控制模块接收到的数据帧的控制位表示复位时,所述调试控制模块发送复位时序至所述调试内核;当所述调试控制模块接收到的数据帧的控制位表示数据包请求时,所述调试控制模块提取所述数据帧的8个数据位并发送至所述调试内核,再将所述调试内核的ACK打包成帧发送至所述调试器;当所述调试控制模块接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作;当判断进行写操作时,接收后续的五帧数据,并转换为SWD写数据的32位数据和1位校验位发送至所述调试内核;当判断进行读操作时,将所述调试内核发送的SWD读数据的32位数据和1位校验位转换为五帧数据发送至所述调试器。
优选地,所述调试目标为MCU,所述调试控制模块集成在所述MCU内。
综上所述,本发明的基于ARM SWD调试协议的单线调试系统及方法实现了调试器与调试目标之间的单线通信,从而减少调试期间对I/O资源的占用;提升了调试期间I/O资源的利用率,便于调试。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种基于ARM SWD调试协议的单线调试系统,其特征在于:包括调试器和调试目标;所述调试器和所述调试目标的发送帧均依次包括1位开始位、2位控制位、N位数据位和1位停止位;其中N为自然数;
在所述调试器进行写操作时,所述调试器将2位表示数据包请求的控制位和SWD写数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器,其中N=a+b,a和b为自然数;所述调试器判断ACK后,将2位表示为写数据的控制位、SWD写数据的N位数据编为一帧以将SWD写数据的4N位数据依次编为四帧,再将2位表示为写数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试目标,其中N=c+d,c和d为自然数。
2.根据权利要求1所述的基于ARM SWD调试协议的单线调试系统,其特征在于:在所述调试器进行读操作时,所述调试器将2位表示为数据包请求的控制位和SWD读数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标接收读请求后,将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器;所述调试器判断ACK后,继续接收所述调试目标的数据;所述调试目标将2位表示为读数据的控制位、SWD读数据的N位数据编为一帧以将SWD读数据的4N位数据依次编为四帧;将2位表示为读数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试器。
3.根据权利要求1所述的基于ARM SWD调试协议的单线调试系统,其特征在于:所述调试器的发送帧中,控制位为00表示N位数据位为写数据,控制位为11表示N位数据位为数据包请求;所述调试目标的发送帧中,控制位为01表示N位数据位的前三位为ACK,控制位为10表示N位数据位为读数据。
4.根据权利要求1所述的基于ARM SWD调试协议的单线调试系统,其特征在于:所述调试器还用于在每次写操作和读操作之前,发送同步帧进行同步。
5.根据权利要求1所述的基于ARM SWD调试协议的单线调试系统,其特征在于:所述调试目标包括调试内核和调试控制模块;所述调试内核基于ARM SWD协议进行数据读写;
当所述调试控制模块接收到的数据帧的控制位表示JTAG到SWD切换时,所述调试控制模块发送JTAG切换SWD的时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示复位时,所述调试控制模块发送复位时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示数据包请求时,所述调试控制模块提取所述数据帧的N个数据位并发送至所述调试内核,再将所述调试内核的ACK打包成帧发送至所述调试器;
当所述调试控制模块接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作;当判断进行写操作时,接收后续的五帧数据,并转换为SWD写数据的4N位数据和c位校验位发送至所述调试内核;当判断进行读操作时,将所述调试内核发送的SWD读数据的4N位数据和c位校验位转换为五帧数据发送至所述调试器。
6.根据权利要求5所述的基于ARM SWD调试协议的单线调试系统,其特征在于:所述调试目标为MCU,所述调试控制模块集成在所述MCU内。
7.根据权利要求1所述的基于ARM SWD调试协议的单线调试系统,其特征在于:还包括上位机,与所述调试器相连,用于发送调试命令至所述调试器;所述调试器根据所述调试命令与所述调试目标进行数据读写。
8.一种基于ARM SWD调试协议的单线调试方法,其特征在于:包括:
设置调试器和调试目标的发送帧均依次包括1位开始位、2位控制位、N位数据位和1位停止位,其中N为自然数;
在所述调试器进行写操作时,所述调试器将2位表示数据包请求的控制位和SWD写数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器,其中N=a+b,a和b为自然数;所述调试器判断ACK后,将2位表示为写数据的控制位、SWD写数据的N位数据编为一帧以将SWD写数据的4N位数据依次编为四帧,再将2位表示为写数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试目标,其中N=c+d,c和d为自然数。
9.根据权利要求8所述的基于ARM SWD调试协议的单线调试方法,其特征在于:在所述调试器进行读操作时,所述调试器将2位表示为数据包请求的控制位和SWD读数据的N位数据包请求编为第一帧发送至所述调试目标;所述调试目标接收读请求后,将2位表示为ACK的控制位、a位ACK和b位0编为第二帧返回至所述调试器;所述调试器判断ACK后,继续接收所述调试目标的数据;所述调试目标将2位表示为读数据的控制位、SWD读数据的N位数据编为一帧以将SWD读数据的4N位数据依次编为四帧;将2位表示为读数据的控制位、SWD写数据的c位校验位和d位0编为一帧,共五帧发送至所述调试器。
10.根据权利要求8所述的基于ARM SWD调试协议的单线调试方法,其特征在于:所述调试目标包括调试内核和调试控制模块;所述调试内核基于ARM SWD协议进行数据读写;
当所述调试控制模块接收到的数据帧的控制位表示JTAG到SWD切换时,所述调试控制模块发送JTAG切换SWD的时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示复位时,所述调试控制模块发送复位时序至所述调试内核;
当所述调试控制模块接收到的数据帧的控制位表示数据包请求时,所述调试控制模块提取所述数据帧的N个数据位并发送至所述调试内核,再将所述调试内核的ACK打包成帧发送至所述调试器;
当所述调试控制模块接收完毕所述数据包请求时,根据所述数据包请求判断进行写操作或读操作;当判断进行写操作时,接收后续的五帧数据,并转换为SWD写数据的4N位数据和c位校验位发送至所述调试内核;当判断进行读操作时,将所述调试内核发送的SWD读数据的4N位数据和c位校验位转换为五帧数据发送至所述调试器。
CN202011443379.5A 2020-12-08 2020-12-08 一种基于arm swd调试协议的单线调试系统及方法 Pending CN114625580A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011443379.5A CN114625580A (zh) 2020-12-08 2020-12-08 一种基于arm swd调试协议的单线调试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011443379.5A CN114625580A (zh) 2020-12-08 2020-12-08 一种基于arm swd调试协议的单线调试系统及方法

Publications (1)

Publication Number Publication Date
CN114625580A true CN114625580A (zh) 2022-06-14

Family

ID=81895670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011443379.5A Pending CN114625580A (zh) 2020-12-08 2020-12-08 一种基于arm swd调试协议的单线调试系统及方法

Country Status (1)

Country Link
CN (1) CN114625580A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116860656A (zh) * 2023-08-30 2023-10-10 深圳市瑞之辰科技有限公司 基于KeilC的MCU调试方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116860656A (zh) * 2023-08-30 2023-10-10 深圳市瑞之辰科技有限公司 基于KeilC的MCU调试方法及系统

Similar Documents

Publication Publication Date Title
CN103714029B (zh) 新型二线同步通信协议及应用
CN112799992B (zh) 现场总线芯片架构
CN101788972A (zh) 一种数据传输的系统与方法
US20200142854A1 (en) Multilane heterogeneous serial bus
CN103581070B (zh) 一种卫星通信移动终端基带处理系统及其应用方法
CN105808396A (zh) 一种芯片调试装置、调试方法及soc芯片系统
CN110855996B (zh) 一种基于fpga的图像编解码与网络传输的方法与装置
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
CN107436851B (zh) 串行外设接口四线隔离系统及其控制方法
US20190356412A1 (en) Fast termination of multilane double data rate transactions
CN105446837A (zh) 检测iic接口器件是否连接的方法、装置以及系统
CN114625580A (zh) 一种基于arm swd调试协议的单线调试系统及方法
CN108199867A (zh) 一种有线传感器网络的组网方法及数据传输方法
CN112256615B (zh) Usb转换接口装置
US6332173B2 (en) UART automatic parity support for frames with address bits
CN109814816B (zh) 在can总线上增加打印日志的系统及方法
CN115454881A (zh) Risc-v架构的调试系统及调试方法
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
JP2010086318A (ja) デバッグシステム
CN111913899B (zh) 一种基于fsmc与fpga的uart拓展方法
CN114327975A (zh) 片上系统
Bai The windows serial port programming handbook
CN109213710B (zh) 高速串行接口装置与其数据传输方法
CN205139625U (zh) 基于fpga的hdlc收发控制器
CN114756498A (zh) 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220701

Address after: 201203 floor 10, block a, building 1, No. 1867, Zhongke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Xiaohua Semiconductor Co.,Ltd.

Address before: 201203 Floor 9, block a, No. 1867, Zhongke Road, Pudong New Area, Shanghai

Applicant before: HUADA SEMICONDUCTOR Co.,Ltd.

TA01 Transfer of patent application right