亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenOCD和DAP的嵌入式遠(yuǎn)程調(diào)試系統(tǒng)研究與設(shè)計(jì)

        2017-12-01 00:33:28余梓奇章建雄閻燕山
        電子設(shè)計(jì)工程 2017年22期
        關(guān)鍵詞:嵌入式指令調(diào)試

        余梓奇,章建雄,馬 鵬,閻燕山

        (1.中國(guó)電子科技集團(tuán)第三十二研究所上海201808;2.中國(guó)航空無線電電子研究所上海200241)

        基于OpenOCD和DAP的嵌入式遠(yuǎn)程調(diào)試系統(tǒng)研究與設(shè)計(jì)

        余梓奇1,章建雄1,馬 鵬1,閻燕山2

        (1.中國(guó)電子科技集團(tuán)第三十二研究所上海201808;2.中國(guó)航空無線電電子研究所上海200241)

        為了解決傳統(tǒng)調(diào)試器與自主可控芯片兼容性不強(qiáng)的問題,文中針對(duì)自主設(shè)計(jì)的一款嵌入式CPU,分析了遠(yuǎn)程調(diào)試的原理,研究并設(shè)計(jì)了一種基于OpenOCD和DAP(調(diào)試訪問端口)的遠(yuǎn)程調(diào)試系統(tǒng)。該系統(tǒng)通過OpenOCD向目標(biāo)芯片發(fā)送調(diào)試命令,經(jīng)過JTAG仿真器傳給目標(biāo)芯片的JTAG接口,并通過DAP生成總線事務(wù)完成調(diào)試操作。經(jīng)實(shí)際應(yīng)用表明,該系統(tǒng)支持插入斷點(diǎn)、單步執(zhí)行、讀寫寄存器和存儲(chǔ)空間等調(diào)試功能,可作為GDB服務(wù)程序與GDB集成以實(shí)現(xiàn)更強(qiáng)大的調(diào)試功能,具有兼容性強(qiáng),穩(wěn)定性強(qiáng),可擴(kuò)展性好的特點(diǎn)。

        遠(yuǎn)程調(diào)試;OpenOCD;調(diào)試訪問端口;JTAG仿真器

        嵌入式遠(yuǎn)程調(diào)試系統(tǒng)是嵌入式系統(tǒng)開發(fā)的重要工具,可極大降低嵌入式軟件開發(fā)的難度。嵌入式開發(fā)中的調(diào)試工作受限于嵌入式軟件運(yùn)行的資源,不能夠直接在開發(fā)板上運(yùn)行調(diào)試軟件,調(diào)試軟件與被調(diào)程序不得不在兩個(gè)不同的環(huán)境中運(yùn)行,因此嵌入式調(diào)試必須采用遠(yuǎn)程調(diào)試的方式,也稱交叉調(diào)試[1],被調(diào)軟件和調(diào)試器之間一般通過并口、USB接口或者網(wǎng)絡(luò)接口連接。

        國(guó)外在嵌入式調(diào)試器方面一直領(lǐng)先,國(guó)內(nèi)普遍采用國(guó)外的工具,價(jià)格比較昂貴,而適配自主可控的國(guó)產(chǎn)芯片的調(diào)試系統(tǒng)相對(duì)缺乏,這就對(duì)嵌入式開發(fā)環(huán)境提出了新的要求,因此文中針對(duì)自主設(shè)計(jì)的嵌入式CPU研究并設(shè)計(jì)了一種基于OpenOCD和DAP的遠(yuǎn)程調(diào)試系統(tǒng),以適應(yīng)目前嵌入式開發(fā)的需求。該調(diào)試系統(tǒng)可適用于沒有操作系統(tǒng)的目標(biāo)機(jī),通過OpenOCD向目標(biāo)芯片發(fā)送調(diào)試命令,目標(biāo)芯片的DAP收到命令并發(fā)出總線事務(wù)實(shí)現(xiàn)對(duì)CPU和外圍設(shè)備的訪問。

        1 遠(yuǎn)程調(diào)試系統(tǒng)結(jié)構(gòu)

        本遠(yuǎn)程調(diào)試系統(tǒng)包括的部件有:GDB、OpenOCD、JTAG仿真器和目標(biāo)機(jī)調(diào)試訪問端口。系統(tǒng)架構(gòu)如圖1所示。其中OpenOCD和GDB運(yùn)行在宿主機(jī)端,JTAG仿真器連接宿主機(jī)和目標(biāo)機(jī),目標(biāo)機(jī)調(diào)試訪問端口DAP解析收到的調(diào)試命令,控制處理器執(zhí)行調(diào)試操作。本系統(tǒng)實(shí)現(xiàn)的關(guān)鍵在于設(shè)計(jì)了獨(dú)立的DAP以及在OpenOCD中設(shè)計(jì)了符合目標(biāo)芯片的調(diào)試特性的接口函數(shù)。

        圖1 遠(yuǎn)程調(diào)試系統(tǒng)架構(gòu)

        1.1 OpenOCD

        OpenOCD(Open On-Chip Debugger)是一個(gè)開源的通用上位機(jī)調(diào)試軟件,與GNU GCC工具鏈聯(lián)合作為多種嵌入式目標(biāo)系統(tǒng)的調(diào)試器所用,支持所有系列的ARM處理器以及MIPS和FPGA等核心的芯片,也支持眾多商用的JTAG仿真適配器[2]。由于OpenOCD的開源性,可根據(jù)不同的目標(biāo)芯片改寫相應(yīng)的操作函數(shù)以適配各個(gè)芯片,使得基于OpenOCD搭建的調(diào)試系統(tǒng)具有兼容性強(qiáng),可擴(kuò)展好的特性[3]。OpenOCD相較于其他調(diào)試器的優(yōu)勢(shì)在于,可以直接讀寫物理地址和核內(nèi)部寄存器,更接近硬件層面,對(duì)于測(cè)試硬件設(shè)計(jì)有不小幫助[4];

        1.2 JTAG仿真器

        大多數(shù)仿真器都由一個(gè)位于主機(jī)和被調(diào)試系統(tǒng)之間的硬件電路組成。一端通過USB接口與主機(jī)端連接,另一端通過JTAG接口與目標(biāo)板上的微處理器的調(diào)試電路連接。

        仿真器中主要部分為USB協(xié)議棧,以及JTAG接口。JTAG仿真器接收到宿主機(jī)通信端口發(fā)出的信號(hào)后,將其轉(zhuǎn)換成標(biāo)準(zhǔn)的JTAG信號(hào)發(fā)給目標(biāo)機(jī)JTAG接收端,目標(biāo)機(jī)完成指定的調(diào)試操作后再將結(jié)果反饋給宿主機(jī)[5]。

        1.3 調(diào)試訪問端口

        調(diào)試訪問端口DAP(Debug Access Port)主要由調(diào)試端口(DP)和訪問端口(AP)兩部分組成。DAP作為一個(gè)整體的本質(zhì)作用是將JTAG接口傳來的數(shù)據(jù)翻譯成不同的系統(tǒng)總線事務(wù)[6]。JTAG-DP接收到JTAG信號(hào),經(jīng)過DAP內(nèi)部總線控制訪問端口AP;通過AHB-AP可以訪問到掛載在AHB總線上的所有從設(shè)備;APB-AP僅能訪問與Debug APB連接的處理器核,通過訪問處理器核中的Debug邏輯實(shí)現(xiàn)調(diào)試操作[7]。DP和AP內(nèi)部也有相應(yīng)的控制寄存器,主機(jī)端的調(diào)試器可以獨(dú)立地訪問這些寄存器,以獲取DAP的運(yùn)行情況,且不干擾目標(biāo)芯片的運(yùn)行。

        1.4 GDB

        GDB作為GNU開源組織下的一個(gè)調(diào)試工具,具備其他商用調(diào)試器的所有功能。GDB遠(yuǎn)程調(diào)試的基本原理是通過 RSP(Remote Serial Protocol)協(xié)議實(shí)現(xiàn)調(diào)試功能。RSP協(xié)議定義了消息的讀寫格式,控制應(yīng)用程序的調(diào)試以及相應(yīng)狀態(tài)[8]。GDB在此系統(tǒng)中不是必須的,根據(jù)實(shí)際調(diào)試需求而定。OpenOCD與GDB聯(lián)合使用時(shí)可視作一種GDB Server[9]。

        2 調(diào)試系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)

        本節(jié)詳細(xì)介紹本遠(yuǎn)程調(diào)試系統(tǒng)中調(diào)試訪問端口和OpenOCD調(diào)試函數(shù)的具體設(shè)計(jì)實(shí)現(xiàn)。

        2.1 DAP設(shè)計(jì)原理

        DAP由調(diào)試端口DP和訪問端口AP組成。數(shù)據(jù)流經(jīng)DP傳給AP,最后流向待訪問的調(diào)試資源。DAP結(jié)構(gòu)圖如圖2所示。

        圖2 DAP結(jié)構(gòu)圖

        調(diào)試端口JTAG-DP可以分成TAP控制器、掃描鏈、指令系統(tǒng)3個(gè)部分[10]。TAP控制器事實(shí)上是一個(gè)有限狀態(tài)機(jī),由輸入信號(hào)TMS和時(shí)鐘TCK控制狀態(tài)機(jī)的運(yùn)行,提供控制信息。JTAG-DP內(nèi)部包括兩大類掃描鏈:指令掃描鏈(IR scan chain)和數(shù)據(jù)掃描鏈(DR scan chain)。根據(jù)狀態(tài)機(jī)的不同狀態(tài)首先指定指令或數(shù)據(jù)寄存器組,然后控制寄存器組的捕獲、移位、更新等操作。如表1所示定義了5種JTGA指令。如果是DPACC或APACC指令,接下來則換到數(shù)據(jù)掃描鏈,數(shù)據(jù)經(jīng)TDI移入數(shù)據(jù)寄存器,寫數(shù)據(jù)在更新狀態(tài)發(fā)出,讀數(shù)據(jù)則在下一次的捕獲狀態(tài)讀取,經(jīng)TDO讀出。

        表1 JTAG指令

        訪問端口AHB-AP和APB-AP內(nèi)部分為主從端,Slave端負(fù)責(zé)接收DP傳來的命令和數(shù)據(jù),Master端負(fù)責(zé)產(chǎn)生相應(yīng)的總線事務(wù)[11]。本系統(tǒng)設(shè)計(jì)APBAP與Debug APB總線相連,可訪問到核內(nèi)的調(diào)試資源,控制CPU運(yùn)行或插入硬件斷點(diǎn)和觀察點(diǎn);AHBAP與AHB總線相連,可以訪問到所有掛載在AHB總線上的外設(shè)。由于對(duì)核的訪問和對(duì)外設(shè)的訪問是通過不同的線路進(jìn)行,故該調(diào)試系統(tǒng)可以實(shí)現(xiàn)訪問外設(shè)而不影響核內(nèi)指令的正常運(yùn)行。

        調(diào)試器對(duì)DAP的訪問可分為三級(jí)[12]:對(duì)DP的訪問,對(duì)AP的訪問和對(duì)系統(tǒng)資源的訪問。這三級(jí)是遞進(jìn)的關(guān)系,要想訪問系統(tǒng)資源,必須先訪問DP和AP。三級(jí)訪問結(jié)構(gòu)如圖3所示。首先訪問DP,配置APSEL寄存器指定要訪問的AP寄存器;再訪問AP的Bank0中的寄存器TAR和DRW,分別指定要訪問系統(tǒng)資源的地址和讀寫數(shù)據(jù);最后AP發(fā)出相應(yīng)的總線事務(wù),完成對(duì)調(diào)試資源的訪問??梢耘渲肁P中的CSW寄存器選擇訪問模式,例如要連續(xù)訪問一段地址,可以使用地址自增模式,每完成一次讀寫訪問便將AP-TAR中的地址加4,這樣每次只需操作DP訪問一次AP-TAR,不用重新寫值改變地址。通過這三級(jí)訪問最終實(shí)現(xiàn)嵌入式系統(tǒng)的調(diào)試和對(duì)DAP本身的控制。

        為了能夠控制處理器的狀態(tài),設(shè)計(jì)DAP以存儲(chǔ)空間映射(Memory map)的方式訪問處理器核的調(diào)試接口[13]。核中的調(diào)試相關(guān)寄存器映射到Debug APB上的4KB地址空間。向APB-AP TAR寄存器中寫入相應(yīng)地址即可訪問到調(diào)試寄存器。

        2.2 OpenOCD設(shè)計(jì)原理

        基于OpenOCD的開源性,可以根據(jù)不同的目標(biāo)芯片進(jìn)行定制設(shè)計(jì)和裁剪。OpenOCD可主要分為GDB服務(wù)模塊、DAP訪問模塊和目標(biāo)芯片調(diào)試模塊這樣三個(gè)模塊。另外還有JTAG仿真器驅(qū)動(dòng)模塊,主要是調(diào)用現(xiàn)有的libusb庫(kù)函數(shù)根據(jù)不同仿真器的特性來驅(qū)動(dòng)USB接口,進(jìn)而驅(qū)動(dòng)JTAG仿真器[14],這里不再贅述。下面介紹主要功能模塊的設(shè)計(jì)原理。

        圖3 DAP三級(jí)訪問結(jié)構(gòu)示意圖

        2.2.1 GDB服務(wù)模塊

        GDB服務(wù)模塊類似于GDB Server,主要包括3個(gè)子模塊[15]:1)通信連接模塊,作為GDB與OpenOCD中間的橋梁,實(shí)現(xiàn)兩者的通信。GDB服務(wù)模塊啟動(dòng)后,將調(diào)用一個(gè)線程監(jiān)聽通信連接,當(dāng)GDB發(fā)起連接時(shí),將通知后續(xù)模塊建立調(diào)試連接;2)事件監(jiān)聽模塊,循環(huán)監(jiān)聽調(diào)試事件并跟蹤某個(gè)進(jìn)程的進(jìn)行;3)命令解析模塊,解析RSP包的格式,提取調(diào)試命令內(nèi)容交給OpenOCD執(zhí)行,收到返回?cái)?shù)據(jù)后再封裝成RSP數(shù)據(jù)包。

        2.2.2 DAP訪問模塊

        DAP訪問模塊根據(jù)上一節(jié)提到的DAP三級(jí)訪問原理,實(shí)現(xiàn)了掃描鏈的驅(qū)動(dòng),DAP寄存器的訪問,依據(jù)不同的上層調(diào)試操作選擇不同的AP訪問系統(tǒng)資源。如圖4所示是DAP的訪問流程圖。該模塊具體分為兩部分:1)JTAG協(xié)議模塊,實(shí)現(xiàn)TAP狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換,根據(jù)配置文件中對(duì)時(shí)鐘的設(shè)置改變TCK的速度,在每個(gè)TCK節(jié)拍到來時(shí),指定TMS完成狀態(tài)跳轉(zhuǎn)。設(shè)計(jì)jtag_ir_scan()和jtag_dr_scan()函數(shù)實(shí)現(xiàn)JTAG指令的選擇和數(shù)據(jù)掃描鏈的移位;2)DAP協(xié)議模塊,分析調(diào)試操作模塊的不同命令,首先調(diào)用jtag_ir_scan()函 數(shù) 指 定 DP操 作 為 DPACC或APACC,接著調(diào)用jtag_dr_scan()函數(shù)載入數(shù)據(jù)選擇AP和指定讀寫操作。訪問結(jié)束后調(diào)用jtagdp_transaction_endcheck()函數(shù)檢查訪問是否正常,主要根據(jù)數(shù)據(jù)掃描鏈后3位的值,查看當(dāng)前DPCTRL/STAT的OVERRUN和STICKYERR位是否置1,如果不正常就嘗試重新訪問并向上層反饋錯(cuò)誤代號(hào)。

        圖4 DAP訪問流程

        2.2.3 目標(biāo)芯片調(diào)試模塊設(shè)計(jì)

        根據(jù)目標(biāo)處理器的類型,本模塊設(shè)計(jì)實(shí)現(xiàn)的是通過調(diào)用DAP訪問模塊中的函數(shù),訪問處理器中DEBUG相關(guān)寄存器和外設(shè)資源,實(shí)現(xiàn)讓目標(biāo)處理器執(zhí)行具體調(diào)試操作。下面重點(diǎn)討論各項(xiàng)功能的實(shí)現(xiàn)。

        1)停止運(yùn)行:控制CPU停止運(yùn)行當(dāng)前指令,進(jìn)入調(diào)試狀態(tài),首先向DRCR_HALTREQ位寫1發(fā)出停止請(qǐng)求,該操作會(huì)產(chǎn)生調(diào)試請(qǐng)求異常,使CPU保存現(xiàn)場(chǎng)。接著寫DSCR_ITRen位寫1使能ITR功能,以便在后續(xù)的調(diào)試操作中向CPU發(fā)送指令。讀DSCR字獲取當(dāng)前CPU狀態(tài),DSCR_HALTED位為1說明CPU已經(jīng)停止進(jìn)入調(diào)試狀態(tài)。

        2)插入斷點(diǎn):斷點(diǎn)是調(diào)試器控制目標(biāo)程序執(zhí)行的基本手段。這里斷點(diǎn)分為軟斷點(diǎn)和硬斷點(diǎn),軟斷點(diǎn)是將待插入斷點(diǎn)處的機(jī)器碼換成特殊的BKPT指令,當(dāng)CPU執(zhí)行到這條指令時(shí)會(huì)產(chǎn)生斷點(diǎn)異常使CPU進(jìn)入調(diào)試狀態(tài);硬斷點(diǎn)是通過向BVR中寫待插入斷點(diǎn)的地址,CPU每次執(zhí)行指令前會(huì)將PC與BVR比較,地址匹配便產(chǎn)生斷點(diǎn)異常,打斷這條指令的執(zhí)行,使CPU直接進(jìn)入調(diào)試狀態(tài)。從速度上講,設(shè)置硬件斷點(diǎn)更快。

        3)單步執(zhí)行:實(shí)際上是一個(gè)刪除斷點(diǎn)——插入斷點(diǎn)——恢復(fù)執(zhí)行的過程。首先刪除當(dāng)前停止位置的斷點(diǎn),再向下一條指令位置處插入新的斷點(diǎn),然后恢復(fù)執(zhí)行,CPU執(zhí)行完當(dāng)前指令會(huì)觸發(fā)下條指令的斷點(diǎn)。

        4)恢復(fù)執(zhí)行:恢復(fù)CPU運(yùn)行指令,離開調(diào)試狀態(tài)。和停止運(yùn)行操作相似,首先向DSCR_ITRen位寫零關(guān)閉ITR功能,再DRCR_RESTART位寫1發(fā)出重新運(yùn)行請(qǐng)求,控制CPU恢復(fù)現(xiàn)場(chǎng)。如果沒有指定恢復(fù)執(zhí)行的地址,則在當(dāng)前PC處開始執(zhí)行,如果指定了地址,在離開調(diào)試功能前會(huì)向PC寫入新地址,控制CPU從這里開始執(zhí)行。

        5)讀寫調(diào)試資源:分兩種情況,如果訪問CPU內(nèi)的寄存器是通過ITR執(zhí)行相應(yīng)指令,再通過RX、TX完成數(shù)據(jù)傳輸。如果訪問CPU外的存儲(chǔ)空間是直接通過AHB總線訪問。

        2.3 集成GDB

        OpenOCD可以與GDB協(xié)同工作,接收GDB發(fā)送來的命令傳給目標(biāo)機(jī)。相對(duì)OpenOCD的調(diào)試操作,GDB提供了更強(qiáng)大并更“上層”的調(diào)試功能。GDB可以直接面向源碼級(jí)調(diào)試,可以針對(duì)函數(shù)名或語句行號(hào)插入斷點(diǎn),并以語句單步執(zhí)行[16]。在GDB環(huán)境中輸入target remote localhost:3333命令即可與OpenOCD建立連接,端口號(hào)可以在目標(biāo)芯片配置文件中修改。連接成功后使用load命令載入待調(diào)程序。與調(diào)試本地程序不同,遠(yuǎn)程調(diào)試是通過“c”命令而不是“r”命令使待調(diào)程序開始執(zhí)行。其他命令與本地調(diào)試類似,所以對(duì)于熟悉GDB操作的開發(fā)人員,可以使用GDB配合OpenOCD高效地調(diào)試嵌入式軟件程序。

        3 測(cè)試結(jié)果

        文中針對(duì)自主設(shè)計(jì)地嵌入式CPU,選用J-link作為JTAG仿真器,在ubuntu系統(tǒng)上啟動(dòng)OpenOCD,向目標(biāo)芯片發(fā)送調(diào)試命令。測(cè)試過程為首先向芯片下載一個(gè)根據(jù)U-boot裁剪的boot程序,然后在該程序所在內(nèi)存處的的不同位置插入斷點(diǎn),觀察程序執(zhí)行情況。

        OpenOCD連接成功后首先讀取JTAG仿真器和DAP的相關(guān)信息,以比較是否和配置文件中聲明的相同,同時(shí)還讀取了核中的調(diào)試寄存器,獲取芯片信息,如支持的硬件斷點(diǎn)和觀察點(diǎn)個(gè)數(shù)。

        使用halt命令使處理器停止運(yùn)行后即表示進(jìn)入調(diào)試狀態(tài),使用load_image命令下載程序到指定地址并改變PC指針到指定地址開始執(zhí)行。通過bp命令插入斷點(diǎn),處理器執(zhí)行到斷點(diǎn)處停止執(zhí)行,可以看到停止時(shí)的狀態(tài)信息。單步step操作執(zhí)行到下條指令再恢復(fù)運(yùn)行。程序最后停止在0x00200380處,這與boot程序的最后一條指令地址一樣,說明處理器執(zhí)行完了該程序的所有指令,操作過程如圖5所示。

        圖5 OpenOCD操作過程

        4 結(jié) 論

        當(dāng)前我國(guó)在嵌入式軟件開發(fā)中所使用的調(diào)試工具多為國(guó)外產(chǎn)品,價(jià)格昂貴,不利于推廣。本文研究了嵌入式系統(tǒng)遠(yuǎn)程調(diào)試技術(shù),自主研發(fā)的嵌入式處理器設(shè)計(jì)了專門的DAP模塊,在調(diào)試器OpenOCD的基礎(chǔ)上設(shè)計(jì)了相應(yīng)的調(diào)試操作函數(shù)接口,實(shí)現(xiàn)了高效穩(wěn)定的遠(yuǎn)程調(diào)試系統(tǒng)。本文提出的遠(yuǎn)程調(diào)試設(shè)計(jì)方法對(duì)其他嵌入式調(diào)試系統(tǒng)設(shè)計(jì)具有一定參考價(jià)值。

        [1]馬艷.基于事件循環(huán)機(jī)制的嵌入式應(yīng)用級(jí)交叉調(diào)試器的研究[D].武漢:華中科技大學(xué),2013.

        [2] Wootton C.DebuggingYourApplication[C]//Beginning Samsung ARTIK.Apress,2016:325-331.

        [3]黃子晨,李德華.基于OpenOCD和JTAG的嵌入式交叉開發(fā)環(huán)境[J].儀器儀表用戶,2012,18(2):470-478.

        [4]Mike Anderson.Using OpenOCD JTAG in Android Kernel Debugging:Making Android Driver Work-(PPT)[C]//Embeded systems conference 2013,San Jose,California,USA:ESC Silicon Valley,2013.

        [5]吳亞杰.基于EJTAG的OCD調(diào)試方案的研究與實(shí)現(xiàn)[D].青島:中國(guó)海洋大學(xué),2012.

        [6]徐文昌.SoC調(diào)試跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2013.

        [7]張鵬,樊曉椏,黃小平.基于總線訪問的片上調(diào)試方法研究[J].計(jì)算機(jī)測(cè)量與控制,2014(2):510-512,518.

        [8]況陽(yáng).支持USB的嵌入式軟件遠(yuǎn)程調(diào)試器的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011.

        [9]Beneder R,Kramer M,Brejcha P.A two stage approach for a cost-effective and versatile debugging unit and starter platform[C]//Mechatronics and Embedded Systems and Applications(MESA),2012 IEEE/ASME International Conference on.IEEE,2012:330-335.

        [10]劉慧.基于SOC嵌入式處理器調(diào)試系統(tǒng)的開發(fā)與研究[D].武漢:武漢紡織大學(xué),2013.

        [11]Joseph Yiu.ARM Cortex-M3權(quán)威指南[M].姚文祥.北京:清華大學(xué)出版社,2014.

        [12]Esliger J L,F(xiàn)oley D.Integrated circuit with secure boot from a debug access port and method therefor:U.S.Patent 8,156,317[P].2012-4-10.

        [13]王哲宇.基于CoreSight接口的ARM跨平臺(tái)調(diào)試系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2015.

        [14]Beneder R.Development of an OpenOCD compatible Debugger for ARM-CMARMJTAG[D].University of Applied Sciences Technikum Wien,2011.

        [15]殷紹劍,雷航,詹瑾瑜.嵌入式遠(yuǎn)程調(diào)試原理研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014(6):240-243.

        [16]任艷偉.基于acoral操作系統(tǒng)的調(diào)試器的研究與設(shè)計(jì)[D].成都:電子科技大學(xué),2012.

        Research and design of embedded remote debugging system based on OpenOCD and DAP

        YU Zi?qi1,ZHANG Jian?xiong1,MA Peng1,YAN Yan?shan2
        (1.The32nd Research Institute of China Electronics Technology Group Corporation,Shanghai201808,China;2.China Aviation Radio Electronics Research Institute,Shanghai200241,China)

        In order to solve the problem of the compatibility between the traditional debugger and selfcontrollable chip.In view of the self-designed embedded CPU,this paper analyzes the principle of remote debugging,researches and designs a remote debugging system based on OpenOCD and DAP(debug access port).The system sends the debug command to the target chip through OpenOCD,these commands are sent to the JTAG port of the target chip by JTAG emulator and completes the debug operation through DAP generating bus transaction.The experiment and application show that this system supports insertion breakpoints,single-step execution,read or write registers and storage space and other functions,the system also can integrate with GDB as GDB server program to achieve more powerful debugging features,with strong compatibility,strong stability,good scalability.

        remote debugging;OpenOCD;debug access port;JTAG emulator

        TP302.1

        A

        1674-6236(2017)22-0149-05

        2016-10-23稿件編號(hào):201610134

        余梓奇(1992—),男,湖北武漢人,碩士研究生。研究方向:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、數(shù)字系統(tǒng)設(shè)計(jì)。

        猜你喜歡
        嵌入式指令調(diào)試
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        基于航拍無人機(jī)的設(shè)計(jì)與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
        無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        調(diào)壓柜的調(diào)試與試運(yùn)行探討
        Altera加入嵌入式視覺聯(lián)盟
        日本高清一区二区在线观看| 欧美牲交a欧美牲交| 日本一二三区免费在线| 一区二区三区视频在线观看免费| 国产无套内射又大又猛又粗又爽| 亚洲国产成人精品无码一区二区| 日韩人妻无码一区二区三区| 久久久国产精品樱花网站| 久久精品国产亚洲av热九| 国产亚洲精品久久情侣| 国产h视频在线观看| 亚洲av无码av男人的天堂| 无码人妻少妇色欲av一区二区| 无遮挡亲胸捏胸免费视频| 黄色毛片视频免费| 日本高清在线播放一区二区三区| 国产人成视频免费在线观看| 精品极品一区二区三区| 国产一级内射视频在线观看| 久久精品免费观看国产| 夜爽8888视频在线观看| 中文字幕一区二区三区乱码不卡| 视频一区二区不中文字幕| 久久久亚洲av午夜精品| 日韩av一区二区网址| 国产二级一片内射视频插放| 亚洲国产美女在线观看| 久久洲Av无码西西人体| 人妻少妇中文字幕av| 色偷偷色噜噜狠狠网站30根 | 亚洲人成网77777色在线播放| 国产精品成人国产乱| 亚洲AV无码一区二区三区日日强| 日本最新一区二区三区免费看| 亚洲视频在线免费观看一区二区| 日本免费视频| 国产精品无码一区二区在线看 | 91极品尤物国产在线播放| 国产av精品久久一区二区| 亚洲中文字幕乱码第一页| 无码国产福利av私拍|