ARM仿真器與嵌入式系統(tǒng)設(shè)計(jì)講解

2013-10-21 14:43 來(lái)源:互聯(lián)網(wǎng) 作者:洛小辰

嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。

所謂ARM仿真器,即用于調(diào)試基于ARM內(nèi)核芯片的一個(gè)硬件模塊。ARM內(nèi)核包括ARM7,ARM9,ARM11,Cortex-A,Cortex-M,Cortex-R等系列,而基于這些內(nèi)核的芯片則更多了。那么這些仿真器選擇有一個(gè)原則,用于低端嵌入式微控制器的話,用ULINK2,ULINKPpro即可,可以調(diào)試Cortex-M,Cortex-R芯片。用于高端的應(yīng)用處理器ARM9,ARM11,Cortex-A的話,就需要用到DSTREAM仿真器了。

一、嵌入式產(chǎn)品的開發(fā)周期

典型的嵌入式微控制器開發(fā)項(xiàng)目的第一個(gè)階段是用C編譯器從源程序生成目標(biāo)代碼,生成的目標(biāo)代碼將包括物理地址和一些調(diào)試信息。目前代碼可以用軟件模擬器、目標(biāo)Monitor或在線仿真器來(lái)執(zhí)行和調(diào)試。軟件模擬器是在PC機(jī)或工作站平臺(tái)上,以其CPU(如x86)及其系統(tǒng)資源來(lái)模擬目標(biāo)CPU(如P51XA),并執(zhí)行用戶的目標(biāo)代碼;而目標(biāo)Monitor則是將生成的目標(biāo)代碼下載到用戶目標(biāo)板的程序存儲(chǔ)器中,并在下載的代碼中增加一個(gè)Monitor任務(wù)軟件,用來(lái)監(jiān)視和控制用戶目標(biāo)代碼的執(zhí)行,用戶通過(guò)目標(biāo)板上的串行口或其它調(diào)試端口,利用桌面計(jì)算機(jī)來(lái)調(diào)試程序。

程序的調(diào)試是通過(guò)設(shè)置斷點(diǎn)、使程序在指定的指令位置停止運(yùn)行來(lái)實(shí)現(xiàn)的。在程序中止的時(shí)候,檢查存儲(chǔ)器和寄存器的內(nèi)容,作為發(fā)現(xiàn)程序錯(cuò)誤的線索。

程序經(jīng)過(guò)調(diào)試、找到所有的錯(cuò)誤后,修改源代碼,重新編譯,以一種標(biāo)準(zhǔn)格式生成目標(biāo)代碼文件,比如Intel HEX.這個(gè)目標(biāo)代碼將被存儲(chǔ)在最終產(chǎn)品的非揮發(fā)存儲(chǔ)器,比如EPROM或FLASH中。

二、為什么需要仿真器

軟件模擬器和目標(biāo) Monitor提供了一種經(jīng)濟(jì)的調(diào)試手段,對(duì)于很多設(shè)計(jì)來(lái)說(shuō)已經(jīng)足夠。但是也有很多場(chǎng)合,需要利用仿真器來(lái)找到程序錯(cuò)誤。 無(wú)論在哪一種場(chǎng)合,仿真器都能夠減少調(diào)試時(shí)間、簡(jiǎn)化系統(tǒng)集成、增加可靠性、優(yōu)化測(cè)試步驟,從而使其物有所值。更常見的情況是工程師在項(xiàng)目的不同階段同時(shí)使用軟件模擬器和仿真器,特別是在大的開發(fā)項(xiàng)目中。

軟件模擬器和軟件調(diào)試器在斷點(diǎn)之外只提供了很少的幾種功能,比如顯示端口內(nèi)容和代碼覆蓋。沒有檢測(cè)事件和條件、然后作出反應(yīng)的手段,也沒有辦法記錄MCU的總線周期、然后判斷程序的執(zhí)行究竟發(fā)生了什么情況。如果你的MCU有片上EPROM或FLASH存儲(chǔ)器,并且運(yùn)行在單片模式,則只有仿真器才能夠?qū)ο到y(tǒng)進(jìn)行調(diào)試,而不嚴(yán)重占用和消耗MCU資源。

