版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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优先;4T/BDT004—2024h)1bit偶校验位,该位为可选数据位,若数据位最后一位后直接发送停止符,则不进行校验位传输。6.2.2BypPacketBypPacket结构组成应符合以下要求: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规定。表2能力寄存器(CPBR)位0009080:调试从机不具有CRC8校验功能,仅偶校006T/BDT004—2024位06.4.3配置寄存器(CFGR)配置寄存器定义应符合表3规定。表3配置寄存器(CFGR)位00009080:调试从机不具有CRC8校验功能,仅偶校00006.4.4影子配置寄存器(SHDWCFGR)影子配置寄存器定义应符合表4规定。表4影子配置寄存器(SHDWCFGR)位0007T/BDT004—2024位09080:调试从机不具有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寄存器定义位00000109T/BDT004—2024位007.2.5调试模块状态寄存器(dmstatus)描述应符合表9规定。表9dmstatus寄存器定义位00000000009080707.2.6微处理器状态寄存器(hartinfo)各个位描述应符合表10规定。表10hartinfo寄存器定义位00数据寄存器data0偏移地址,其基地址为7.2.7抽象命令控制与状态寄存器(abstractcs)详细描述应符合表11的规定。T/BDT004—2024表11abstractcs寄存器定义位0表示programbuffer程000abstractcs、abstractauto寄存器进行写或者100:微处理器未暂停或不可用,而不能执行抽007.2.8抽象命令寄存器(command)调试操作应符合7.1中的b)说明。当对寄存器访问时command寄存器各位定义应符合表12规定。表12访问寄存器时command寄存器定义位000000write007.2.9抽象命令自动执行寄存器(abstractauto)该寄存器的描述应符合表13规定。T/BDT004—2024表13abstractauto寄存器定义位若某位置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指令方式进0T/BDT004—2024位010:以triggermodule形式进入调试(优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寄存器,并设置抽象命令执行完毕后自动执行progbuT/BDT004—2024值检查rdata[12],即查询busy位是否为0b1,如果是,则表示抽象命令正在执行,否则表示无抽象命令0b000,如果是,则抽象命令执行正常,否则抽象命令B.8单步执行通过设置调试下状态和控制寄存器,可实现调试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北邯郸市育华中学2024-2025学年九年级上学期阶段学情自测英语试题-文字版-含答案-
- 2026年《教育法律法规》知识竞赛试题库及答案(共50题)
- 电信公司技术支持团队客户满意度及问题解决能力KPI考核表
- 电影制片人项目投资回报与制作质量绩效衡量表
- 网络公司SEO专员绩效考评表
- 游戏公司策划设计及测试项目经理KPI考核表
- 产品经理的产品需求管理手册
- 幼儿园副园长安全责任书
- 2026年行业交流会议组织函(5篇)
- 幼儿园安全教育违规处理办法
- 2026年高铁广告媒体创新实践与市场洞察报告
- 2026年新版甘肃辅警考试题库必考题(含答案解析)
- 2026年小学语文教师高频面试题包含详细解答
- SYT 6649-2025《油气管道管体缺陷修复技术规范》
- 气瓶委托管理合同
- 2026年秋季新教材统编版九年级上册道德与法治全册知识点背诵提纲精简版
- 《全国病媒生物监测技术指南(2025年)》
- (2025年)宜昌市伍家岗区网格员考试题库(含答案)
- 2026舞台灯光音响行业市场规模深度研究与发展战略分析报告
- 2026年基层选调生遴选笔试试卷(附答案)
- 山地丘陵村镇水土环境协同修复技术指南编制说明
评论
0/150
提交评论