日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于龍芯一號IP核的EJTAG調試

引 言
   
目前,隨著嵌入式系統(tǒng)在各個領域中的廣泛應用,人們對嵌入式開發(fā)工具的需求也變得非常迫切。嵌入式系統(tǒng)的開發(fā)需要特殊的開發(fā)環(huán)境,一般包括交叉編譯器、交叉調試器等。交叉調試器有兩種實現(xiàn)方式:一種是片上調試,另一種是在目標機端運行監(jiān)控程序來完成調試。前者是處理器的硬件調試模塊支持的,如MIPS架構的EJTAG,國芯CPU的OnCE等,由于接近硬件底層,可以在裸機狀態(tài)下提供調試手段,不僅可以調試監(jiān)控程序、系統(tǒng)軟件,也可以利用邊界掃描單元來測試硬件電路及故障定位;而后者一般是在處理器正常工作后,才可以使用的一種調試手段。
    EJTAG(Enhanced Joint Test Action Group)是MIPS公司根據(jù)IEEE 1149.1協(xié)議的基本構造和功能擴展而制定的規(guī)范,是一個硬件/軟件子系統(tǒng),在處理器內部實現(xiàn)了一套基于硬件的調試特性,用于支持片上調試。
    龍芯一號處理器IP核是在龍芯一號處理器基礎上,對功耗、面積和性能等各方面進行改進而得到的高度靈活、適用于更廣泛領域的處理器內核。它采用RISC架構,可運行MIPS III指令集,支持EJTAG調試功能,采用可配置架構,可在滿足用戶性能要求的前提下,實現(xiàn)最低成本的產(chǎn)品集成。


1 EJTAG工作機制及實現(xiàn)
1.1 EJTAG組成
   
所有MIPS的微處理器或是包含MIPS核的SoC芯片組件均提供對EJTAG調試的支持。EJTAG接口利用JTAG的TAP(Test Access Port)訪問方式,將測試數(shù)據(jù)傳入或者傳出處理器核。EJTAG可實現(xiàn)的功能包括:訪問處理器的寄存器、訪問系統(tǒng)內存空間、設置軟件/硬件斷點、單步/多步執(zhí)行等。如圖1所示,EJTAG調試功能模塊由4部分組成:CPU核內部的組件擴展,硬件斷點單
元,調試控制寄存器(DCR)以及TAP接口。

1.2 EJTAG工作機制
   
處理器在某個調試例外(debug exception,如單步運行、斷點等)產(chǎn)生以后,進入到調試模式(debug mode),直到DERET指令執(zhí)行以后從調試模式退出來。在這段時間里,處理器執(zhí)行調試例外處理過程。在調試例外處理過程中,調試軟件通過對TAP處理器的訪問操作,實現(xiàn)了對普通寄存器的訪問、協(xié)處理器的訪問、系統(tǒng)內存空間的訪問等功能。系統(tǒng)退出調試模式以后允許應用程序或是系統(tǒng)代碼繼續(xù)執(zhí)行,直到遇到下一個調試例外。重復以上過程,EJTAG實現(xiàn)了單步運行或者多步運行等調試功能。
1.2.1 調試例外
   
在體系結構的設計上,EJTAG并不需要與CPU緊密結合,但CPU必須提供調試寄存器、進入調試模式和在調試模式下執(zhí)行指令的能力,更重要的是調試例外的優(yōu)先級必須高于其他處理器的例外(exception)。EJTAG調試是通過處理器的調試例外來實現(xiàn)的,調試例外將CPU從非調試模式(non-debug mode)轉到調試模式。在調試模式下也可以再發(fā)生調試例外,這種例外就叫做“調試模式例外(debuIg mode exception)”。
    MIPS 4KC處理器提供的調試例外如表1所列。

    當CPU執(zhí)行了軟件斷點指令(SDBBP),或者發(fā)生了單步調試,或者在EJTAG回路中產(chǎn)生了JtagBrk調試事件,或者發(fā)生了硬件斷點時,CPU就會產(chǎn)生調試例外。SDBBP是一個標準的MIPS指令集指令,軟件斷點的設置就是調試軟件通過把正常的應用程序代碼替換成軟件斷點指令來實現(xiàn)的。EJTAG支持指令斷點和數(shù)據(jù)斷點兩種類型的硬件斷點,指令斷點發(fā)生在處理器取指過程中,數(shù)據(jù)斷點發(fā)生加載/存儲傳輸過程中,它們可以設置在任何地址空間中,包括不能被改寫的ROM空間。調試例外發(fā)生后,CPU首先屏蔽地址錯誤異常和中斷異常,然后轉向調試例外處理程序的執(zhí)行。調試例外處理程序是由調試軟件通過與TAP處理器的配合,利用EJTAG接口實現(xiàn)的。在調試模式下,CPU仍能夠正常地訪問協(xié)處理器和系統(tǒng)內存空間等處理器資源。
    調試寄存器包括DEBUG寄存器、DEPC寄存器和DESAVE寄存器,都被定義在協(xié)處理器中。DEBUG寄存器保存了CPU進入調試模式的原因,以及同時是否發(fā)生了其他CPU例外的標志位,也被用來控制單步運行的設置。DEPC(Debug Exception Program Counter)寄存器保存了發(fā)生調試例外時將要執(zhí)行的那條指令的地址,當退出調試模式后,該地址恢復到PC寄存器中。DESAVE (Debug Exception Save)寄存器是一個草稿寄存器,被調試軟件用在對普通寄存器的處理過程中,該寄存器的內容不需要保存。
