<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SOPC的M8051嵌入式調試器設計

基于SOPC的M8051嵌入式調試器設計

作者: 時(shí)間:2012-08-08 來(lái)源:網(wǎng)絡(luò ) 收藏

2.2 調試器的硬件設計
目前,市場(chǎng)上流行的基于USB接口的調試器,硬件一般以一個(gè)USB2.0控制芯片為核心,完成數據通信和調試協(xié)議數據解析,同時(shí)配置一個(gè)可編程器件實(shí)現邊界掃描鏈讀寫(xiě)時(shí)序。本文出于成本和系統復雜度的考慮,并結合FPGA的優(yōu)勢,創(chuàng )新地使用單獨的FPGA芯片實(shí)現調試器的全部功能,簡(jiǎn)化電路板和系統設計,降低系統成本。硬件結構如圖4所示。

h.JPG

調試器的主要硬件包括:Xilinx公司高性?xún)r(jià)比的Spartan-6 FPGA,Flash配置芯片XCF04S,緩沖器芯片74LCX245作為接口的電氣隔離及電源轉換芯片。USB控制器、8051處理器、片內SRAM和控制器等功能模塊均以IP核的彤式在FPGA上實(shí)現。USB控制器采用Mentor公司的MUSB全速(12 Mhps)控制器IP核,8051處理器采用Mcntor公司的EW IP核。系統上電后,配置芯片自動(dòng)完成對FPGA的配置,保證系統的非易失性。
JTAG控制器模塊是本系統硬件部分的核心模塊。本文中JTAG控制器是基于的OCI模塊實(shí)現的,主要任務(wù)接收調試固件發(fā)送過(guò)來(lái)的調試協(xié)議數據,轉化為OCI模塊可識別的底層調試命令集,具體說(shuō)就是一系列對于OCI模塊的IR和DR的讀寫(xiě)操作;再使用JTAG邊界掃描鏈讀寫(xiě)時(shí)序將這些底層命令發(fā)送給目標機。所以JTAG控制器模塊分為兩個(gè)部分:調試命令解析模塊和JTAG邊界掃描時(shí)序生成模塊。JTAG控制器的結構如圖5所示。

a.JPG

以系統運行控制操作中的Halt8051操作為例,由OCI的結構可知,該操作由向OCI模塊的IR中寫(xiě)入0x69來(lái)實(shí)現。在上位機中該操作的調試協(xié)議數據為0x0069。
調試器固件在接收到來(lái)自上位機的調試協(xié)議數據后,將0x00和0x69分別寫(xiě)入調試命令解析模塊的命令寄存器和數據寄存器。調試命令解析模塊將該調試協(xié)議數據解析為向OCI的IR中寫(xiě)入0x69,即JTAG_CMD=IR,JTAG_Din=0x69;再由JTAG邊界掃描時(shí)序生成模塊產(chǎn)牛向IR寫(xiě)入0x69的JTAG時(shí)序。
與傳統的軟件方法相比,由FPGA硬件實(shí)現調試命令解析和JTAG邊界掃描時(shí)序牛成,不但減輕了調試器上的8051處理器的負擔,而且有效提高了JTAG調試速度。
2.3 調試系統的軟件設計
本文中的軟件設計分為兩部分:PC端調試軟件和調試器固件。兩部分通過(guò)USB接口進(jìn)行交互。具體的軟件構架如圖6所示。

b.JPG

2.3.1 PC端軟件設計
PC端調試軟件由Keil C51編譯器、AGDI調試接口函數和USB驅動(dòng)程序三部分組成。通用的AGDI調試接口函數是獨立于處理器體系結構的函數集,它將上層調試操作分別轉化為獨立于處理器的調試命令。一般來(lái)說(shuō),AGDI捌試接口函數實(shí)現的調試操作有以下兒類(lèi):系統運行控制、寄存器讀寫(xiě)、存儲器讀寫(xiě)操作以及斷點(diǎn)操作。
AGDI調試接口函數設計是PC端軟件設計的重點(diǎn)。主要工作是在通用AGDI接口函數的基礎上,實(shí)現針對處理器的調試接口,將來(lái)自編譯器的調試操作轉換為針對M8051的調試協(xié)議數據。本文中調試協(xié)議數據采用調試命令加上調試數據的形式。以系統運行控制操作中的Halt80 51操作為例:AGDI調試接口函數將Halt8051操作轉化為基于M8051處理器的調試協(xié)議數據0x0069,即調試命令0x00和調試數據0x69。最后由USB驅動(dòng)層將調試協(xié)議數據0x0069打包發(fā)送給調試器。
2.3.2 調試器固件設計
調試器固件的功能分成兩個(gè)方面:一方面是下行數據發(fā)送,在完成USB設備的枚舉過(guò)程后,接收USB接口的調試協(xié)議數據,解析得到的調試命令和調試數據,再將調試命令和調試數據分別寫(xiě)入JTAG控制器模塊的命令寄存器和數據寄存器;另一方面監控目標機的返回信息,并將返回信息通過(guò)USB接口發(fā)送給調試主機。



關(guān)鍵詞: SOPC M8051 嵌入式調試器 JTAG

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>