




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS35.240.01CCSL70BDTIT/BDT004—2024前言 2规范性引用文件 3术语和定义 4缩略语 25基本结构 25.1调试模块(DM) 25.2调试模块接口(DMI) 25.3调试传输模块(DTM) 35.4调试系统简易框图 36调试传输协议规范 36.1概述 36.2数据包格式 36.2.1NewPacket 36.2.2BypPacket 36.2.3数据包访问格式 46.3位定义 46.3.1位定义的判断依据 46.3.2速度模式 46.4调试接口寄存器 56.4.1调试接口寄存器类型 56.4.2能力寄存器(CPBR) 56.4.3配置寄存器(CFGR) 66.4.4影子配置寄存器(SHDWCFGR) 66.5配置实例 77调试模块 77.1调试操作 77.2调试模块寄存器类型 77.2.1概述 77.2.2数据寄存器0(data0) 87.2.3数据寄存器1(data1) 87.2.4调试模块控制寄存器(dmcontrol) 87.2.5调试模块状态寄存器(dmstatus) 97.2.6微处理器状态寄存器(hartinfo) 97.2.7抽象命令控制与状态寄存器(abstractcs) 97.2.8抽象命令寄存器(command) 7.2.9抽象命令自动执行寄存器(abstractauto) 7.2.10指令缓存寄存器(progbufx) T/BDT004—20247.2.11暂停状态寄存器(haltsum0) 7.2.12调试控制和状态寄存器(dcsr) 7.2.13调试模式程序指针(dpc) 7.3操作实例 附录A(资料性)配置实例 13A.1配置实例描述 A.1.1使能从机输出 A.1.2配置时基分频系数为1分频 A.1.3复位调试接口 附录B(资料性)操作实例 14B.1暂停微处理器 B.2恢复微处理器 B.3复位微处理器 B.3.1复位后微处理器重新运行 B.3.2复位后微处理器立即暂停 B.4复位调试模块 B.5读/写通用寄存器(GPR) B.5.1读GPR,以x16为例 B.5.2写GPR,以x16为例 B.6读/写控制和状态寄存器(CSR) B.6.1读CSR,以mepc为例,其CSR地址为0x341 B.6.2写CSR,以mepc为例,其CSR地址为0x341 B.7读/写存储器 B.7.1描述 B.7.2存储器读 B.7.3存储器写 B.8单步执行 B.9设置软件断点 参考文献 T/BDT004—2024本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由中国半导体行业协会提出并归口。本文件起草单位:南京沁恒微电子股份有限公司、东南大学、南京大学、中国科学院软件研究所、宏晶微电子科技股份有限公司、深圳前沿标准技术服务有限公司。本文件主要起草人:杨勇、李天培、阙庆河、凌明、杜力、邢明杰、张宏达、何睿、刘伟、宇伟。1T/BDT004—2024RISC-V单线调试接口技术要求本文件规定了RISC-V单线调试接口的调试传输协议,调试模块及其操作方法。本文件适用于RISC-V单线调试的规范和对微处理器的在线调试。2规范性引用文件本文件没有规范性引用文件。3术语和定义下列术语和定义适用于本文件。3.1调试模块debugmodule可实现抽象的调试操作和特定实现转换的模块,能够实现微处理器的暂停和运行,可通过抽象命令、programbuffer部署指令等方式访问微处理器的GPRs、CSRs、储存器、外部设备等。3.2调试模块控制寄存器dmcontrol用于控制调试模块及当前选定内核的一种寄存器。3.3调试模块状态寄存器dmstatus用于指示调试模块及当前选定内核状态的一种寄存器3.4微处理器状态寄存器hartinfo用于向调试主机提供微处理器的信息的一种只读寄存器。3.5抽象命令控制与状态寄存器abstractcs用于指示抽象命令执行的情况的一种寄存器,调试主机可通过读取该寄存器,了解上一个抽象命令是否执行完毕,并且可检查抽象命令执行过程中是否产生错误以及错误的类型。3.6抽象命令寄存器command调试主机可通过抽象命令寄存器中写入不同的配置值,生成对应的抽象命令,实现对寄存器及存储器的访问。3.7抽象命令自动执行寄存器abstractauto用于配置抽象命令自动执行的一种寄存器,当对调试模块的progbufx和datax进行读写时,抽象命令可再次被执行。3.8指令缓存寄存器progbufx用于存放任意指令,部署相应操作的一种寄存器,最后一条执行需要是“ebreak”或者“c.ebreak”。3.9暂停状态寄存器haltsum0用于指示微处理器是否暂停,每一位指示一个微处理器的暂停状态的一种寄存器,当只有一个核时,仅用该寄存器最低位表示。2T/BDT004—20243.10调试控制和状态寄存器dcsr用于控制和指示调试模式下的动作和状态的一种寄存器。3.11调试模式程序指针dpc用于保存微处理器进入调试模式之后将要执行的下一条指令的地址的一种寄存器。3.12读/写通用寄存器GPR抽象命令支持对微处理器进行读写的一种通用寄存器。3.13读/写控制和状态寄存器CSR抽象命令支持对微处理器进行读写的控制和状态寄存器。4缩略语下列缩略语适用于本文件。abstractauto:抽象命令自动执行(abstractcommandautoexec)abstractcs:抽象命令状态寄存器(abstractcontrolandstatusregister)CFGR:配置寄存器(configurationregister)CPBR:能力寄存器(capabilityregister)command:抽象命令寄存器(abstractcommandregister)DM:调试模块(DebugModule)DMI:调试模块接口(DebugModuleInterface)DTM:调试传输模块(DebugTransportModule)data0:数据寄存器0(dataregister0)data1:数据寄存器1(dataregister1)dcsr:调试控制和状态寄存器(debugcontrolandstatusregister)dmcontrol:调试模块控制寄存器(debugmodulecontrolregister)dmstatus:调试模块状态寄存器(debugmodulestatusregister)dpc:调试模式程序指针(debugPC)haltsum0:暂停状态寄存器(haltsummary0)hartinfo:微处理器状态寄存器(hartinforegister)progbufx:指令缓存寄存器(programbufferx)RISC:精简指令集(ReducedInstructionSetComputer)RISC-V:第五代精简指令集(FifthgenerationReducedInstructionSetComputing)SHDWCFGR:影子配置寄存器(shadowconfigurationregister)5基本结构5.1调试模块(DM)5.1.1调试模块应用于实现抽象的调试操作和特定实现之间的转换。调试模块是称为调试模块接口(DMI)的总线的从设备,总线主设备是调试传输模块(DTM)。5.1.2调试模块可实现微处理器的暂停、复位、恢复等功能。5.1.3调试模块应通过单线调试接口和调试传输设备通讯。5.1.4应通过DMI访问DM寄存器,通过寄存器的访问完成整个调试过程。5.2调试模块接口(DMI)3T/BDT004—2024调试模块接口可以是包含一个主总线和一个从总线的普通总线,也可以使用功能更齐全的总线,DMI应使用7到32个地址位,它支持读写操作。5.3调试传输模块(DTM)5.3.1调试传输模块通过一种或多种传输方式(例如:JTAG或者USB)对调试模块提供访问。5.3.2调试传输设备和调试主机应使用接口通讯,并通过单线接口和调试模块通讯,以控制和查询微处理器状态,实现调试功能。示例框图见5.4。5.3.3可通过抽象命令或者ProgramBuffer的方式访问处理器内部,处理器内部包括:a)通用寄存器(GPRs);b)控制状态寄存器(CSRs);c)存储器或映射为特定功能的外设等。5.4调试系统简易框图以支持RISC-V单线调试的微处理器为例。见图1所示。图1调试系统框图6调试传输协议规范6.1概述6.1.1调试传输设备和调试模块之间应采用单线传输的方式进行通讯。6.1.2传输协议定义了访问调试模块相关寄存器的数据包格式,其结构应符合6.2的格式要求。6.2数据包格式6.2.1NewPacketNewPacket结构组成应符合以下要求:d)1bit起始位,固定为数据1;e)7bit地址位,设置访问寄存器地址,MSB优先;f)1bit读写控制位,1主机写,0主机读;g)32bit数据,MSB优先;h)1bit偶校验位,该位为可选数据位,若数据位最后一位后直接发送停止符,则不进行校验位传输。6.2.2BypPacket4T/BDT004—2024BypPacket结构组成应符合以下要求:a)1bit起始位,固定为数据0;b)32bit数据位,MSB优先,读写位和寄存器地址与最近一次的NewPacket传输相同;c)1bit偶校验位,该位为可选数据位,若数据位最后一位后直接发送停止符,则不进行校验位传输。6.2.3数据包访问格式对调试模块寄存器操作应按照图2所示格式进行访问。NewPacket和BypPacket组合实现对某个寄存器的读写,连续读或写等操作。图2数据包格式6.3位定义6.3.1位定义的判断依据单线接口应使用电平的高低和持续时间来表示数据位、停止位。总线空闲时为高电平,当总线低电平持续一定时间,应表示复位信号。6.3.2速度模式6.3.2.1快速模式1X设从机调试接口时钟周期为T,时序应如图3所示:a)停止位:持续高电平10T,将产生停止位;b)数据1:低电平时间(T,2T),高电平时间(T,8T);c)数据0:低电平时间(4T,32T),高电平时间(T,8T)。图3快速模式信号时序6.3.2.2普通模式2X设从机调试接口时钟周期为T,时序应如图4所示,该模式为复位后默认模式:a)停止位:持续高电平18T,将产生停止位;b)数据1:低电平时间(T,4T),高电平时间(T,16T);c)数据0:低电平时间(6T,64T),高电平时间(T,16T)。5T/BDT004—2024图4中速模式信号时序6.4调试接口寄存器6.4.1调试接口寄存器类型6.3.2中规定的调试接口速度模式及使能应由相关寄存器进行配置。寄存器应使用7位地址进行编码,分类见表1。表1调试接口寄存器6.4.2能力寄存器(CPBR)能力寄存器定义应符合表2规定。位0009080:调试从机不具有CRC8校验功能,仅偶校0006T/BDT004—2024表2能力寄存器(CPBR)6.4.3配置寄存器(CFGR)配置寄存器定义应符合表3规定。表3配置寄存器(CFGR)位00009080:调试从机不具有CRC8校验功能,仅偶校00006.4.4影子配置寄存器(SHDWCFGR)影子配置寄存器定义应符合表4规定。表4影子配置寄存器(SHDWCFGR)位00007T/BDT004—2024位9080:调试从机不具有CRC8校验功能,仅偶校00006.5配置实例6.5.1主机可通过6.4.3中规定的配置寄存器CFGR和6.4.4中规定的影子配置寄存器SHDWCFGR,配合设置调试接口的能力,并通过6.4.2中定义的能力寄存器CPBR查询是否生效。6.5.2设置时应先设置SHDWCFGR对应位,再将CFGR对应位域置位,即可设置影子配置寄存器的对应配置位生效,其他配置位不变。6.5.3相关实例详见附录A。7调试模块7.1调试操作流程调试模块能执行调试主机下发的调试操作,包括:a)通过调试接口访问寄存器;b)通过调试接口可使微处理器复位、暂停、恢复;c)通过调试接口读写存储器、指令寄存器以及外部设备;d)通过调试接口可部署多条任意指令;7.2调试模块寄存器类型7.2.1概述7.2.1.1调试模块内部寄存器应使用7位地址编码。7.2.1.2微处理器内部实现了以下寄存器,调试模块寄存器种类应符合表5的规定。表5调试模块寄存器列表8T/BDT004—20247.2.1.3调试主机可通过配置dmcontrol寄存器控制微处理器的暂停、恢复、复位等,也可通过command寄存器触发调试模块生成抽象命令。7.2.1.4RISC-V标准定义三种抽象命令类型:访问寄存器、快速访问、访问存储器。7.2.1.5调试模块内部实现了八个指令缓存寄存器progbuf0-7,调试主机可向缓冲区缓存多条指令(可以是压缩指令可选择执行完抽象命令后继续执行指令缓存寄存器中的指令,也可直接执行缓存的指令。7.2.1.6progbufs中指令小于32字节,则需要最后一条指令是一条“ebreak”或“c.ebreak”指令,若指令填满32字节,调试模块自动添加一条“ebreak”指令。调试主机也可通过抽象命令和progbufs中缓存的指令,实现储存器、外设等的访问。7.2.2数据寄存器0(data0)数据寄存器0的定义应符合表6规定。表6data0寄存器定义位07.2.3数据寄存器1(data1)数据寄存器1的定义应符合表7规定。表7data1寄存器定义位07.2.4调试模块控制寄存器(dmcontrol)调试主机向对应的字段写数据,即可实现5.2.4中调试模块对寄存器的暂停(haltreq)、复位(ndmreset)、恢复(resumereq)的功能。各位描述应符合表8规定。表8dmcontrol寄存器定义位0000010009T/BDT004—2024位7.2.5调试模块状态寄存器(dmstatus)描述应符合表9规定。表9dmstatus寄存器定义位00000000009080707.2.6微处理器状态寄存器(hartinfo)各个位描述应符合表10规定。表10hartinfo寄存器定义位00数据寄存器data0偏移地址,其基地址为7.2.7抽象命令控制与状态寄存器(abstractcs)详细描述应符合表11的规定。表11abstractcs寄存器定义T/BDT004—2024位0表示programbuffer程000abstractcs、abstractauto寄存器进行写或者100:微处理器未暂停或不可用,而不能执行抽007.2.8抽象命令寄存器(command)调试操作应符合7.1中的b)说明。当对寄存器访问时command寄存器各位定义应符合表12规定。表12访问寄存器时command寄存器定义位000000write007.2.9抽象命令自动执行寄存器(abstractauto)该寄存器的描述应符合表13规定。表13abstractauto寄存器定义T/BDT004—2024位若某位置1,相应对progbufx的读写将导致command寄存器中抽象命令再次被执行00将导致command寄存器中的抽象命令再次07.2.10指令缓存寄存器(progbufx)当progbufx共8个,能够存储共32B字节指令,当不满32B时,需要最后一条指令是“break”指令,当存满32B时,模块自动在最后添加“ebreak”指令。寄存器定义应符合表14规定。表14progbuf寄存器定义位07.2.11暂停状态寄存器(haltsum0)寄存器定义应符合表15规定。表15haltsum0寄存器定义位0007.2.12调试控制和状态寄存器(dcsr)详细描述应符合表16规定。表16dcsr寄存器定义位0:机器模式下的ebreak指令的行为如特权1:机器模式下的ebreak指令能够进入调试000:用户模式下的ebreak指令的行为如特权1:用户模式下的ebreak指令能够进入调试00090进入调试的原因001:以ebreak指令方式进010:以triggermodule形式进入调试(优0T/BDT004—2024位011:以暂停请求形式进入调试(优先级为100:以单步调试形式进入调试(优先级为101:微处理器复位之后直接停止进入调试模02007.2.13调试模式程序指针(dpc)7.2.13.1dpc寄存器定义dpc寄存器定义描述应符合表17规定。表17dpc寄存器定义位07.2.13.2dpc更新规则更新规则应符合表18规定。表18dpc更新规则7.3操作实例调试主机发起暂停、恢复、复位等读写寄存器,推荐的操作流程,相关实例见附录B。T/BDT004—2024配置实例A.1配置实例描述A.1.1使能从机输出a)设置SHDWCFGR为0x5AA50400,将影子配置寄存器输出使能位置1;b)设置CFGR为0x5AA50400,将影子配置寄存器输出使能位更新至配置寄存器,配置寄存器其他位不变。A.1.2配置时基分频系数为1分频a)设置SHDWCFGR为0x5AA50000,设置影子配置寄存器TDIVCFG为0b00;b)设置CFGR为0x5AA50003,将影子配置寄存器TDIVCFG位域更新至配置寄存器,配置寄存器中其他位不变。A.1.3复位调试接口IO_FREE模式下,复位时序为总线拉低超过32倍的时基,且不管何种模式下,总线拉低超过256倍时基时,固定可将调试接口复位。复位后速度改为两分频模式,即普通模式2x。不同的硬件平台调试接口时钟可能不同,例如CH32V003默认为内部高速时钟24MHz的3分频为其时钟,即8MHz。T/BDT004—2024(资料性)操作实例B.1暂停微处理器该流程应用于将微处理器暂停,步骤如表B.1所示。表B.1微处理器暂停流程值获取调试模块状态信息,检查rdata[9:8],如值为0b11,则表示处理器正常进入暂停状态,否则表示未进入暂停状B.2恢复微处理器该流程应用于将处于暂停的微处理器恢复,步骤如表B.2所示。表B.2微处理器恢复流程值获取调试模块状态信息,检查rdata[17:16],如值为B.3复位微处理器B.3.1复位后微处理器重新运行如表B.3所示。表B.3微处理器复位并运行流程值获取调试模块状态信息,检查rdata[19:18],如值为获取调试模块状态信息,检查rdata[19:18],如值为B.3.2复位后微处理器立即暂停如表B.4所示。表B.4微处理器复位后继续暂停流程值T/BDT004—2024值获取调试模块状态信息,检查rdata[19:18],如值为获取调试模块状态信息,检查rdata[19:18],如值为B.4复位调试模块该流程应用于复位调试模块,详细如表B.5所示。表B.5调试模块复位流程值检查rdata[1]是否为0b0,如果是则复位成功,否则复B.5读/写通用寄存器(GPR)B.5.1读GPR,以x16为例如表B.6所示。表B.6读GPR流程值检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令执行;检查rdata[10:8],即cmderr值是否为0b000,如果是,则抽象命令执行正常,否则抽象命令执行错误,根B.5.2写GPR,以x16为例如表B.7所示。表B.7写GPR流程值T/BDT004—2024值wdata检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令执行;检查rdata[10:8],即cmderr值是否为0b000,如果是,则抽象命令执行正常,否则抽象命令执行错误,根据B.6读/写控制和状态寄存器(CSR)B.6.1读CSR,以mepc为例,其CSR地址为0x341如表B.8所示。表B.8读CSR流程值检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令执行;检查rdata[10:8],即cmderr值是否为0b000,如果是,则抽象命令执行正常,否则抽象命令执行错误,根据错误B.6.2写CSR,以mepc为例,其CSR地址为0x341如表B.9所示。表B.9写CSR流程值wdata设置抽象命令,将Data0数据拷贝至CSR0x341寄存检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令执行;检查rdata[10:8],即cmderr值是否为0b000,如果是,则抽象命令执行正常,否则抽象命令执行错B.7读/写存储器B.7.1描述微处理器的调试模块可通过抽象命令访问寄存器和存储器,可利用抽象命令和预置progbufx指令的方式,对某存储器地址进行读写。B.7.2存储器读T/BDT004—2024针对FLASH、RAM、MCU外设寄存器等,均可采用存储器读方式读取数据。以地址0x20000000为例。如表B.10所示。表B.10读存储器流程值wcode将待执行的指令机器码wcode写入progbuf0,例如设置抽象命令,将Data0数据拷贝至x5寄存器,并检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令0b000,如果是,则抽象命令执行正常,否则抽象命令检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令0b000,如果是,则抽象命令执行正常,否则抽象命令读出Data0数据rdata,即为0x20000000地址值。需要注意该方法操作了寄存器值,操作前应保存相应寄B.7.3存储器写B.7.3.1针对RAM、MCU外设寄存器等可直接按照如下流程进行写。B.7.3.2针对FLASH写,需要按照不同芯片的FLASH控制器要求对其寄存器按步骤进行操作编程。如表B.11所示。表B.11写存储器流程值wcode将待执行的指令机器码wcode写入progbuf0,例如wdata检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令执行;检查rdata[10:8],即cmderr值是否为0b000,如果是,则抽象命令执行正常,否则抽象命令执行错wdata将待写入数据wdata,写入Data设置抽象命令,将Data0数据写入x7寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (二模)晋中市2025年高三高考二模 语文试卷(含A+B卷答案详解)
- 2.2声音的特性说课稿2025年初中人教版物理八年级上册
- 微整顾客协议书
- 需求导向性干预下行无缝隙护理在腹腔镜子宫肌瘤剔除术围术期的干预效果分析
- 住宅装修设计协议
- 文化创意产业内容创新与市场推广方案
- 商业房产交易居间合同范本
- 提升客户满意度服务质量方案
- 提高客户服务质量与满意度的实施方案
- 产品设计与生产制造委托协议
- 2025年儿科常见面试题及答案
- 数学-湖北省武汉市2025届高中毕业生二月调研考试(武汉二调)试题和解析
- 【公开课】同一直线上二力的合成+课件+2024-2025学年+人教版(2024)初中物理八年级下册+
- 学术英语智慧树知到答案2024年南开大学
- 【部编版道德与法治六年级下册】全册测试卷(含答案)
- GB/T 10752-2005船用钢管对焊接头
- 酒店游泳池系统维保合同
- 现代商业空间展示设计ppt
- 高家堡副井井筒壁座施工安全技术措施
- 世界贸易组织(WTO课件(25页PPT)
- FMEA第五版表格(实例)
评论
0/150
提交评论