1.2.2 調試例外處理過程
   
所有的調試例外都有相同的基本流程:
    ①DEPC保存了中斷返回后重新開始執(zhí)行的指令PC值,設置DEBUG寄存器中的DBD位(表示DEBUG中斷是否發(fā)生在分支延遲槽中)。如果不在延遲槽中,DEPC保存的就是當前的PC值;如果在延遲槽中,DEPC保存的就是那條跳轉指令的PC值。
    ②根據(jù)調試例外更新Debug寄存器中的內容DSS,DBp,DDBL,DDBS,DIB,DINT位)。
    ③DEBUG寄存器中的DExcCode域變?yōu)榉嵌x的。
    ④DEBUG寄存器中的Halt和Doze位更新。
    ⑤在調試處理開始時設置IEXI位來確定是否精確中斷。
    ⑥DEBUG寄存器中的DM位設置為1。
    ⑦處理器開始從調試例外向量取指令進行例外處理。
    處理過程用程序描述如下:


2 龍芯一號處理器IP核簡介
   
龍芯一號處理器IP核是北京神州龍芯集成電路設計有限公司與中國科學院計算技術研究所共同研制的,兼顧通用及嵌入式CPU特點的32位處理器內核。龍芯一號處理器IP核具有可配置特性,用戶可以根據(jù)自己的需求進行選擇配置,從而定制出最適合用戶應用的處理器結構。圖2顯示了龍芯一號IP核的可配置結構,其中虛線部分表示用戶可根據(jù)自己的需求進行選擇配置,從而定制出最適合用戶應用的處理器結構。

    GS32S是龍芯一號處理器系列中的一款,采用RISC架構,可運行MIPS III指令集,有7級流水線,具有32位整數(shù)單元,典型工作頻率為200~266 MHz,典型功耗為0.5W。GS32S不含浮點部件(FPU)、媒體部件(MMX),以及哈佛結構SRAM接口。固定內核、EJTAG、TLB、Cache、AMBA接口和協(xié)處理器接口為固定配置。圖2中的陰影部分為GS32S處理器的配置模塊。


3 GS32S處理器EJTAG調試的實現(xiàn)
3.1 TAP處理器的訪問
   
GS32S CPU從EJTAG Probe取指執(zhí)行,或向EJTAGProbe訪問數(shù)據(jù)(Load/Store),實現(xiàn)處理器進入調試模式后的調試例外執(zhí)行,整個處理過程需要調試軟件通過Probe監(jiān)測進行。在這種情況下,EJTAG的TAP就相當于一個從設備,TAP模塊接收處理器內部對dmseg段進行的取指、Load/Store操作等發(fā)出的訪問,等待外部響應。
    GS32 CPU處于調試模式時,如果ProbEn有效,則對0xFF200000~0xFF2FFFFF的訪問轉向dmseg段;如果ProbTrap有效,則發(fā)生調試例外的處理器轉向0xFF200200取指。TAP處理器訪問流程如圖3所示。
    發(fā)生調試例外時,如果DCR中的ProbTrap位是1,則GS32S CPU跳轉到0xFF20 0200取指執(zhí)行的過程如下:
    ①處理器把PC值(如0xFF200200)送到TAP模塊中的Address寄存器中。
    ②處理器寫TAP模塊中的ECR寄存器,設置PrAcc=1,PRnW=0,Psz[1:0]=2。
    ③處理器不停地測試PrAcc位,為1處于等待狀態(tài)。
    ④EJTAGProbe選擇ECR寄存器,串行移出其內容,看PrAcc 位是否為1。為1表示處理器等待通過TAP輸入要執(zhí)行的指令,同時也表示地址寄存器的值是有效的。
    ⑤EJTAG Probe判斷ECR寄存器的PRnW位,0表示讀。
    ⑥EJTAGProbe選擇地址寄存器,并移出其內容。
    ⑦EJTAG Probe選擇數(shù)據(jù)寄存器,把對應于上一步地址的指令移入數(shù)據(jù)寄存器里。
    ⑧EJTAG Probe選擇ECR寄存器,把PrAcc位置0,其他位保持不變,表示開始由處理器來執(zhí)行數(shù)據(jù)寄存器中的指令。
    ⑨處理器測試PrAcc值為0,把數(shù)據(jù)寄存器中的指令取走執(zhí)行。
    ⑩處理器把PC值加4,發(fā)出讀下一條指令的命令,因為地址仍然在dmseg區(qū)域中,所以重復上面的過程,讀入下一條指令。
    由于流水線的存在,發(fā)生在dmseg內的Load/Store操作分2步進行。第1步,取指譯指;第2步,將指定地址的數(shù)據(jù)裝入寄存器/將寄存器的數(shù)據(jù)裝入指定地址。在指令執(zhí)行過程中這2步之間會有間隙,為了獲得正確的執(zhí)行結果,需要檢測Address寄存器里的內容是否為操作數(shù)地址。若不是則插入nop指令,繼續(xù)檢測Address寄存器里的內容。
