<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è) > 嵌入式系統 > 設計應用 > 嵌入式系統基礎之:嵌入式軟件開(kāi)發(fā)流程

嵌入式系統基礎之:嵌入式軟件開(kāi)發(fā)流程

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

本文引用地址:http://dyxdggzs.com/article/257144.htm

(2)硬件調試。

相對于軟件調試而言,使用硬件調試器可以獲得更強大的調試功能和更優(yōu)秀的調試性能。硬件調試器的基本原理是通過(guò)仿真硬件的執行過(guò)程,讓開(kāi)發(fā)者在調試時(shí)可以隨時(shí)了解到系統的當前執行情況。目前開(kāi)發(fā)中最常用到的硬件調試器是ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。

n 采用ROMMonitor方式進(jìn)行需要在宿主機上運行調試器,在宿主機上運行ROM監視器(ROMMonitor)和被調試程序,宿主機通過(guò)調試器與目標機上的ROM監視器遵循遠程調試協(xié)議建立通信連接。ROM監視器可以是一段運行在目標機ROM上的可執行程序,也可以是一個(gè)專(zhuān)門(mén)的硬件調試設備,它負責監控目標機上被調試程序的運行情況,能夠與宿主機端的調試器一同完成對應用程序的調試。

在使用這種調試方式時(shí),被調試程序首先通過(guò)ROM監視器下載到目標機,然后在ROM監視器的監控下完成調試。

優(yōu)點(diǎn):ROM監視器功能強大,能夠完成設置斷點(diǎn)、單步執行、查看寄存器、修改內存空間等各項調試功能。

確定:同軟件調試一樣,使用ROM監視器目標機和宿主機必須建立通信連接。

其原理圖如圖4.20所示。

n 采用ROMEmulator方式進(jìn)行時(shí)需要使用ROM仿真器,并且它通常被插入到目標機上的ROM插槽中,專(zhuān)門(mén)用于仿真目標機上的ROM芯片。

在使用這種調試方式時(shí),被調試程序首先下載到ROM仿真器中,因此等效于下載到目標機的ROM芯片上,然后在ROM仿真器中完成對目標程序的調試。

優(yōu)點(diǎn):避免了每次修改程序后都必須重新燒寫(xiě)到目標機的ROM中。

缺點(diǎn):ROM仿真器本身比較昂貴,功能相對來(lái)講又比較單一,只適應于某些特定場(chǎng)合。

其原理如圖4.21所示。

n 采用In-CircuitEmulator(ICE)方式進(jìn)行時(shí)需要使用在線(xiàn)仿真器,它是目前最為有效的的調試手段。它是仿照目標機上的CPU而專(zhuān)門(mén)設計的硬件,可以完全仿真處理器芯片的行為。仿真器與目標板可以通過(guò)仿真頭連接,與宿主機可以通過(guò)串口、并口、網(wǎng)線(xiàn)或USB口等連接方式。由于仿真器自成體系,所以調試時(shí)既可以連接目標板,也可以不連接目標板。

在線(xiàn)仿真器提供了非常豐富的調試功能。在使用在線(xiàn)仿真器進(jìn)行調試的過(guò)程中,可以按順序單步執行,也可以倒退執行,還可以實(shí)時(shí)查看所有需要的數據,從而給調試過(guò)程帶來(lái)了很多的便利。應用的一個(gè)顯著(zhù)特點(diǎn)是與現實(shí)世界中的硬件直接相關(guān),并存在各種異變和事先未知的變化,從而給微處理器的指令執行帶來(lái)各種不確定因素,這種不確定性在目前情況下只有通過(guò)在線(xiàn)仿真器才有可能發(fā)現。

優(yōu)點(diǎn):功能強大,軟硬件都可做到完全實(shí)時(shí)在線(xiàn)調試。

缺點(diǎn):價(jià)格昂貴。

其原理如圖4.22所示。

n 采用In-CircuitDebugger(ICD)方式進(jìn)

行交叉調試時(shí)需要使用在線(xiàn)調試器。由于ICE的價(jià)格非常昂貴,并且每種CPU都需要一種與之對應的ICE,使得開(kāi)發(fā)成本非常高。一個(gè)比較好的解決辦法是讓CPU直接在其內部實(shí)現調試功能,并通過(guò)在開(kāi)發(fā)板上引出的調試端口發(fā)送調試命令和接收調試信息,完成調試過(guò)程。如使用非常廣泛的ARM處理器的端口技術(shù)就是由此而誕生的。

是1985年指定的檢測PCB和IC芯片的一個(gè)標準。1990年被修改成為IEEE的一個(gè)標準,即IEEE1149.1。標準所采用的主要技術(shù)為邊界掃描技術(shù),它的基本思想就是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。因為這些移位寄存器單元都分布在芯片的邊界上(周?chē)?,所以被稱(chēng)為邊界掃描寄存器(Boundary-ScanRegisterCell)。

當芯片處于調試狀態(tài)時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開(kāi)來(lái)。通過(guò)這些邊界掃描寄存器單元,可以實(shí)現對芯片輸入輸出信號的觀(guān)察和控制。對于芯片的輸入管腳,可通過(guò)與之相連的邊界掃描寄存器單元把信號(數據)加載到該管腳中去;對于芯片的輸出管腳,可以通過(guò)與之相連的邊界掃描寄存器單元“捕獲”(CAPTURE)該管腳的輸出信號。這樣,邊界掃描寄存器提供了一個(gè)便捷的方式用于觀(guān)測和控制所需要調試的芯片。

現在較為高檔的微處理器都帶有JTAG接口,包括ARM7、ARM9、StrongARM、DSP等,通過(guò)JTAG接口可以方便地對目標系統進(jìn)行測試,同時(shí),還可以實(shí)現Flash編程,這是非常受歡迎的。

優(yōu)點(diǎn):連接簡(jiǎn)單,成本低。

缺點(diǎn):特性受制于芯片廠(chǎng)商。

其原理如圖4.23所示。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>