0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

支持片上測(cè)試和調(diào)試功能的在線調(diào)試模塊的應(yīng)用設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:微計(jì)算機(jī)信息 ? 作者:楊金華;楊松華;張 ? 2021-03-23 14:55 ? 次閱讀

1 引言

集成電路制造工藝的飛速發(fā)展推動(dòng)了信息技術(shù)的發(fā)展,而信息技術(shù)的核心是微處理器技術(shù)。微處理器的總體發(fā)展趨勢(shì)是功能越來(lái)越強(qiáng)大,工作頻率越來(lái)越高。由于微處理器芯片從設(shè)計(jì)過(guò)程到生產(chǎn)過(guò)程中都可能產(chǎn)生一些缺陷,這些缺陷都將最終影響微處理器的功能和性能,為了保證微處理器功能的正確性,減少設(shè)計(jì)風(fēng)險(xiǎn),對(duì)其進(jìn)行測(cè)試和調(diào)試是必不可少的。但是微處理器的發(fā)展趨勢(shì)也導(dǎo)致了微處理器芯片的測(cè)試與調(diào)試變得更加復(fù)雜,板級(jí)調(diào)試系統(tǒng)設(shè)計(jì)和調(diào)試軟件的開(kāi)發(fā)也越來(lái)越困難。特別是進(jìn)入21世紀(jì),集成電路進(jìn)入了高度集成的系統(tǒng)芯片SoC(System-On-Chip)時(shí)代,而嵌入式微處理器是系統(tǒng)芯片的核心。傳統(tǒng)的微處理器的調(diào)試方法采用監(jiān)測(cè)并控制其地址與數(shù)據(jù)總線的方法。對(duì)于高度集成化的系統(tǒng)芯片,由于封裝尺寸的限制,不可能將嵌入片內(nèi)的微處理器信號(hào)引出片外,通過(guò)外部直接測(cè)試和調(diào)試。在板級(jí),通過(guò)軟件模擬、驗(yàn)證和分析等系統(tǒng)功能調(diào)試已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足功能正確性調(diào)試和故障定位等要求,所以微處理器芯片,特別是嵌入式微處理器,硬件上支持片上測(cè)試和調(diào)試功能顯得十分重要。

為了能讓嵌入式微處理器的片上調(diào)試功能也能夠像高級(jí)語(yǔ)言編程工具那樣支持?jǐn)帱c(diǎn)設(shè)置、單步執(zhí)行、寄存器內(nèi)容的查看和內(nèi)存內(nèi)容查看等功能,文章提出了一種在線調(diào)試模塊設(shè)計(jì),此設(shè)計(jì)為嵌入式微處理器增加了一些專用的調(diào)試引腳,通過(guò)這些引腳可以響應(yīng)硬件和軟件觸發(fā),提供開(kāi)始/停止調(diào)試模試,單步調(diào)試操作以及程序執(zhí)行的跟蹤。有了這些引腳,還可以對(duì)微處理器做調(diào)試接口,提供更好的調(diào)試性能,查錯(cuò)功能,從基本停止/ 開(kāi)始或單步執(zhí)行到硬件、軟件斷點(diǎn)支持再到對(duì)數(shù)據(jù)存儲(chǔ)區(qū)、程序存儲(chǔ)區(qū)和SFRs的訪問(wèn)和修改以及對(duì)程序進(jìn)行跟蹤。

2 嵌入式微處理器的片上調(diào)試原理

為微處理器增加的調(diào)試引腳及其功能如表1所示。

支持片上測(cè)試和調(diào)試功能的在線調(diào)試模塊的應(yīng)用設(shè)計(jì)

可實(shí)現(xiàn)的調(diào)試功能:

⑴ 開(kāi)始/停止debug模式