在線仿真器可以很容易地做到這些事情,并且還能夠提供很多其它功能。仿真器是軟件和硬件之間的橋梁。在項(xiàng)目進(jìn)行的某些階段,你必須讓程序在實(shí)際的硬件上面運(yùn)行。仿真器可以很容易地幫助你了解如何在調(diào)試階段充分利用仿真器。

三、仿真器究竟是什么?

仿真器可以替代你的目標(biāo)系統(tǒng)中的MCU,仿真其運(yùn)行。 仿真器運(yùn)行起來(lái)和實(shí)際的目標(biāo)處理器一樣,但是增加了其它功能,使你能夠通過(guò)桌面計(jì)算機(jī)或其它調(diào)試界面來(lái)觀察MCU中的程序和數(shù)據(jù),并控制MCU的運(yùn)行。仿真器是調(diào)試嵌入式軟件的一個(gè)經(jīng)濟(jì)、有效的手段。Nohau的EMUL51XA-PC仿真器系列用來(lái)調(diào)試Philips P51XA系列MCU,而EMUL51-PC系列仿真器則支持眾多廠家的8051系列單片機(jī)。

9

四、內(nèi)部和外部模式

內(nèi)部模式是指程序和數(shù)據(jù)位于MCU芯片內(nèi)部,以FLASH或EPROM的形式存在,地址和數(shù)據(jù)總線對(duì)于用戶并不可見,由此節(jié)省下來(lái)的芯片引腳作為I/O口提供給用戶。內(nèi)部模式也稱單片模式,所有的程序執(zhí)行都發(fā)生在內(nèi)部ROM中。為了有效地仿真這種芯片,要求仿真器使用bondout或增強(qiáng)型Hooks芯片。

外部模式是當(dāng)程序存儲(chǔ)器,可能還有部分?jǐn)?shù)據(jù)存儲(chǔ)器,位于MCU外部的情況,需要有地址和數(shù)據(jù)總線來(lái)訪問這部分存儲(chǔ)器。外部模式也稱擴(kuò)展模式,用戶芯片、bondout芯片和增強(qiáng)型hooks芯片都能夠產(chǎn)生這種工作模式,這種情況下芯片的地址和數(shù)據(jù)總線引腳不能作為通用I/O口使用。Nohau的仿真器使用這三種芯片來(lái)實(shí)現(xiàn)有效的程序調(diào)試。

五、Bondout、增強(qiáng)型Hooks芯片和標(biāo)準(zhǔn)產(chǎn)品芯片

這些名詞是指仿真器所使用的、用來(lái)替代目標(biāo)MCU的三種仿真處理器。只有Bondout和增強(qiáng)型Hooks芯片能夠?qū)崿F(xiàn)單片調(diào)試,標(biāo)準(zhǔn)產(chǎn)品芯片不能。和標(biāo)準(zhǔn)產(chǎn)品芯片相比,bondout芯片有一些增加的引腳,連接到芯片內(nèi)部硅片的電路節(jié)點(diǎn)上,所有又稱“超腳芯片”.P51XA系列單片機(jī)仿真器都使用bondout芯片,EMUL51XA-PC就是很好的例子。

增強(qiáng)型Hooks芯片利用各種芯片引腳上面沒有的機(jī)器周期來(lái)提供地址和數(shù)據(jù)總線,一些80C51系列仿真器就是使用增強(qiáng)型Hooks芯片。有趣的是,這些增強(qiáng)型Hooks芯片中的一些也是標(biāo)準(zhǔn)的產(chǎn)品芯片。使用增強(qiáng)型Hooks芯片作為仿真CPU需要一些額外的特殊功能電路來(lái)從復(fù)用的芯片引腳中,分解出地址和數(shù)據(jù)總線以及一些必須的控制信號(hào),用戶的目標(biāo)板沒有這些電路,所有仍然是單片工作模式。采用bondout芯片和增強(qiáng)型Hooks芯片能夠?qū)崿F(xiàn)極為精確的仿真,從功能一直到芯片的功耗。

1 2 > 
嵌入式 ARM 仿真器

相關(guān)閱讀

暫無(wú)數(shù)據(jù)

一周熱門