RISC-V單線調(diào)試接口技術(shù)要求(征求意見(jiàn)稿)_第1頁(yè)
RISC-V單線調(diào)試接口技術(shù)要求(征求意見(jiàn)稿)_第2頁(yè)
RISC-V單線調(diào)試接口技術(shù)要求(征求意見(jiàn)稿)_第3頁(yè)
RISC-V單線調(diào)試接口技術(shù)要求(征求意見(jiàn)稿)_第4頁(yè)
RISC-V單線調(diào)試接口技術(shù)要求(征求意見(jiàn)稿)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1T/BDT004—2024RISC-V單線調(diào)試接口技術(shù)要求本文件規(guī)定了RISC-V單線調(diào)試接口的調(diào)試傳輸協(xié)議,調(diào)試模塊及其操作方法。本文件適用于RISC-V單線調(diào)試的規(guī)范和對(duì)微處理器的在線調(diào)試。2規(guī)范性引用文件本文件沒(méi)有規(guī)范性引用文件。3術(shù)語(yǔ)和定義下列術(shù)語(yǔ)和定義適用于本文件。3.1調(diào)試模塊debugmodule可實(shí)現(xiàn)抽象的調(diào)試操作和特定實(shí)現(xiàn)轉(zhuǎn)換的模塊,能夠?qū)崿F(xiàn)微處理器的暫停和運(yùn)行,可通過(guò)抽象命令、programbuffer部署指令等方式訪問(wèn)微處理器的GPRs、CSRs、儲(chǔ)存器、外部設(shè)備等。3.2調(diào)試模塊控制寄存器dmcontrol用于控制調(diào)試模塊及當(dāng)前選定內(nèi)核的一種寄存器。3.3調(diào)試模塊狀態(tài)寄存器dmstatus用于指示調(diào)試模塊及當(dāng)前選定內(nèi)核狀態(tài)的一種寄存器3.4微處理器狀態(tài)寄存器hartinfo用于向調(diào)試主機(jī)提供微處理器的信息的一種只讀寄存器。3.5抽象命令控制與狀態(tài)寄存器abstractcs用于指示抽象命令執(zhí)行的情況的一種寄存器,調(diào)試主機(jī)可通過(guò)讀取該寄存器,了解上一個(gè)抽象命令是否執(zhí)行完畢,并且可檢查抽象命令執(zhí)行過(guò)程中是否產(chǎn)生錯(cuò)誤以及錯(cuò)誤的類型。3.6抽象命令寄存器command調(diào)試主機(jī)可通過(guò)抽象命令寄存器中寫(xiě)入不同的配置值,生成對(duì)應(yīng)的抽象命令,實(shí)現(xiàn)對(duì)寄存器及存儲(chǔ)器的訪問(wèn)。3.7抽象命令自動(dòng)執(zhí)行寄存器abstractauto用于配置抽象命令自動(dòng)執(zhí)行的一種寄存器,當(dāng)對(duì)調(diào)試模塊的progbufx和datax進(jìn)行讀寫(xiě)時(shí),抽象命令可再次被執(zhí)行。3.8指令緩存寄存器progbufx用于存放任意指令,部署相應(yīng)操作的一種寄存器,最后一條執(zhí)行需要是“ebreak”或者“c.ebreak”。3.9暫停狀態(tài)寄存器haltsum0用于指示微處理器是否暫停,每一位指示一個(gè)微處理器的暫停狀態(tài)的一種寄存器,當(dāng)只有一個(gè)核時(shí),僅用該寄存器最低位表示。2T/BDT004—20243.10調(diào)試控制和狀態(tài)寄存器dcsr用于控制和指示調(diào)試模式下的動(dòng)作和狀態(tài)的一種寄存器。3.11調(diào)試模式程序指針dpc用于保存微處理器進(jìn)入調(diào)試模式之后將要執(zhí)行的下一條指令的地址的一種寄存器。3.12讀/寫(xiě)通用寄存器GPR抽象命令支持對(duì)微處理器進(jìn)行讀寫(xiě)的一種通用寄存器。3.13讀/寫(xiě)控制和狀態(tài)寄存器CSR抽象命令支持對(duì)微處理器進(jìn)行讀寫(xiě)的控制和狀態(tài)寄存器。4縮略語(yǔ)下列縮略語(yǔ)適用于本文件。abstractauto:抽象命令自動(dòng)執(zhí)行(abstractcommandautoexec)abstractcs:抽象命令狀態(tài)寄存器(abstractcontrolandstatusregister)CFGR:配置寄存器(configurationregister)CPBR:能力寄存器(capabilityregister)command:抽象命令寄存器(abstractcommandregister)DM:調(diào)試模塊(DebugModule)DMI:調(diào)試模塊接口(DebugModuleInterface)DTM:調(diào)試傳輸模塊(DebugTransportModule)data0:數(shù)據(jù)寄存器0(dataregister0)data1:數(shù)據(jù)寄存器1(dataregister1)dcsr:調(diào)試控制和狀態(tài)寄存器(debugcontrolandstatusregister)dmcontrol:調(diào)試模塊控制寄存器(debugmodulecontrolregister)dmstatus:調(diào)試模塊狀態(tài)寄存器(debugmodulestatusregister)dpc:調(diào)試模式程序指針(debugPC)haltsum0:暫停狀態(tài)寄存器(haltsummary0)hartinfo:微處理器狀態(tài)寄存器(hartinforegister)progbufx:指令緩存寄存器(programbufferx)RISC:精簡(jiǎn)指令集(ReducedInstructionSetComputer)RISC-V:第五代精簡(jiǎn)指令集(FifthgenerationReducedInstructionSetComputing)SHDWCFGR:影子配置寄存器(shadowconfigurationregister)5基本結(jié)構(gòu)5.1調(diào)試模塊(DM)5.1.1調(diào)試模塊應(yīng)用于實(shí)現(xiàn)抽象的調(diào)試操作和特定實(shí)現(xiàn)之間的轉(zhuǎn)換。調(diào)試模塊是稱為調(diào)試模塊接口(DMI)的總線的從設(shè)備,總線主設(shè)備是調(diào)試傳輸模塊(DTM)。5.1.2調(diào)試模塊可實(shí)現(xiàn)微處理器的暫停、復(fù)位、恢復(fù)等功能。5.1.3調(diào)試模塊應(yīng)通過(guò)單線調(diào)試接口和調(diào)試傳輸設(shè)備通訊。5.1.4應(yīng)通過(guò)DMI訪問(wèn)DM寄存器,通過(guò)寄存器的訪問(wèn)完成整個(gè)調(diào)試過(guò)程。5.2調(diào)試模塊接口(DMI)3T/BDT004—2024調(diào)試模塊接口可以是包含一個(gè)主總線和一個(gè)從總線的普通總線,也可以使用功能更齊全的總線,DMI應(yīng)使用7到32個(gè)地址位,它支持讀寫(xiě)操作。5.3調(diào)試傳輸模塊(DTM)5.3.1調(diào)試傳輸模塊通過(guò)一種或多種傳輸方式(例如:JTAG或者USB)對(duì)調(diào)試模塊提供訪問(wèn)。5.3.2調(diào)試傳輸設(shè)備和調(diào)試主機(jī)應(yīng)使用接口通訊,并通過(guò)單線接口和調(diào)試模塊通訊,以控制和查詢微處理器狀態(tài),實(shí)現(xiàn)調(diào)試功能。示例框圖見(jiàn)5.4。5.3.3可通過(guò)抽象命令或者ProgramBuffer的方式訪問(wèn)處理器內(nèi)部,處理器內(nèi)部包括:a)通用寄存器(GPRs);b)控制狀態(tài)寄存器(CSRs);c)存儲(chǔ)器或映射為特定功能的外設(shè)等。5.4調(diào)試系統(tǒng)簡(jiǎn)易框圖以支持RISC-V單線調(diào)試的微處理器為例。見(jiàn)圖1所示。圖1調(diào)試系統(tǒng)框圖6調(diào)試傳輸協(xié)議規(guī)范6.1概述6.1.1調(diào)試傳輸設(shè)備和調(diào)試模塊之間應(yīng)采用單線傳輸?shù)姆绞竭M(jìn)行通訊。6.1.2傳輸協(xié)議定義了訪問(wèn)調(diào)試模塊相關(guān)寄存器的數(shù)據(jù)包格式,其結(jié)構(gòu)應(yīng)符合6.2的格式要求。6.2數(shù)據(jù)包格式6.2.1NewPacketNewPacket結(jié)構(gòu)組成應(yīng)符合以下要求:d)1bit起始位,固定為數(shù)據(jù)1;e)7bit地址位,設(shè)置訪問(wèn)寄存器地址,MSB優(yōu)先;f)1bit讀寫(xiě)控制位,1主機(jī)寫(xiě),0主機(jī)讀;g)32bit數(shù)據(jù),MSB優(yōu)先;4T/BDT004—2024h)1bit偶校驗(yàn)位,該位為可選數(shù)據(jù)位,若數(shù)據(jù)位最后一位后直接發(fā)送停止符,則不進(jìn)行校驗(yàn)位傳輸。6.2.2BypPacketBypPacket結(jié)構(gòu)組成應(yīng)符合以下要求:a)1bit起始位,固定為數(shù)據(jù)0;b)32bit數(shù)據(jù)位,MSB優(yōu)先,讀寫(xiě)位和寄存器地址與最近一次的NewPacket傳輸相同;c)1bit偶校驗(yàn)位,該位為可選數(shù)據(jù)位,若數(shù)據(jù)位最后一位后直接發(fā)送停止符,則不進(jìn)行校驗(yàn)位傳輸。6.2.3數(shù)據(jù)包訪問(wèn)格式對(duì)調(diào)試模塊寄存器操作應(yīng)按照?qǐng)D2所示格式進(jìn)行訪問(wèn)。NewPacket和BypPacket組合實(shí)現(xiàn)對(duì)某個(gè)寄存器的讀寫(xiě),連續(xù)讀或?qū)懙炔僮鳌D2數(shù)據(jù)包格式6.3位定義6.3.1位定義的判斷依據(jù)單線接口應(yīng)使用電平的高低和持續(xù)時(shí)間來(lái)表示數(shù)據(jù)位、停止位??偩€空閑時(shí)為高電平,當(dāng)總線低電平持續(xù)一定時(shí)間,應(yīng)表示復(fù)位信號(hào)。6.3.2速度模式6.3.2.1快速模式1X設(shè)從機(jī)調(diào)試接口時(shí)鐘周期為T(mén),時(shí)序應(yīng)如圖3所示:a)停止位:持續(xù)高電平10T,將產(chǎn)生停止位;b)數(shù)據(jù)1:低電平時(shí)間(T,2T),高電平時(shí)間(T,8T);c)數(shù)據(jù)0:低電平時(shí)間(4T,32T),高電平時(shí)間(T,8T)。圖3快速模式信號(hào)時(shí)序6.3.2.2普通模式2X設(shè)從機(jī)調(diào)試接口時(shí)鐘周期為T(mén),時(shí)序應(yīng)如圖4所示,該模式為復(fù)位后默認(rèn)模式:a)停止位:持續(xù)高電平18T,將產(chǎn)生停止位;b)數(shù)據(jù)1:低電平時(shí)間(T,4T),高電平時(shí)間(T,16T);c)數(shù)據(jù)0:低電平時(shí)間(6T,64T),高電平時(shí)間(T,16T)。5T/BDT004—2024圖4中速模式信號(hào)時(shí)序6.4調(diào)試接口寄存器6.4.1調(diào)試接口寄存器類型6.3.2中規(guī)定的調(diào)試接口速度模式及使能應(yīng)由相關(guān)寄存器進(jìn)行配置。寄存器應(yīng)使用7位地址進(jìn)行編碼,分類見(jiàn)表1。表1調(diào)試接口寄存器6.4.2能力寄存器(CPBR)能力寄存器定義應(yīng)符合表2規(guī)定。表2能力寄存器(CPBR)位0009080:調(diào)試從機(jī)不具有CRC8校驗(yàn)功能,僅偶校006T/BDT004—2024位06.4.3配置寄存器(CFGR)配置寄存器定義應(yīng)符合表3規(guī)定。表3配置寄存器(CFGR)位00009080:調(diào)試從機(jī)不具有CRC8校驗(yàn)功能,僅偶校00006.4.4影子配置寄存器(SHDWCFGR)影子配置寄存器定義應(yīng)符合表4規(guī)定。表4影子配置寄存器(SHDWCFGR)位0007T/BDT004—2024位09080:調(diào)試從機(jī)不具有CRC8校驗(yàn)功能,僅偶校00006.5配置實(shí)例6.5.1主機(jī)可通過(guò)6.4.3中規(guī)定的配置寄存器CFGR和6.4.4中規(guī)定的影子配置寄存器SHDWCFGR,配合設(shè)置調(diào)試接口的能力,并通過(guò)6.4.2中定義的能力寄存器CPBR查詢是否生效。6.5.2設(shè)置時(shí)應(yīng)先設(shè)置SHDWCFGR對(duì)應(yīng)位,再將CFGR對(duì)應(yīng)位域置位,即可設(shè)置影子配置寄存器的對(duì)應(yīng)配置位生效,其他配置位不變。6.5.3相關(guān)實(shí)例詳見(jiàn)附錄A。7調(diào)試模塊7.1調(diào)試操作流程調(diào)試模塊能執(zhí)行調(diào)試主機(jī)下發(fā)的調(diào)試操作,包括:a)通過(guò)調(diào)試接口訪問(wèn)寄存器;b)通過(guò)調(diào)試接口可使微處理器復(fù)位、暫停、恢復(fù);c)通過(guò)調(diào)試接口讀寫(xiě)存儲(chǔ)器、指令寄存器以及外部設(shè)備;d)通過(guò)調(diào)試接口可部署多條任意指令;7.2調(diào)試模塊寄存器類型7.2.1概述7.2.1.1調(diào)試模塊內(nèi)部寄存器應(yīng)使用7位地址編碼。7.2.1.2微處理器內(nèi)部實(shí)現(xiàn)了以下寄存器,調(diào)試模塊寄存器種類應(yīng)符合表5的規(guī)定。表5調(diào)試模塊寄存器列表8T/BDT004—20247.2.1.3調(diào)試主機(jī)可通過(guò)配置dmcontrol寄存器控制微處理器的暫停、恢復(fù)、復(fù)位等,也可通過(guò)command寄存器觸發(fā)調(diào)試模塊生成抽象命令。7.2.1.4RISC-V標(biāo)準(zhǔn)定義三種抽象命令類型:訪問(wèn)寄存器、快速訪問(wèn)、訪問(wèn)存儲(chǔ)器。7.2.1.5調(diào)試模塊內(nèi)部實(shí)現(xiàn)了八個(gè)指令緩存寄存器progbuf0-7,調(diào)試主機(jī)可向緩沖區(qū)緩存多條指令(可以是壓縮指令),可選擇執(zhí)行完抽象命令后繼續(xù)執(zhí)行指令緩存寄存器中的指令,也可直接執(zhí)行緩存的指令。7.2.1.6progbufs中指令小于32字節(jié),則需要最后一條指令是一條“ebreak”或“c.ebreak”指令,若指令填滿32字節(jié),調(diào)試模塊自動(dòng)添加一條“ebreak”指令。調(diào)試主機(jī)也可通過(guò)抽象命令和progbufs中緩存的指令,實(shí)現(xiàn)儲(chǔ)存器、外設(shè)等的訪問(wèn)。7.2.2數(shù)據(jù)寄存器0(data0)數(shù)據(jù)寄存器0的定義應(yīng)符合表6規(guī)定。表6data0寄存器定義位07.2.3數(shù)據(jù)寄存器1(data1)數(shù)據(jù)寄存器1的定義應(yīng)符合表7規(guī)定。表7data1寄存器定義位07.2.4調(diào)試模塊控制寄存器(dmcontrol)調(diào)試主機(jī)向?qū)?yīng)的字段寫(xiě)數(shù)據(jù),即可實(shí)現(xiàn)5.2.4中調(diào)試模塊對(duì)寄存器的暫停(haltreq)、復(fù)位(ndmreset)、恢復(fù)(resumereq)的功能。各位描述應(yīng)符合表8規(guī)定。表8dmcontrol寄存器定義位00000109T/BDT004—2024位007.2.5調(diào)試模塊狀態(tài)寄存器(dmstatus)描述應(yīng)符合表9規(guī)定。表9dmstatus寄存器定義位00000000009080707.2.6微處理器狀態(tài)寄存器(hartinfo)各個(gè)位描述應(yīng)符合表10規(guī)定。表10hartinfo寄存器定義位00數(shù)據(jù)寄存器data0偏移地址,其基地址為7.2.7抽象命令控制與狀態(tài)寄存器(abstractcs)詳細(xì)描述應(yīng)符合表11的規(guī)定。T/BDT004—2024表11abstractcs寄存器定義位0表示programbuffer程000abstractcs、abstractauto寄存器進(jìn)行寫(xiě)或者100:微處理器未暫?;虿豢捎茫荒軋?zhí)行抽007.2.8抽象命令寄存器(command)調(diào)試操作應(yīng)符合7.1中的b)說(shuō)明。當(dāng)對(duì)寄存器訪問(wèn)時(shí)command寄存器各位定義應(yīng)符合表12規(guī)定。表12訪問(wèn)寄存器時(shí)command寄存器定義位000000write007.2.9抽象命令自動(dòng)執(zhí)行寄存器(abstractauto)該寄存器的描述應(yīng)符合表13規(guī)定。T/BDT004—2024表13abstractauto寄存器定義位若某位置1,相應(yīng)對(duì)progbufx的讀寫(xiě)將導(dǎo)致command寄存器中抽象命令再次被執(zhí)行00將導(dǎo)致command寄存器中的抽象命令再次07.2.10指令緩存寄存器(progbufx)當(dāng)progbufx共8個(gè),能夠存儲(chǔ)共32B字節(jié)指令,當(dāng)不滿32B時(shí),需要最后一條指令是“break”指令,當(dāng)存滿32B時(shí),模塊自動(dòng)在最后添加“ebreak”指令。寄存器定義應(yīng)符合表14規(guī)定。表14progbuf寄存器定義位07.2.11暫停狀態(tài)寄存器(haltsum0)寄存器定義應(yīng)符合表15規(guī)定。表15haltsum0寄存器定義位0007.2.12調(diào)試控制和狀態(tài)寄存器(dcsr)詳細(xì)描述應(yīng)符合表16規(guī)定。表16dcsr寄存器定義位0:機(jī)器模式下的ebreak指令的行為如特權(quán)1:機(jī)器模式下的ebreak指令能夠進(jìn)入調(diào)試000:用戶模式下的ebreak指令的行為如特權(quán)1:用戶模式下的ebreak指令能夠進(jìn)入調(diào)試00090進(jìn)入調(diào)試的原因001:以ebreak指令方式進(jìn)0T/BDT004—2024位010:以triggermodule形式進(jìn)入調(diào)試(優(yōu)011:以暫停請(qǐng)求形式進(jìn)入調(diào)試(優(yōu)先級(jí)為100:以單步調(diào)試形式進(jìn)入調(diào)試(優(yōu)先級(jí)為101:微處理器復(fù)位之后直接停止進(jìn)入調(diào)試模02007.2.13調(diào)試模式程序指針(dpc)7.2.13.1dpc寄存器定義dpc寄存器定義描述應(yīng)符合表17規(guī)定。表17dpc寄存器定義位07.2.13.2dpc更新規(guī)則更新規(guī)則應(yīng)符合表18規(guī)定。表18dpc更新規(guī)則7.3操作實(shí)例調(diào)試主機(jī)發(fā)起暫停、恢復(fù)、復(fù)位等讀寫(xiě)寄存器,推薦的操作流程,相關(guān)實(shí)例見(jiàn)附錄B。T/BDT004—2024(資料性)配置實(shí)例A.1配置實(shí)例描述A.1.1使能從機(jī)輸出a)設(shè)置SHDWCFGR為0x5AA50400,將影子配置寄存器輸出使能位置1;b)設(shè)置CFGR為0x5AA50400,將影子配置寄存器輸出使能位更新至配置寄存器,配置寄存器其他位不變。A.1.2配置時(shí)基分頻系數(shù)為1分頻a)設(shè)置SHDWCFGR為0x5AA50000,設(shè)置影子配置寄存器TDIVCFG為0b00;b)設(shè)置CFGR為0x5AA50003,將影子配置寄存器TDIVCFG位域更新至配置寄存器,配置寄存器中其他位不變。A.1.3復(fù)位調(diào)試接口IO_FREE模式下,復(fù)位時(shí)序?yàn)榭偩€拉低超過(guò)32倍的時(shí)基,且不管何種模式下,總線拉低超過(guò)256倍時(shí)基時(shí),固定可將調(diào)試接口復(fù)位。復(fù)位后速度改為兩分頻模式,即普通模式2x。不同的硬件平臺(tái)調(diào)試接口時(shí)鐘可能不同,例如CH32V003默認(rèn)為內(nèi)部高速時(shí)鐘24MHz的3分頻為其時(shí)鐘,即8MHz。T/BDT004—2024(資料性)操作實(shí)例B.1暫停微處理器該流程應(yīng)用于將微處理器暫停,步驟如表B.1所示。表B.1微處理器暫停流程值獲取調(diào)試模塊狀態(tài)信息,檢查rdata[9:8],如值為0b11,則表示處理器正常進(jìn)入暫停狀態(tài),否則表示未進(jìn)入暫停狀B.2恢復(fù)微處理器該流程應(yīng)用于將處于暫停的微處理器恢復(fù),步驟如表B.2所示。表B.2微處理器恢復(fù)流程值獲取調(diào)試模塊狀態(tài)信息,檢查rdata[17:16],如值為B.3復(fù)位微處理器B.3.1復(fù)位后微處理器重新運(yùn)行如表B.3所示。表B.3微處理器復(fù)位并運(yùn)行流程值獲取調(diào)試模塊狀態(tài)信息,檢查rdata[19:18],如值為獲取調(diào)試模塊狀態(tài)信息,檢查rdata[19:18],如值為B.3.2復(fù)位后微處理器立即暫停如表B.4所示。表B.4微處理器復(fù)位后繼續(xù)暫停流程值T/BDT004—2024值獲取調(diào)試模塊狀態(tài)信息,檢查rdata[19:18],如值為獲取調(diào)試模塊狀態(tài)信息,檢查rdata[19:18],如值為B.4復(fù)位調(diào)試模塊該流程應(yīng)用于復(fù)位調(diào)試模塊,詳細(xì)如表B.5所示。表B.5調(diào)試模塊復(fù)位流程值檢查rdata[1]是否為0b0,如果是則復(fù)位成功,否則復(fù)B.5讀/寫(xiě)通用寄存器(GPR)B.5.1讀GPR,以x16為例如表B.6所示。表B.6讀GPR流程值檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令執(zhí)行;檢查rdata[10:8],即cmderr值是否為0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令執(zhí)行錯(cuò)誤,根B.5.2寫(xiě)GPR,以x16為例如表B.7所示。表B.7寫(xiě)GPR流程值T/BDT004—2024值wdata檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令執(zhí)行;檢查rdata[10:8],即cmderr值是否為0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令執(zhí)行錯(cuò)誤,根據(jù)B.6讀/寫(xiě)控制和狀態(tài)寄存器(CSR)B.6.1讀CSR,以mepc為例,其CSR地址為0x341如表B.8所示。表B.8讀CSR流程值檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令執(zhí)行;檢查rdata[10:8],即cmderr值是否為0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令執(zhí)行錯(cuò)誤,根據(jù)錯(cuò)誤B.6.2寫(xiě)CSR,以mepc為例,其CSR地址為0x341如表B.9所示。表B.9寫(xiě)CSR流程值wdata設(shè)置抽象命令,將Data0數(shù)據(jù)拷貝至CSR0x341寄存檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令執(zhí)行;檢查rdata[10:8],即cmderr值是否為0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令執(zhí)行錯(cuò)B.7讀/寫(xiě)存儲(chǔ)器B.7.1描述微處理器的調(diào)試模塊可通過(guò)抽象命令訪問(wèn)寄存器和存儲(chǔ)器,可利用抽象命令和預(yù)置progbufx指令的方式,對(duì)某存儲(chǔ)器地址進(jìn)行讀寫(xiě)。B.7.2存儲(chǔ)器讀T/BDT004—2024針對(duì)FLASH、RAM、MCU外設(shè)寄存器等,均可采用存儲(chǔ)器讀方式讀取數(shù)據(jù)。以地址0x20000000為例。如表B.10所示。表B.10讀存儲(chǔ)器流程值wcode將待執(zhí)行的指令機(jī)器碼wcode寫(xiě)入progbuf0,例如設(shè)置抽象命令,將Data0數(shù)據(jù)拷貝至x5寄存器,并檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令讀出Data0數(shù)據(jù)rdata,即為0x20000000地址值。需要注意該方法操作了寄存器值,操作前應(yīng)保存相應(yīng)寄B.7.3存儲(chǔ)器寫(xiě)B(tài).7.3.1針對(duì)RAM、MCU外設(shè)寄存器等可直接按照如下流程進(jìn)行寫(xiě)。B.7.3.2針對(duì)FLASH寫(xiě),需要按照不同芯片的FLASH控制器要求對(duì)其寄存器按步驟進(jìn)行操作編程。如表B.11所示。表B.11寫(xiě)存儲(chǔ)器流程值wcode將待執(zhí)行的指令機(jī)器碼wcode寫(xiě)入progbuf0,例如wdata檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令執(zhí)行;檢查rdata[10:8],即cmderr值是否為0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令執(zhí)行錯(cuò)wdata將待寫(xiě)入數(shù)據(jù)wdata,寫(xiě)入Data設(shè)置抽象命令,將Data0數(shù)據(jù)寫(xiě)入x7寄存器,并設(shè)置抽象命令執(zhí)行完畢后自動(dòng)執(zhí)行progbuT/BDT004—2024值檢查rdata[12],即查詢busy位是否為0b1,如果是,則表示抽象命令正在執(zhí)行,否則表示無(wú)抽象命令0b000,如果是,則抽象命令執(zhí)行正常,否則抽象命令B.8單步執(zhí)行通過(guò)設(shè)置調(diào)試下?tīng)顟B(tài)和控制寄存器,可實(shí)現(xiàn)調(diào)試

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論