可以通過(guò)兩種方式進(jìn)入調(diào)試模式即硬件請(qǐng)求或者軟件中斷指令TRAP。硬件請(qǐng)求進(jìn)入到debug模式將發(fā)出一個(gè)DebugReq信號(hào)。這個(gè)信號(hào)在核運(yùn)行的每個(gè)指令操作的最后一個(gè)周期的第一個(gè)階段進(jìn)行采樣,若是采樣信號(hào)為高,核將完成當(dāng)前指令,插入一個(gè)NOP指令。在NOP指令的第一階段的最后核將發(fā)出一個(gè)DebugAck信號(hào)然后進(jìn)入debug模式。它的時(shí)序圖見(jiàn)圖1。當(dāng)TRAP指令被執(zhí)行的時(shí)候,核只是簡(jiǎn)單的發(fā)送一個(gè)DebugAck信號(hào),然后在這個(gè)單一周期指令第一個(gè)階段的結(jié)束進(jìn)入debug模式。

在debug模式,核在每個(gè)機(jī)器周期的第一階段的最后采樣DebugReq信號(hào),當(dāng)DebugReq信號(hào)為高之后采樣一個(gè)機(jī)器周期的信號(hào),如果為低則離開(kāi)調(diào)試模式(置DebugAck信號(hào)無(wú)效)。它的時(shí)序圖見(jiàn)圖2。注意:如果在TRAP下進(jìn)入調(diào)試模式,外部硬件必須在重新置信號(hào)為低之前置DebugReq信號(hào)為高一個(gè)機(jī)器周期才可以離開(kāi)試模式。

圖1 進(jìn)入debug模式的時(shí)序圖 圖2 退出debug模式的時(shí)序圖

①DebugReq采樣信號(hào)為高電平。① DebugRep采樣信號(hào)為高電平。

②微處理器內(nèi)核進(jìn)入調(diào)試模式,置DebugAck 為高電平。 ② DebugRep 采樣信號(hào)為低,CPU核置DebugAck為低并離開(kāi)調(diào)試模式。

其中 PROGA 為程序存儲(chǔ)器的地址總線,PROGA_EN 為程序存儲(chǔ)器的地址總線使能。它們是微處理器內(nèi)核已經(jīng)設(shè)計(jì)好的。

⑵單步調(diào)試

在調(diào)試模式下,把DebugReq 置成無(wú)效的低信號(hào),微處理器執(zhí)行一個(gè)用戶指令,等待DebugAck 信號(hào)無(wú)效的時(shí)候指出離開(kāi)了調(diào)試模式,再把DebugReq 信號(hào)置成高電平。

⑶程序執(zhí)行的跟蹤信號(hào) DebugPFetch 和Debug Vector 支持程序追蹤。當(dāng)程序代碼在下一個(gè)上升緣被讀取的時(shí)候DebugPFetch信號(hào)發(fā)出,它并不發(fā)送程序數(shù)據(jù)提取的信號(hào)。(例如使用MOVC 指令讀取數(shù)據(jù))。當(dāng)在程序計(jì)數(shù)器里的下一個(gè)代碼表現(xiàn)為一個(gè)間斷性程序的時(shí)候DebugVector 被發(fā)送,(例如Jump,Call 或者Return 指令)。

⑷外部數(shù)據(jù)存儲(chǔ)器、SFR、內(nèi)部數(shù)據(jù)存儲(chǔ)器的讀和寫

提供了一個(gè)時(shí)序發(fā)生器一個(gè)RAM,它包含了一些訪問(wèn)存儲(chǔ)器的指令。當(dāng)一個(gè)時(shí)序開(kāi)始的時(shí)候,DebugStep信號(hào)發(fā)送直到時(shí)序結(jié)束。因此時(shí)序指令以全速的處理器速度運(yùn)行。在微處理器程序輸入端設(shè)計(jì)了一個(gè)多路選擇器允許時(shí)序發(fā)生器的指令給內(nèi)核執(zhí)行。時(shí)序發(fā)生器中的指令總是把想訪問(wèn)的存儲(chǔ)器和SFRs 中的數(shù)據(jù)加載到累加器A 中,因此只要把XRAMD0 總線的狀態(tài)存儲(chǔ)到結(jié)果儲(chǔ)存器中,然后通過(guò)JTAG 接口把結(jié)果儲(chǔ)存器讀出就可以得知存儲(chǔ)器和SFRs 中的數(shù)據(jù)。給出一個(gè)讀內(nèi)部數(shù)據(jù)存儲(chǔ)器的時(shí)序發(fā)生器中的程序。其中Temp1,Temp 是時(shí)序發(fā)生器中定義的存放中間數(shù)據(jù)的寄存器。