3.2 與標準的EJTAG的差異性及應對措施
   
在實現(xiàn)GS32S EJTAG調試功能的過程中,發(fā)現(xiàn)GS32S處理器的EJTAG與標準EJTAG存在著差異性,因此需要調試軟件針對這些差異性采取相應的應對措施。
    (1)TAP狀態(tài)機進入復位狀態(tài)后異常
   
“Test-Logic-Reset”是TAP有限狀態(tài)機16個狀態(tài)中的其中之一。一般來說,在處理器復位后,TAP狀態(tài)機會處于不確定的狀態(tài)。為了使TAP狀態(tài)機正常工作,需要在5個時鐘周期內,置高TDI輸入,讓TAP狀態(tài)機進入“Test-Logic-Reset”的指定狀態(tài)。GS32S處理器的TAP狀態(tài)機在進入“Test-Logic-Reset”狀態(tài)后,會改變3個寄存器的內容:清除DCR寄存器的ProbEn和ProbTrap位;置高協(xié)處理器Debug的DM位;修改協(xié)處理器DEPC的內容為0xBFC00500。然后處理器進入調試模式中,這樣的結果會導致后繼的調試過程被打斷。

    應對措施:調試軟件限制TAP狀態(tài)機進入“Test-LogiC-Reset”狀態(tài)的時機與次數(shù),并在TAP狀態(tài)機進入“Test-Logic-Reset”狀態(tài)后,進行必要的清理工作。
    (2)進入調試模式后PC的輸出值高8位全為零
   
進入調試模式后,處理器會把PC值送到TAP模塊中的Address寄存器中,而通過TAP模塊輸出的Address值高8位全為零。由于對發(fā)生在dmseg段內的Load/Store操作,調試軟件會依據(jù)Address寄存器里的內容是否為操作數(shù)地址來判斷Load/Store操作是否執(zhí)行完畢,因此會發(fā)生比較總是失敗的情況。
    應對措施:該情況僅僅影響Address寄存器輸出值的高8位數(shù)據(jù)(0xFFXXXXXX~0x00XXXXX),因此可在判斷Address寄存器數(shù)據(jù)是否等于操作數(shù)地址時,只比較低24位數(shù)據(jù)。
    (3)未被正確初始化的處理器會進入死機狀態(tài)
   
目標機上電后,處理器將從復位例外向量處取指令執(zhí)行。如果復位向量處為隨機數(shù)據(jù)或不完整的初始化代碼,則處理器執(zhí)行后將會進入死機狀態(tài),不再響應任何EJTAG的TAP處理器的訪問。
    應對措施:首先讓EJTAG TAP執(zhí)行EJTAGBOOT的命令,處理器復位后將會進入調試模式,此后即可使用TAP處理器的訪問機制進行正常的EJTAC調試操作。


結 語
   
EJTAG是一種不影響、不干擾系統(tǒng)運行的新型開發(fā)調試技術,它改變了硬件開發(fā)工具滯后、出現(xiàn)新體系結構且專用于特定處理器的落后局面,提供了一種容易實現(xiàn)的硬件調試標準,具備了實時調試特征,使用5針EJTAG接口實現(xiàn)了硬件斷點、軟件斷點等調試功能。本文在實現(xiàn)了EJTAG調試功能的基礎上,開發(fā)了以USB為快速通信接口、用CPLD硬件實現(xiàn)JTAG時序的MIPS仿真器產(chǎn)品,實現(xiàn)了對GS32S處理器EJTAG調試的支持,并在展訊、海爾等公司基于龍芯一號IP核的項目研究中得到了驗證。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產(chǎn)品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學者共同探討了在形勢依然嚴峻的當下,如何以科技創(chuàng)新、高端化轉型等手段,幫助...

關鍵字: LINK AI BSP 智能家電

嵌入式教程

6897 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