ARM 仿真器應(yīng)用指導(dǎo)
本文提供了一些關(guān)于在線 ARM 仿真器的信息,以及給作為嵌入式系統(tǒng)設(shè)計師的你帶來的好處。根據(jù)你的需要,你將在產(chǎn)品開發(fā)中對開發(fā)工具作出更恰當(dāng)?shù)倪x擇。
本文引用地址:http://www.ex-cimer.com/article/187731.htm一、嵌入式產(chǎn)品的開發(fā)周期
典型的嵌入式微控制器開發(fā)項目的第一個階段是用C編譯器從源程序生成目標(biāo)代碼,生成的目標(biāo)代碼將包括物理地址和一些調(diào)試信息。目前代碼可以用軟件模擬器、目標(biāo)Monitor或在線仿真器來執(zhí)行和調(diào)試。軟件模擬器是在PC機(jī)或工作站平臺上,以其CPU(如x86)及其系統(tǒng)資源來模擬目標(biāo)CPU(如P51XA),并執(zhí)行用戶的目標(biāo)代碼;而目標(biāo)Monitor則是將生成的目標(biāo)代碼下載到用戶目標(biāo)板的程序存儲器中,并在下載的代碼中增加一個Monitor任務(wù)軟件,用來監(jiān)視和控制用戶目標(biāo)代碼的執(zhí)行,用戶通過目標(biāo)板上的串行口或其它調(diào)試端口,利用桌面計算機(jī)來調(diào)試程序。
程序的調(diào)試是通過設(shè)置斷點、使程序在指定的指令位置停止運行來實現(xiàn)的。在程序中止的時候,檢查存儲器和寄存器的內(nèi)容,作為發(fā)現(xiàn)程序錯誤的線索。
程序經(jīng)過調(diào)試、找到所有的錯誤后,修改源代碼,重新編譯,以一種標(biāo)準(zhǔn)格式生成目標(biāo)代碼文件,比如Intel HEX。這個目標(biāo)代碼將被存儲在最終產(chǎn)品的非揮發(fā)存儲器,比如EPROM或FLASH中。
二、為什么需要仿真器
軟件模擬器和目標(biāo) Monitor提供了一種經(jīng)濟(jì)的調(diào)試手段,對于很多設(shè)計來說已經(jīng)足夠。但是也有很多場合,需要利用仿真器來找到程序錯誤。 無論在哪一種場合,仿真器都能夠減少調(diào)試時間、簡化系統(tǒng)集成、增加可靠性、優(yōu)化測試步驟,從而使其物有所值。更常見的情況是工程師在項目的不同階段同時使用軟件模擬器和仿真器,特別是在大的開發(fā)項目中。
軟件模擬器和軟件調(diào)試器在斷點之外只提供了很少的幾種功能,比如顯示端口內(nèi)容和代碼覆蓋。沒有檢測事件和條件、然后作出反應(yīng)的手段,也沒有辦法記錄MCU的總線周期、然后判斷程序的執(zhí)行究竟發(fā)生了什么情況。如果你的MCU有片上EPROM或FLASH存儲器,并且運行在單片模式,則只有仿真器才能夠?qū)ο到y(tǒng)進(jìn)行調(diào)試,而不嚴(yán)重占用和消耗MCU資源。
在線仿真器可以很容易地做到這些事情,并且還能夠提供很多其它功能。仿真器是軟件和硬件之間的橋梁。在項目進(jìn)行的某些階段,你必須讓程序在實際的硬件上面運行。仿真器可以很容易地幫助你了解如何在調(diào)試階段充分利用仿真器。
三、仿真器究竟是什么?
仿真器可以替代你的目標(biāo)系統(tǒng)中的MCU,仿真其運行。 仿真器運行起來和實際的目標(biāo)處理器一樣,但是增加了其它功能,使你能夠通過桌面計算機(jī)或其它調(diào)試界面來觀察MCU中的程序和數(shù)據(jù),并控制MCU的運行。仿真器是調(diào)試嵌入式軟件的一個經(jīng)濟(jì)、有效的手段。Nohau的EMUL51XA-PC仿真器系列用來調(diào)試Philips P51XA系列MCU,而EMUL51-PC系列仿真器則支持眾多廠家的8051系列單片機(jī)。
四、內(nèi)部和外部模式
內(nèi)部模式是指程序和數(shù)據(jù)位于MCU芯片內(nèi)部,以FLASH或EPROM的形式存在,地址和數(shù)據(jù)總線對于用戶并不可見,由此節(jié)省下來的芯片引腳作為I/O口提供給用戶。內(nèi)部模式也稱單片模式,所有的程序執(zhí)行都發(fā)生在內(nèi)部ROM中。為了有效地仿真這種芯片,要求仿真器使用bondout或增強型Hooks芯片。
評論