3 微處理器的在線調(diào)試模塊的結(jié)構(gòu)設(shè)計(jì)

在微處理器內(nèi)核中設(shè)計(jì)的調(diào)試部分為DebugReq 信號(hào)鎖存器、調(diào)試狀態(tài)機(jī)、操作碼指示器。

調(diào) 試 狀 態(tài) 機(jī) 是 有 DebugReq 、DebugAck、DebugStep、TRAP 信號(hào)來(lái)控制的。它有4 種狀態(tài):00、01、10、11。00 表示用戶狀態(tài)。01 表示調(diào)試開(kāi)始狀態(tài),此狀態(tài)時(shí)已檢測(cè)到DebugReq 信號(hào)有效,插入NOP 指令。01 表示單步調(diào)試模式,已檢測(cè)到DebugStep 信號(hào)有效。11 為調(diào)試模式。狀態(tài)機(jī)為10、11 時(shí)都要置DebugAck 為有效信號(hào),進(jìn)入Debug 模式。

操作碼指示器是有指令譯碼器和狀態(tài)機(jī)譯碼器控制的。當(dāng)程序代碼在下一個(gè)上升緣被讀取的時(shí)候(而不是程序數(shù)據(jù)的讀?。?操作碼指示器就置DebugPFetch 為有效信號(hào),以實(shí)現(xiàn)對(duì)程序的跟蹤。當(dāng)操作碼指示器檢測(cè)到程序計(jì)數(shù)器為不連續(xù)數(shù)值時(shí)置DebugVector 為有效信號(hào)。

外部數(shù)據(jù)存儲(chǔ)器、SFR、內(nèi)部數(shù)據(jù)存儲(chǔ)器的讀和寫是基于1149.1 JTAG 的設(shè)計(jì)。IEEE 1149.1 JTAG 接口是專門為集成電路測(cè)試和電路板系統(tǒng)測(cè)試制定的國(guó)際標(biāo)準(zhǔn)。TDI(數(shù)據(jù)輸入),TMS(TAP 模式選擇),TCK(測(cè)試時(shí)鐘輸入),TRST(測(cè)試接口復(fù)位),TDO(數(shù)據(jù)輸出)是JTAG 的5 個(gè)外部管腳。調(diào)試部分電路為:調(diào)試掃描鏈、調(diào)試數(shù)據(jù)寄存器、指令譯碼器、時(shí)序發(fā)生器和多路選擇器(MUX)。時(shí)序發(fā)生器是一個(gè)RAM,它包含了一些訪問(wèn)存儲(chǔ)器的指令。指令010110xx 表示啟動(dòng)時(shí)序發(fā)生器,把預(yù)先存好的訪問(wèn)程序送到微處理器的程序輸入端(PROGDI),微處理器執(zhí)行這些程序,實(shí)現(xiàn)對(duì)存儲(chǔ)器、SFR 的訪問(wèn)。指令譯碼器對(duì)調(diào)試指令進(jìn)行譯碼,并發(fā)出調(diào)試控制信號(hào),比如:設(shè)置DebugReq 為有效,進(jìn)入Debug 模式;啟動(dòng)時(shí)序發(fā)生器,控制多路選擇器(MUX),讓PROGDI 上的信號(hào)為時(shí)序發(fā)生器中的指令。調(diào)試數(shù)據(jù)寄存器是為存放中間數(shù)據(jù)和訪問(wèn)結(jié)果數(shù)據(jù)的。調(diào)試掃描鏈對(duì)中間數(shù)據(jù)和訪問(wèn)結(jié)果進(jìn)行查看。

4 結(jié)論

此設(shè)計(jì)給微處理器內(nèi)核增加了一些調(diào)試引腳。實(shí)現(xiàn)了開(kāi)始/停止調(diào)試模試,單步調(diào)試操作以及程序執(zhí)行的跟蹤的調(diào)試功能。這些引腳使內(nèi)核具有很好的可擴(kuò)張性,可對(duì)芯片增加調(diào)試接口,實(shí)現(xiàn)更強(qiáng)大的調(diào)試功能?;?149.1 JTAG 接口的對(duì)存儲(chǔ)器、SFR 訪問(wèn),既可以使芯片原有的測(cè)試功能不受影響,又可以節(jié)省硬件,減少開(kāi)銷。帶Debug 模塊的微處理器在SMIC 的0.25um 標(biāo)準(zhǔn)單元庫(kù)映射綜合后,可工作在120MHz。仿真的結(jié)果表明,擴(kuò)充Debug 功能的JTAG 接口所增加的芯片面積很少,而且在對(duì)存儲(chǔ)器、SFR 進(jìn)行訪問(wèn)時(shí)不影響處理器的工作速度。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423663
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305241
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2263

    瀏覽量

    82457
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于SoPC的通用在線調(diào)試器設(shè)計(jì)

    目前,國(guó)內(nèi)生產(chǎn)的部分在線仿真調(diào)試器可以對(duì)部分嵌入式芯片進(jìn)行仿真調(diào)試。但從本質(zhì),這些仿真調(diào)試器無(wú)法對(duì)所有帶
    發(fā)表于 01-16 11:02 ?885次閱讀
    基于SoPC的通用<b class='flag-5'>在線</b><b class='flag-5'>調(diào)試</b>器設(shè)計(jì)

    接口調(diào)試測(cè)試工具postman安裝說(shuō)明與基礎(chǔ)功能

    postman是一款支持http協(xié)議的接口調(diào)試測(cè)試工具,其主要特點(diǎn)就是功能強(qiáng)大,使用簡(jiǎn)單且易用性好 。
    發(fā)表于 07-15 09:24 ?1123次閱讀

    單片機(jī)串口模塊調(diào)試方法

    筆者在調(diào)試某Cortex-M3內(nèi)核單片機(jī)時(shí)遇到一個(gè)問(wèn)題,此單片機(jī)不具備在線仿真功能,因此調(diào)試代碼時(shí)只能使用UART輸出Log的方式調(diào)試。
    發(fā)表于 07-28 15:48 ?1556次閱讀
    單片機(jī)串口<b class='flag-5'>模塊</b><b class='flag-5'>調(diào)試</b>方法

    英創(chuàng)Eclipse支持在線調(diào)試Linux應(yīng)用程序

    加快了應(yīng)用程序的開(kāi)發(fā)進(jìn)度。除此之外,為方便習(xí)慣在圖形界面進(jìn)行調(diào)試的客戶,此Eclipse也提供了在線調(diào)試功能,只要進(jìn)行相應(yīng)設(shè)置,就能在Eclipse中
    發(fā)表于 03-24 16:28

    玩轉(zhuǎn)Zynq連載5——基于Vivado的在線板級(jí)調(diào)試概述

    我們看看Vivado中支持的一些重要調(diào)試方式。ILA(Integrated LogicAnalyzer),即內(nèi)嵌邏輯分析儀??梢栽贔PGA器件對(duì)已實(shí)現(xiàn)的設(shè)計(jì)進(jìn)行板級(jí)在線
    發(fā)表于 05-24 15:16

    一種嵌入式微處理器中的在線調(diào)試模塊設(shè)計(jì)

    文章提出了一種嵌入式微處理器的在線調(diào)試模塊。這個(gè)模塊可以用較少的硬件開(kāi)支實(shí)現(xiàn)一些強(qiáng)大的調(diào)試功能
    發(fā)表于 08-14 09:17 ?24次下載

    嵌入式處理器在調(diào)試功能的設(shè)計(jì)

    以 龍芯1號(hào) 處理器為研究對(duì)象,探討了嵌入式處理器中在調(diào)試功能的設(shè)計(jì)實(shí)現(xiàn)方法。大大方便了軟件開(kāi)發(fā)與系統(tǒng)調(diào)試
    發(fā)表于 06-29 17:45 ?48次下載
    嵌入式處理器在<b class='flag-5'>片</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>功能</b>的設(shè)計(jì)

    總線實(shí)現(xiàn)內(nèi)硬件調(diào)試支持單元設(shè)計(jì)

    本文所提出的一種硬件調(diào)試單元完全自主實(shí)現(xiàn),且順利通過(guò)Modelsim 的功能仿真,所以它不但能夠有效的完成對(duì)處理器的診斷與調(diào)試,而且其擁
    發(fā)表于 08-11 11:04 ?1798次閱讀
    總線實(shí)現(xiàn)<b class='flag-5'>片</b>內(nèi)硬件<b class='flag-5'>調(diào)試</b><b class='flag-5'>支持</b>單元設(shè)計(jì)

    調(diào)試模塊(可按鍵調(diào)試

    飛思卡爾單片機(jī) 調(diào)試模塊(可按鍵調(diào)試)源程序
    發(fā)表于 01-13 15:18 ?11次下載

    總線實(shí)現(xiàn)內(nèi)硬件調(diào)試支持單元設(shè)計(jì)

    系統(tǒng)的出現(xiàn)使得芯片可以實(shí)現(xiàn)更加復(fù)雜的功能,獲取更高的性能,但同時(shí)其內(nèi)部信號(hào)也變得越來(lái)越難以觀察和控制,相應(yīng)的測(cè)試調(diào)試工作也遇到了難以克
    發(fā)表于 12-01 02:01 ?399次閱讀
     總線實(shí)現(xiàn)<b class='flag-5'>片</b>內(nèi)硬件<b class='flag-5'>調(diào)試</b><b class='flag-5'>支持</b>單元設(shè)計(jì)

    基于雙端口RAM中多行代碼設(shè)置斷點(diǎn)功能實(shí)現(xiàn)新型通用調(diào)試模塊的設(shè)計(jì)

    執(zhí)行、查看處理器內(nèi)部狀態(tài)、查看和修改Memory空間中的數(shù)據(jù)等基本的在線調(diào)試功能。上述基本的在線調(diào)試功能
    發(fā)表于 03-10 10:43 ?910次閱讀
    基于雙端口RAM中多行代碼設(shè)置斷點(diǎn)<b class='flag-5'>功能</b>實(shí)現(xiàn)新型通用<b class='flag-5'>調(diào)試</b><b class='flag-5'>模塊</b>的設(shè)計(jì)

    FPGA開(kāi)發(fā)在線調(diào)試和配置過(guò)程

    在線調(diào)試也稱作板級(jí)調(diào)試,它是將工程下載到FPGA芯片后分析代碼運(yùn)行的情況。
    的頭像 發(fā)表于 11-01 10:00 ?4522次閱讀
    FPGA開(kāi)發(fā)<b class='flag-5'>在線</b><b class='flag-5'>調(diào)試</b>和配置過(guò)程

    PLC編程中模擬調(diào)試在線調(diào)試

    plc應(yīng)用程序的調(diào)試可分為模擬調(diào)試在線調(diào)試兩個(gè)步驟。 1.模擬調(diào)試 模擬調(diào)試是指在沒(méi)有輸出設(shè)備
    發(fā)表于 01-06 11:28 ?5737次閱讀

    EB-USB-DA 調(diào)試適配器帶編程功能調(diào)試仿真器用戶手冊(cè)

    EB-USB-DA 調(diào)試適配器帶編程功能調(diào)試仿真器用戶手冊(cè)
    發(fā)表于 04-21 19:18 ?0次下載
    EB-USB-DA <b class='flag-5'>調(diào)試</b>適配器帶編程<b class='flag-5'>功能</b>的<b class='flag-5'>片</b>上<b class='flag-5'>調(diào)試</b>仿真器用戶手冊(cè)

    PLC遠(yuǎn)程調(diào)試模塊是什么?PLC遠(yuǎn)程調(diào)試模塊功能

    PLC(可編程邏輯控制器)遠(yuǎn)程調(diào)試模塊是一種設(shè)備或軟件功能,它允許工程師或技術(shù)人員在遠(yuǎn)離實(shí)際現(xiàn)場(chǎng)的情況下,通過(guò)網(wǎng)絡(luò)對(duì)PLC進(jìn)行編程、監(jiān)控、故障診斷和參數(shù)調(diào)整。這對(duì)于分布廣泛或難以直接接觸的工業(yè)
    的頭像 發(fā)表于 05-22 14:53 ?748次閱讀
    PLC遠(yuǎn)程<b class='flag-5'>調(diào)試</b><b class='flag-5'>模塊</b>是什么?PLC遠(yuǎn)程<b class='flag-5'>調(diào)試</b><b class='flag-5'>模塊</b>的<b class='flag-5'>功能</b>