亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種嵌入式處理器的調(diào)試技術(shù)的制作方法

文檔序號:6560924閱讀:189來源:國知局

專利名稱::一種嵌入式處理器的調(diào)試技術(shù)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及嵌入式處理器的調(diào)試領(lǐng)域,特別是基于JTAG協(xié)議的嵌入式處理器調(diào)試領(lǐng)域。技術(shù)背景傳統(tǒng)的調(diào)試技術(shù)是調(diào)試主機通過設(shè)置寄存器的某一位產(chǎn)生調(diào)試請求,處理器接受調(diào)試請求進入調(diào)試模式,并置調(diào)試應(yīng)答信號有效。進入調(diào)試模式后,處理器停止工作并與系統(tǒng)的其它部分隔離。此時內(nèi)核不再從ROM中取指,而是由調(diào)試主機將需要處理器執(zhí)行的指令(為實現(xiàn)調(diào)試功能的指令)通過JTAG接口插入到處理器的指令寄存器。通過選擇適當(dāng)?shù)闹噶詈涂刂七@些指令的執(zhí)行,執(zhí)行的結(jié)果可用來檢測或者修改存儲器內(nèi)容以及處理器寄存器。由于調(diào)試過程中使用了處理器的指令寄存器,在進入調(diào)試模式后需要保護以及退出調(diào)試模式前需要恢復(fù)程序正常運行的寄存器信息。而且這種調(diào)試技術(shù)調(diào)試模塊和處理器內(nèi)部邏輯聯(lián)系緊密,不宜于調(diào)試模塊的IP共享;同時一次控制的輔助操作多,導(dǎo)致時間長而效率低。另夕卜,JTAG(JointTestActionGroup,聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議(正EE1149.1兼容),主要用于芯片內(nèi)部測試(BoundaryScan&,邊界掃描)以及嵌入式系統(tǒng)的仿真器。標(biāo)準(zhǔn)的JTAG接口是5線TMS、TCK、TDI、TDO,TRST,分別為模式選擇、時鐘、數(shù)據(jù)輸入、數(shù)據(jù)輸出線和復(fù)位。由于標(biāo)準(zhǔn)JTAG協(xié)議是串行傳輸數(shù)據(jù)導(dǎo)致傳輸速度慢。然而現(xiàn)在嵌入式系統(tǒng)的存儲器容量越來越大,需要傳輸?shù)臄?shù)據(jù)傳輸量越來越多,串行傳輸嚴重影響調(diào)試性能。
發(fā)明內(nèi)容本發(fā)明主要目的是提供一種簡單易行,傳輸速度快且易于共享的調(diào)試方法,以解決現(xiàn)有技術(shù)的傳輸速度慢,通信效率低,調(diào)試模塊與處理器的耦合度高的弊端。該調(diào)試技術(shù)支持常用的單步、斷點、復(fù)位、查看修改存儲器或內(nèi)部SFR(SpecialFunctionRegisters)寄存器、査看程序變量等調(diào)試手段。本發(fā)明的解決方案是片上仿真模塊通過硬件邏輯輸出中斷信號控制處理器進入調(diào)試模式,并通過控制中斷信號的生成位置來實現(xiàn)單步和斷點的功能。處理器響應(yīng)中斷,進入中斷服務(wù)程序。中斷服務(wù)程序把處理器的SFR寄存器的值暫放到內(nèi)部另辟的一段RAM之后等待調(diào)試主機的結(jié)束命令。這時調(diào)試主機通過高速JTAG接口把命令和數(shù)據(jù)傳給片上仿真模塊,片上仿真模塊對命令譯碼,讀寫存儲器后寫寄存器的某一位,退出中斷服務(wù)程序。中斷服務(wù)程序中也支持對處理器的SFR寄存器的讀寫操作。片上仿真模塊和所有存儲器直接相連,支持對外部存儲器的直接高速讀寫。本發(fā)明充分利用并口的管腳資源,推出獨特的11線JTAG接口,把TDI和TDO由一位增為四位,加快了通信速度。同時修改了調(diào)試主機和片上仿真模塊之間的通信協(xié)議,實現(xiàn)一次傳輸多個數(shù)據(jù),提高了傳輸效率,節(jié)省了傳輸時間。本發(fā)明的調(diào)試技術(shù),無需借用處理器的指令寄存器,無需提前保存和重新回寫相關(guān)的寄存器,通過中斷的方式來實現(xiàn)簡單易行,模塊比較獨立易于移植和共享;而且對接口和傳輸協(xié)議進行了修改,大幅的提高傳輸效率。圖l系統(tǒng)結(jié)構(gòu)框2片上仿真模塊的邏輯框3高速JTAG與計算機并口的連接4斷點產(chǎn)生原理圖5寫存儲器的波形圖6讀存儲器的波形圖7中斷服務(wù)程序流程具體實施例方式下面結(jié)合附圖和實例進一步說明使用本發(fā)明的調(diào)試方法支持一個16位CPU的調(diào)試。該16位CPU是ASIC設(shè)計,進行FPGA驗證時需增加支持硬件仿真的功能。使用本發(fā)明的調(diào)試方法實現(xiàn)了對CPU的單步、斷點、復(fù)位、暫停、査看修改內(nèi)存或內(nèi)部寄存器、査看程序變量的控制。圖1是系統(tǒng)結(jié)構(gòu)框圖,其中TCK,TDI[3:0],TDO[3:0],TMS,TRST是計算機上的仿真環(huán)境與片上仿真模塊之間的高速JTAG接口的信號。中斷和復(fù)位信號控制CPU的運行,中斷服務(wù)程序和片上仿真模塊之間通過Ack,End,SfLchange信號配合協(xié)作。仿真軟件讀取CPU的PC指針指示當(dāng)前程序運行的位置。片上仿真模塊支持對所有存儲器的直接讀寫操作。圖2是片上仿真模塊的邏輯框圖。JTAG接口的數(shù)據(jù)經(jīng)過TAP控制器解析存放到命令寄存器中。命令寄存器對命令譯碼后,根據(jù)相應(yīng)的命令把隨后的JTAG接口的數(shù)據(jù)分別放到數(shù)據(jù)長度地址寄存器、數(shù)據(jù)寄存器、斷點值寄存器、控制寄存器中。如果是對存儲器的讀取命令,根據(jù)命令類型對對應(yīng)的存儲器輸出控制信號,地址以及數(shù)據(jù),實現(xiàn)對存儲器的讀寫;如果是設(shè)置斷點的命令,把斷點值放到斷點寄存器中;如果讀寫控制寄存器的命令,則讀取或修改控制寄存器的值。根據(jù)控制寄存器的內(nèi)容輸出中斷以及復(fù)位信號來實現(xiàn)對CPU運行的控制。當(dāng)斷點值寄存器的值和PC值相等時,就會輸出中斷信號。根據(jù)CPU輸出的Ack信號,以及控制寄存器的End,Sfr_change位來控制中斷服務(wù)程序的運行,完成調(diào)試主機和調(diào)試模塊以及CPU之間的通信。圖3是高速jtag接口與并口的連接。高速JTAG與普通JTAG接口很相似,區(qū)別在于普通JTAG接口的tdi和tdo,都是lbit位串行傳輸數(shù)據(jù),而高速JTAG為4bit位傳輸數(shù)據(jù)。這樣傳輸速率提高了四倍。計算機的并口的第3腳經(jīng)過驅(qū)動作為TCK,第4腳經(jīng)過驅(qū)動作為TMS,第9、8、7、6腳經(jīng)過驅(qū)動作為TDI[3:0],TDO[3:0]經(jīng)過驅(qū)動輸入到第11、10、12、13腳,由于采用4位的TDI和TD0,接收或發(fā)送一個字節(jié)的數(shù)據(jù),只要兩個TCK時鐘,大大節(jié)約了時間。如圖2所示,內(nèi)部寄存器有命令寄存器,控制寄存器,斷點值寄存器,地址寄存器。主機通過并口發(fā)出調(diào)試命令和數(shù)據(jù),片上仿真模塊通過tap控制器把tdi總線上前八位數(shù)據(jù)保存到命令寄存器中,接著對命令進行譯碼,再根據(jù)不同的命令把數(shù)據(jù)分別存放到地址寄存器,斷點值寄存器和控制寄存器中。表1是命令寄存器的命令類型。包含go,讀寫存儲器,讀寫斷點,讀寫控制寄存器,讀pc。地址寄存器包含了即將要傳輸?shù)臄?shù)據(jù)的起始地址以及數(shù)據(jù)長度,格式如表2所示。斷點值寄存器是23位的寄存器,存放程序暫停的位置。控制寄存器里包含了整個系統(tǒng)的控制和狀態(tài)信息,格式如表3所示。表l命令類型和編碼<table>tableseeoriginaldocumentpage5</column></row><table>表2地址寄存器<table>tableseeoriginaldocumentpage6</column></row><table>表3控制寄存器<table>tableseeoriginaldocumentpage6</column></row><table>如圖2所示,根據(jù)控制寄存器的內(nèi)容輸出中斷以及復(fù)位信號來實現(xiàn)對CPU的控制,該CPU在每條指令執(zhí)行的第二個時鐘周期時會判斷有沒有中斷信號,如果有就不執(zhí)行該條指令,響應(yīng)中斷;如果沒有,就繼續(xù)執(zhí)行該指令。根據(jù)這個原理,我們通過寫控制寄存器命令配置控制寄存器的單步使能位為高,硬件邏輯在退出中斷服務(wù)程序后的第二條指令的第一個時鐘周期開始輸出一個時鐘周期長度的中斷信號。這樣保證在執(zhí)行完一條指令后進入中斷,實現(xiàn)單步功能。如表3所示,寫控制寄存器的位2為高,硬件邏輯在退出中斷服務(wù)程序后執(zhí)行一條指令后產(chǎn)生中斷信號實現(xiàn)單步操作。圖4是斷點實現(xiàn)的原理,通過寫斷點命令配置斷點值寄存器為預(yù)期的斷點地址;程序運行過程中每個時鐘周期都采樣當(dāng)前的PC值,與斷點寄存器里得值進行比較,相等就產(chǎn)生中斷信號。復(fù)位操作通過把控制寄存器的Reset位置高,在退出中斷服務(wù)程序后產(chǎn)生一個復(fù)位信號給處理器。如圖2所示,片上仿真模塊直接和存儲器的接口直接相聯(lián)。對存儲器的讀寫分兩步執(zhí)行首先通過讀寫存儲器命令通知硬件是對哪個存儲器的操作,然后保存起始地址和數(shù)據(jù)長度到地址寄存器;接著通過GO命令,如果上一步的命令是寫操作,go之后緊跟的就是待寫的數(shù)據(jù),如果上一步的命令是讀操作,go之后在tdo總線上就會輸出相應(yīng)的數(shù)據(jù)。讀操作如圖6所示,根據(jù)起始地址和數(shù)據(jù)長度構(gòu)造讀存儲器的時序,讀入的數(shù)據(jù)暫存內(nèi)部的寄存器中,然后配合tck時鐘在tdo總線上輸出數(shù)據(jù)。寫操作如圖5所示,把tdi上的數(shù)據(jù)整合成16位放到內(nèi)部寄存器里,根據(jù)起始地址和數(shù)據(jù)長度構(gòu)造存儲器的寫時序,把數(shù)據(jù)寫入存儲器中。如圖2所示,根據(jù)CPU輸出的Ack信號,以及控制寄存器的End,Sfr—change信號來控制中斷服務(wù)程序的運行。在中斷服務(wù)程序中實現(xiàn)了對SFR寄存器的讀寫操作。由于CPU內(nèi)部的SFR寄存器眾多,而且地理位置分布很零亂,如果仍采用與讀寫存儲器的方法來讀寫SFR寄存器,需要片上仿真模塊和每個SFR寄存器都直連,設(shè)計會非常復(fù)雜。因此我們通過在中斷服務(wù)程序中添加指令來實現(xiàn)讀寫SFR的功能。通過mov指令依次把SFR寄存器的值移到內(nèi)部另辟的一段JRAM空間中,然后再通過JTAG口,使用讀存儲器的方法把數(shù)據(jù)傳給調(diào)試器。通過與軟件協(xié)商好的寄存器順序,正確顯示所有的寄存器的值。如果更改SFR寄存器,通過寫存儲器方法把要更改的寄存器的地址和內(nèi)容放到內(nèi)部的JRAM空間里,同時硬件更改標(biāo)志位Sfr一change表明SFR寄存器的值己更改。中斷服務(wù)程序査詢到該標(biāo)志位后讀JRAM得到待更改的寄存器的地址和內(nèi)容,進行相應(yīng)的寄存器修改。之后再使能END標(biāo)志位通知中斷服務(wù)程序退出中斷,中斷服務(wù)程序的流程如圖7。另外,中斷服務(wù)程序和程序代碼是兩個ROM存儲空間。進入中斷后,處理器從中斷服務(wù)程序的IROM中取指,退出中斷服務(wù)程序后,程序從程序代碼(PROM)中取指。這樣實現(xiàn)的目的,是由于該中斷是不對用戶開放的,屬于調(diào)試中斷。所以不應(yīng)占用用戶的代碼空間,以免產(chǎn)生分歧出錯。根據(jù)上述方案實現(xiàn)的片上仿真模塊,己和調(diào)試器,CPU連調(diào)成功,工作穩(wěn)定且速度很快。實際測試傳輸1兆字節(jié)的數(shù)據(jù)的時間小于ls。為本項目組的16位的CPU驗證和用戶提供了良好的調(diào)試平臺。權(quán)利要求1.一種基于JTAG的嵌入式處理器的調(diào)試技術(shù),其特征在于片上仿真模塊作為調(diào)試主機和處理器之間的接口,與調(diào)試主機通過JTAG接口相連,與處理器通過中斷的方式實現(xiàn)調(diào)試。2.如權(quán)利要求1所述的調(diào)試技術(shù),其特征在于采用高速JTAG接口實現(xiàn)嵌入式處理器的調(diào)試,TDI、TDO都是四位串行數(shù)據(jù)傳輸。3.如權(quán)利要求1所述的調(diào)試技術(shù),其特征在于中斷服務(wù)程序和程序代碼是兩個ROM存儲空間,進入中斷后,處理器從中斷服務(wù)程序的IROM中取指,退出中斷服務(wù)程序后,程序從程序代碼(PROM)中取指。4.如權(quán)利要求1所述的調(diào)試技術(shù),其特征在于中斷服務(wù)程序和片上仿真模塊之間的配合方法采用在片上仿真模塊中設(shè)立中斷服務(wù)程序可以讀寫的寄存器,中斷服務(wù)程序和片上仿真模塊通過該寄存器了解相互的狀態(tài),配合實現(xiàn)控制。5.如權(quán)利要求1所述的調(diào)試技術(shù),其特征是在中斷服務(wù)程序中,通過指令的方式把SFR寄存器的值放到內(nèi)部另辟的一塊RAM中,再通過JTAG口把RAM中的數(shù)據(jù)即SFR寄存器的值讀上來;修改SFR寄存器把需要修改的寄存器的值和地址放到上述的RAM中,中斷服務(wù)程序讀數(shù)并進行相應(yīng)的修改。6.如權(quán)利要求1所述的調(diào)試技術(shù),其特征在于單步實現(xiàn)的方法,在退出中斷服務(wù)程序后的第二條指令的第一個時鐘周期輸出一個時鐘周期長度的中斷信號,實現(xiàn)剛好執(zhí)行了一條指令。全文摘要本發(fā)明提供一種基于高速JTAG嵌入式處理器的調(diào)試技術(shù),該調(diào)試技術(shù)支持單步、斷點、復(fù)位、查看修改存儲器或內(nèi)部SFR寄存器、查看程序變量等調(diào)試手段。整個調(diào)試系統(tǒng)包括計算機上的開發(fā)調(diào)試環(huán)境,片上仿真模塊,嵌入式處理器,以及嵌入式處理器的存儲器/外設(shè)等。開發(fā)調(diào)試環(huán)境包含編譯器,匯編器,連接器,調(diào)試器等,它通過計算機的并口發(fā)出調(diào)試命令和數(shù)據(jù),片上仿真模塊對接收到的命令進行譯碼,根據(jù)相應(yīng)的命令把數(shù)據(jù)以正確的格式傳給處理器;通過觸發(fā)處理器進入中斷,實現(xiàn)對程序的單步和斷點的控制;通過與中斷服務(wù)程序的配合讀取和修改SFR寄存器。本發(fā)明采用高速JTAG技術(shù)提高傳輸速度,并且使用了簡潔、嚴謹?shù)恼{(diào)試流程,適用于嵌入式處理器的調(diào)試領(lǐng)域,相比傳統(tǒng)的調(diào)試技術(shù)更簡單易行,傳輸速度快且易于IP共享。文檔編號G06F11/36GK101162438SQ200610113629公開日2008年4月16日申請日期2006年10月10日優(yōu)先權(quán)日2006年10月10日發(fā)明者唐曉柯,丹李,李艷華申請人:北京中電華大電子設(shè)計有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1