資料介紹
嵌入式系統(tǒng)是一種專(zhuān)用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ) 在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車(chē)等,都使用嵌入式系統(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è)原則,用于低端嵌入式微控制器的話(huà),用ULINK2,ULINKPpro即可,可以調(diào)試Cortex-M,Cortex-R芯片。用于高端的應(yīng)用處理器ARM9,ARM11,Cortex-A的話(huà),就需要用到DSTREAM仿真器了。
一、嵌入式產(chǎn)品的開(kāi)發(fā)周期
典型的嵌入式微控制器開(kāi)發(fā)項(xiàng)目的第一個(gè)階段是用C編譯器從源程序生成目標(biāo)代碼,生成的目標(biāo)代碼將包 括物理地址和一些調(diào)試信息。目前代碼可以用軟件模擬器、目標(biāo)Monitor或在線(xiàn)仿真器來(lái)執(zhí)行和調(diào)試。軟件模擬器是在PC機(jī)或工作站平臺(tái)上,以其 CPU(如x86)及其系統(tǒng)資源來(lái)模擬目標(biāo)CPU(如P51XA),并執(zhí)行用戶(hù)的目標(biāo)代碼;而目標(biāo)Monitor則是將生成的目標(biāo)代碼下載到用戶(hù)目標(biāo)板的 程序存儲(chǔ)器中,并在下載的代碼中增加一個(gè)Monitor任務(wù)軟件,用來(lái)監(jiān)視和控制用戶(hù)目標(biāo)代碼的執(zhí)行,用戶(hù)通過(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ò)誤的線(xiàn)索。
程序經(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è)試步驟,從而使其物有所值。更常見(jiàn)的情況是工程師在項(xiàng)目的不同階段同時(shí)使 用軟件模擬器和仿真器,特別是在大的開(kāi)發(fā)項(xiàng)目中。
軟件模擬器和軟件調(diào)試器在斷點(diǎn)之外只提供了很少的幾種功能,比如顯示端口內(nèi)容和代碼覆蓋。沒(méi)有檢測(cè) 事件和條件、然后作出反應(yīng)的手段,也沒(méi)有辦法記錄MCU的總線(xiàn)周期、然后判斷程序的執(zhí)行究竟發(fā)生了什么情況。如果你的MCU有片上EPROM或FLASH 存儲(chǔ)器,并且運(yùn)行在單片模式,則只有仿真器才能夠?qū)ο到y(tǒng)進(jìn)行調(diào)試,而不嚴(yán)重占用和消耗MCU資源。
在線(xiàn)仿真器可以很容易地做到這些事情,并且還能夠提供很多其它功能。仿真器是軟件和硬件之間的橋梁。在項(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系列仿真器則支持眾多廠(chǎng)家的8051系列單片機(jī)。
四、內(nèi)部和外部模式
內(nèi)部模式是指程序和數(shù)據(jù)位于MCU芯片內(nèi)部,以FLASH或EPROM的形式存在,地址和數(shù)據(jù)總線(xiàn) 對(duì)于用戶(hù)并不可見(jiàn),由此節(jié)省下來(lái)的芯片引腳作為I/O口提供給用戶(hù)。內(nèi)部模式也稱(chēng)單片模式,所有的程序執(zhí)行都發(fā)生在內(nèi)部ROM中。為了有效地仿真這種芯 片,要求仿真器使用bondout或增強(qiáng)型Hooks芯片。
外部模式是當(dāng)程序存儲(chǔ)器,可能還有部分?jǐn)?shù)據(jù)存儲(chǔ)器,位于MCU外部的情況,需要有地址和數(shù)據(jù)總線(xiàn)來(lái) 訪(fǎng)問(wèn)這部分存儲(chǔ)器。外部模式也稱(chēng)擴(kuò)展模式,用戶(hù)芯片、bondout芯片和增強(qiáng)型hooks芯片都能夠產(chǎn)生這種工作模式,這種情況下芯片的地址和數(shù)據(jù)總線(xiàn) 引腳不能作為通用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)上,所有又 稱(chēng)“超腳芯片”.P51XA系列單片機(jī)仿真器都使用bondout芯片,EMUL51XA-PC就是很好的例子。
增強(qiáng)型Hooks芯片利用各種芯片引腳上面沒(méi)有的機(jī)器周期來(lái)提供地址和數(shù)據(jù)總線(xiàn),一些80C51系 列仿真器就是使用增強(qiáng)型Hooks芯片。有趣的是,這些增強(qiáng)型Hooks芯片中的一些也是標(biāo)準(zhǔn)的產(chǎn)品芯片。使用增強(qiáng)型Hooks芯片作為仿真CPU需要一 些額外的特殊功能電路來(lái)從復(fù)用的芯片引腳中,分解出地址和數(shù)據(jù)總線(xiàn)以及一些必須的控制信號(hào),用戶(hù)的目標(biāo)板沒(méi)有這些電路,所有仍然是單片工作模式。采用 bondout芯片和增強(qiáng)型Hooks芯片能夠?qū)崿F(xiàn)極為精確的仿真,從功能一直到芯片的功耗。
六、使硬件工作起來(lái)
軟件模擬器是很好的,可是它不能考慮進(jìn)所有的變化因素。軟件模擬器設(shè)計(jì)師必須考慮到每一件事情,特別是那些只有在硬件搭起來(lái)以后才會(huì)出現(xiàn)的因素,比如電容、定時(shí)、電感、芯片版本等,隨著 CPU速度的增加,這些變得越來(lái)越重要。
目標(biāo)Monitor相比之下要好得多,因?yàn)樗窃趯?shí)際硬件中運(yùn)行的。但是為了使Monitor程序 能夠運(yùn)行起來(lái),目標(biāo)系統(tǒng)必須是一個(gè)完整的、能夠工作的系統(tǒng)。采用仿真器后就不是這樣,仿真器在目標(biāo)系統(tǒng)硬件不完整、或者是一點(diǎn)硬件都沒(méi)有的情況下都可以運(yùn) 行。然而目標(biāo)Monitor可以安裝在最終產(chǎn)品的程序中,隨時(shí)都可以激活,用來(lái)進(jìn)行調(diào)試,所以這對(duì)于測(cè)試和維護(hù)來(lái)說(shuō)還是有一定優(yōu)勢(shì)的。
七、仿真器的優(yōu)點(diǎn)
仿真器具有軟件模擬器和目標(biāo)Monitor的所有功能,加上下面一些優(yōu)點(diǎn):
1.不使用目標(biāo)系統(tǒng)或CPU資源
目標(biāo)Monitor內(nèi)核一般需要10K的ROM和10~20字節(jié)的RAM以及一個(gè)空閑的通信端口。一個(gè)好的仿真器不會(huì)使用上面任何一項(xiàng)。仿真器對(duì)于目標(biāo)系統(tǒng)應(yīng)當(dāng)是不可見(jiàn)的,也就是所謂的“全透明仿真”。
2.硬件斷點(diǎn)
軟件斷點(diǎn)的實(shí)現(xiàn)是通過(guò)在用戶(hù)目標(biāo)代碼中插入2字節(jié)的TRAP(陷井)指令,將正常的程序流偏轉(zhuǎn)到調(diào) 試器上。如果程序計(jì)數(shù)器碰巧落到第二個(gè)字節(jié)上,程序就會(huì)崩潰。 Nohau仿真器的硬件斷點(diǎn)功能使用比較器,將系統(tǒng)總線(xiàn)狀態(tài)與預(yù)先設(shè)定的鎖存器內(nèi)容相比較,用以監(jiān)測(cè)對(duì)于指定地址的訪(fǎng)問(wèn),而不修改任何程序存儲(chǔ)器內(nèi)容。區(qū) 域斷點(diǎn)需要使用硬件斷點(diǎn)來(lái)實(shí)現(xiàn),但是軟件斷點(diǎn)仍然是很方便、有用的,所以Nohau的仿真器兩種斷點(diǎn)功能都提供。
當(dāng)用戶(hù)的目標(biāo)程序存放在ROM中時(shí),軟件斷點(diǎn)是不能用的,因?yàn)闊o(wú)法插入TRAP指令。對(duì)于ROM程序存儲(chǔ)器系統(tǒng),只能使用硬件斷點(diǎn)。
3.跟蹤功能(TRACE)
跟蹤功能以時(shí)間為線(xiàn)索記錄所有的處理器機(jī)器周期、以及可選的外部信號(hào)電平。跟蹤功能能夠記錄所有的 取指操作,并且在采用流水線(xiàn)并行處理模式的單片機(jī)中,如P51XA,區(qū)分在流水線(xiàn)中被取消的指令以及那些成功地執(zhí)行的指令。跟蹤的開(kāi)始通過(guò)條件觸發(fā)來(lái)實(shí) 現(xiàn),這樣可以實(shí)現(xiàn)過(guò)濾功能,也就是只有感興趣的指令周期被記錄下來(lái),其余的被舍棄。軟件模擬器和目標(biāo)Monitor沒(méi)有跟蹤存儲(chǔ)器,也不能實(shí)現(xiàn)Trace 功能。
4.條件觸發(fā)
條件觸發(fā)是非常強(qiáng)大、便于使用的功能,它使你可以在某些事件發(fā)生時(shí),進(jìn)行某個(gè)預(yù)先設(shè)定的行動(dòng),觸發(fā) 條件可以包括地址、數(shù)據(jù)、時(shí)鐘周期和外部信號(hào),這些條件可以觸發(fā)一個(gè)斷點(diǎn)、啟動(dòng)/停止跟蹤記錄、記錄一個(gè)時(shí)間標(biāo)記、以及很多其它由仿真器功能所決定的行 動(dòng)。這種強(qiáng)大的工具只有在仿真器中才能實(shí)現(xiàn)。Nohau仿真器的條件觸發(fā)功能和跟蹤功能有機(jī)地結(jié)合在一起,具有三級(jí)時(shí)間觸發(fā),最高級(jí)觸發(fā)具有計(jì)數(shù)功能。
5.實(shí)時(shí)顯示存儲(chǔ)器和I/O口內(nèi)容
使用仿真器后,可以實(shí)時(shí)地觀察存儲(chǔ)器和I/O口的內(nèi)容,而不僅僅是軟件模擬。你可以將自己特別喜歡的外設(shè)芯片連接到Nohau仿真器特性板的下部,然后在調(diào)試界面中訪(fǎng)問(wèn)它。如果你了解外設(shè)的所有細(xì)節(jié),那么可以非常精確地進(jìn)行系統(tǒng)模擬。
在很多情況下我們可能已經(jīng)發(fā)現(xiàn),好象只有在接入實(shí)際的硬件系統(tǒng)后某些問(wèn)題才開(kāi)始出現(xiàn)。采用仿真器能夠使你從一開(kāi)始就進(jìn)入這一階段,從而及早地發(fā)現(xiàn)問(wèn)題、更快地完成調(diào)試任務(wù)。
因?yàn)榉抡嫫鲀?nèi)部自帶的RAM可以和目標(biāo)系統(tǒng)中的ROM互相替代,所以你在ROM目標(biāo)系統(tǒng)中也可以簡(jiǎn)易地進(jìn)行程序代碼和數(shù)據(jù)的調(diào)試和修改。
同樣,當(dāng)目標(biāo)系統(tǒng)中還沒(méi)有裝上存儲(chǔ)器時(shí),你可以使用仿真器中的仿真存儲(chǔ)器對(duì)系統(tǒng)進(jìn)行調(diào)試。仿真存儲(chǔ)器的大小、分辨率和映象地址可以由用戶(hù)選擇。
6.硬件性能分析
軟件模擬器和目標(biāo)Monitor只能模擬系統(tǒng)運(yùn)行,然后進(jìn)行性能分析,但是它們已經(jīng)做得不錯(cuò)了;而 仿真器則更進(jìn)一步,在實(shí)際硬件上面進(jìn)行性能分析,這樣就增加了精度。而且,使用實(shí)際的硬件能夠發(fā)現(xiàn)在軟件模擬中無(wú)法發(fā)現(xiàn)的錯(cuò)誤。虛假中斷以及其它一些故障 可能會(huì)出乎意料地消耗CPU資源,導(dǎo)致嚴(yán)重的性能問(wèn)題,而且很難發(fā)現(xiàn)。利用仿真器的性能分析,這些問(wèn)題很容易暴露。
7.將仿真器和目標(biāo)系統(tǒng)相連接
仿真器和目標(biāo)系統(tǒng)的連接很容易。大多數(shù)問(wèn)題都被仿真器公司及其代理解決了。連接需要兩個(gè)步驟:
首先,需要選擇適當(dāng)?shù)倪m配器連接方法,最好選用焊接和插座方式。P51XA系列單片機(jī)仿真器支持PLCC插座和表面安裝兩種目標(biāo)連接方式。夾接適配器價(jià)格較高而且不可靠,不推薦用戶(hù)使用。
然后,仿真器上面的軟件和跳線(xiàn)器必須正確配置,和目標(biāo)板以及軟件初始化程序相匹配。這很簡(jiǎn)單,好的技術(shù)支持應(yīng)當(dāng)包括這一點(diǎn)。Nohau的仿真器一般使用缺省設(shè)置就可以工作。
對(duì)于P51XA系列單片機(jī),只要在用戶(hù)的目標(biāo)板上焊接一個(gè)芯片插座(PLCC或表面安裝形式)、插入EMUL51XA-PC的特性板適配器接頭,在PC機(jī)或筆記本電腦上運(yùn)行調(diào)試軟件就可以了。然后你就可以用隨仿真提供的TIme.c測(cè)試程序?qū)δ繕?biāo)系統(tǒng)進(jìn)行測(cè)試了!
總結(jié)
本文提供了一些關(guān)于在線(xiàn)仿真器的信息,以及給作為嵌入式系統(tǒng)設(shè)計(jì)師的你帶來(lái)的好處。根據(jù)你的需要,你將在產(chǎn)品開(kāi)發(fā)中對(duì)開(kāi)發(fā)工具作出更恰當(dāng)?shù)倪x擇。相信你通過(guò)自己的努力可以得到更多的知識(shí)。
?
所謂ARM仿真器,即用于調(diào)試基于ARM內(nèi)核芯片的一個(gè)硬件模塊。ARM內(nèi)核包括ARM7,ARM9,ARM11,Cortex-A,Cortex-M,Cortex-R等系列,而基于這些內(nèi)核的芯片則更多了。那么這些仿真器選擇有一個(gè)原則,用于低端嵌入式微控制器的話(huà),用ULINK2,ULINKPpro即可,可以調(diào)試Cortex-M,Cortex-R芯片。用于高端的應(yīng)用處理器ARM9,ARM11,Cortex-A的話(huà),就需要用到DSTREAM仿真器了。
一、嵌入式產(chǎn)品的開(kāi)發(fā)周期
典型的嵌入式微控制器開(kāi)發(fā)項(xiàng)目的第一個(gè)階段是用C編譯器從源程序生成目標(biāo)代碼,生成的目標(biāo)代碼將包 括物理地址和一些調(diào)試信息。目前代碼可以用軟件模擬器、目標(biāo)Monitor或在線(xiàn)仿真器來(lái)執(zhí)行和調(diào)試。軟件模擬器是在PC機(jī)或工作站平臺(tái)上,以其 CPU(如x86)及其系統(tǒng)資源來(lái)模擬目標(biāo)CPU(如P51XA),并執(zhí)行用戶(hù)的目標(biāo)代碼;而目標(biāo)Monitor則是將生成的目標(biāo)代碼下載到用戶(hù)目標(biāo)板的 程序存儲(chǔ)器中,并在下載的代碼中增加一個(gè)Monitor任務(wù)軟件,用來(lái)監(jiān)視和控制用戶(hù)目標(biāo)代碼的執(zhí)行,用戶(hù)通過(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ò)誤的線(xiàn)索。
程序經(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è)試步驟,從而使其物有所值。更常見(jiàn)的情況是工程師在項(xiàng)目的不同階段同時(shí)使 用軟件模擬器和仿真器,特別是在大的開(kāi)發(fā)項(xiàng)目中。
軟件模擬器和軟件調(diào)試器在斷點(diǎn)之外只提供了很少的幾種功能,比如顯示端口內(nèi)容和代碼覆蓋。沒(méi)有檢測(cè) 事件和條件、然后作出反應(yīng)的手段,也沒(méi)有辦法記錄MCU的總線(xiàn)周期、然后判斷程序的執(zhí)行究竟發(fā)生了什么情況。如果你的MCU有片上EPROM或FLASH 存儲(chǔ)器,并且運(yùn)行在單片模式,則只有仿真器才能夠?qū)ο到y(tǒng)進(jìn)行調(diào)試,而不嚴(yán)重占用和消耗MCU資源。
在線(xiàn)仿真器可以很容易地做到這些事情,并且還能夠提供很多其它功能。仿真器是軟件和硬件之間的橋梁。在項(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系列仿真器則支持眾多廠(chǎng)家的8051系列單片機(jī)。
四、內(nèi)部和外部模式
內(nèi)部模式是指程序和數(shù)據(jù)位于MCU芯片內(nèi)部,以FLASH或EPROM的形式存在,地址和數(shù)據(jù)總線(xiàn) 對(duì)于用戶(hù)并不可見(jiàn),由此節(jié)省下來(lái)的芯片引腳作為I/O口提供給用戶(hù)。內(nèi)部模式也稱(chēng)單片模式,所有的程序執(zhí)行都發(fā)生在內(nèi)部ROM中。為了有效地仿真這種芯 片,要求仿真器使用bondout或增強(qiáng)型Hooks芯片。
外部模式是當(dāng)程序存儲(chǔ)器,可能還有部分?jǐn)?shù)據(jù)存儲(chǔ)器,位于MCU外部的情況,需要有地址和數(shù)據(jù)總線(xiàn)來(lái) 訪(fǎng)問(wèn)這部分存儲(chǔ)器。外部模式也稱(chēng)擴(kuò)展模式,用戶(hù)芯片、bondout芯片和增強(qiáng)型hooks芯片都能夠產(chǎn)生這種工作模式,這種情況下芯片的地址和數(shù)據(jù)總線(xiàn) 引腳不能作為通用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)上,所有又 稱(chēng)“超腳芯片”.P51XA系列單片機(jī)仿真器都使用bondout芯片,EMUL51XA-PC就是很好的例子。
增強(qiáng)型Hooks芯片利用各種芯片引腳上面沒(méi)有的機(jī)器周期來(lái)提供地址和數(shù)據(jù)總線(xiàn),一些80C51系 列仿真器就是使用增強(qiáng)型Hooks芯片。有趣的是,這些增強(qiáng)型Hooks芯片中的一些也是標(biāo)準(zhǔn)的產(chǎn)品芯片。使用增強(qiáng)型Hooks芯片作為仿真CPU需要一 些額外的特殊功能電路來(lái)從復(fù)用的芯片引腳中,分解出地址和數(shù)據(jù)總線(xiàn)以及一些必須的控制信號(hào),用戶(hù)的目標(biāo)板沒(méi)有這些電路,所有仍然是單片工作模式。采用 bondout芯片和增強(qiáng)型Hooks芯片能夠?qū)崿F(xiàn)極為精確的仿真,從功能一直到芯片的功耗。
六、使硬件工作起來(lái)
軟件模擬器是很好的,可是它不能考慮進(jìn)所有的變化因素。軟件模擬器設(shè)計(jì)師必須考慮到每一件事情,特別是那些只有在硬件搭起來(lái)以后才會(huì)出現(xiàn)的因素,比如電容、定時(shí)、電感、芯片版本等,隨著 CPU速度的增加,這些變得越來(lái)越重要。
目標(biāo)Monitor相比之下要好得多,因?yàn)樗窃趯?shí)際硬件中運(yùn)行的。但是為了使Monitor程序 能夠運(yùn)行起來(lái),目標(biāo)系統(tǒng)必須是一個(gè)完整的、能夠工作的系統(tǒng)。采用仿真器后就不是這樣,仿真器在目標(biāo)系統(tǒng)硬件不完整、或者是一點(diǎn)硬件都沒(méi)有的情況下都可以運(yùn) 行。然而目標(biāo)Monitor可以安裝在最終產(chǎn)品的程序中,隨時(shí)都可以激活,用來(lái)進(jìn)行調(diào)試,所以這對(duì)于測(cè)試和維護(hù)來(lái)說(shuō)還是有一定優(yōu)勢(shì)的。
七、仿真器的優(yōu)點(diǎn)
仿真器具有軟件模擬器和目標(biāo)Monitor的所有功能,加上下面一些優(yōu)點(diǎn):
1.不使用目標(biāo)系統(tǒng)或CPU資源
目標(biāo)Monitor內(nèi)核一般需要10K的ROM和10~20字節(jié)的RAM以及一個(gè)空閑的通信端口。一個(gè)好的仿真器不會(huì)使用上面任何一項(xiàng)。仿真器對(duì)于目標(biāo)系統(tǒng)應(yīng)當(dāng)是不可見(jiàn)的,也就是所謂的“全透明仿真”。
2.硬件斷點(diǎn)
軟件斷點(diǎn)的實(shí)現(xiàn)是通過(guò)在用戶(hù)目標(biāo)代碼中插入2字節(jié)的TRAP(陷井)指令,將正常的程序流偏轉(zhuǎn)到調(diào) 試器上。如果程序計(jì)數(shù)器碰巧落到第二個(gè)字節(jié)上,程序就會(huì)崩潰。 Nohau仿真器的硬件斷點(diǎn)功能使用比較器,將系統(tǒng)總線(xiàn)狀態(tài)與預(yù)先設(shè)定的鎖存器內(nèi)容相比較,用以監(jiān)測(cè)對(duì)于指定地址的訪(fǎng)問(wèn),而不修改任何程序存儲(chǔ)器內(nèi)容。區(qū) 域斷點(diǎn)需要使用硬件斷點(diǎn)來(lái)實(shí)現(xiàn),但是軟件斷點(diǎn)仍然是很方便、有用的,所以Nohau的仿真器兩種斷點(diǎn)功能都提供。
當(dāng)用戶(hù)的目標(biāo)程序存放在ROM中時(shí),軟件斷點(diǎn)是不能用的,因?yàn)闊o(wú)法插入TRAP指令。對(duì)于ROM程序存儲(chǔ)器系統(tǒng),只能使用硬件斷點(diǎn)。
3.跟蹤功能(TRACE)
跟蹤功能以時(shí)間為線(xiàn)索記錄所有的處理器機(jī)器周期、以及可選的外部信號(hào)電平。跟蹤功能能夠記錄所有的 取指操作,并且在采用流水線(xiàn)并行處理模式的單片機(jī)中,如P51XA,區(qū)分在流水線(xiàn)中被取消的指令以及那些成功地執(zhí)行的指令。跟蹤的開(kāi)始通過(guò)條件觸發(fā)來(lái)實(shí) 現(xiàn),這樣可以實(shí)現(xiàn)過(guò)濾功能,也就是只有感興趣的指令周期被記錄下來(lái),其余的被舍棄。軟件模擬器和目標(biāo)Monitor沒(méi)有跟蹤存儲(chǔ)器,也不能實(shí)現(xiàn)Trace 功能。
4.條件觸發(fā)
條件觸發(fā)是非常強(qiáng)大、便于使用的功能,它使你可以在某些事件發(fā)生時(shí),進(jìn)行某個(gè)預(yù)先設(shè)定的行動(dòng),觸發(fā) 條件可以包括地址、數(shù)據(jù)、時(shí)鐘周期和外部信號(hào),這些條件可以觸發(fā)一個(gè)斷點(diǎn)、啟動(dòng)/停止跟蹤記錄、記錄一個(gè)時(shí)間標(biāo)記、以及很多其它由仿真器功能所決定的行 動(dòng)。這種強(qiáng)大的工具只有在仿真器中才能實(shí)現(xiàn)。Nohau仿真器的條件觸發(fā)功能和跟蹤功能有機(jī)地結(jié)合在一起,具有三級(jí)時(shí)間觸發(fā),最高級(jí)觸發(fā)具有計(jì)數(shù)功能。
5.實(shí)時(shí)顯示存儲(chǔ)器和I/O口內(nèi)容
使用仿真器后,可以實(shí)時(shí)地觀察存儲(chǔ)器和I/O口的內(nèi)容,而不僅僅是軟件模擬。你可以將自己特別喜歡的外設(shè)芯片連接到Nohau仿真器特性板的下部,然后在調(diào)試界面中訪(fǎng)問(wèn)它。如果你了解外設(shè)的所有細(xì)節(jié),那么可以非常精確地進(jìn)行系統(tǒng)模擬。
在很多情況下我們可能已經(jīng)發(fā)現(xiàn),好象只有在接入實(shí)際的硬件系統(tǒng)后某些問(wèn)題才開(kāi)始出現(xiàn)。采用仿真器能夠使你從一開(kāi)始就進(jìn)入這一階段,從而及早地發(fā)現(xiàn)問(wèn)題、更快地完成調(diào)試任務(wù)。
因?yàn)榉抡嫫鲀?nèi)部自帶的RAM可以和目標(biāo)系統(tǒng)中的ROM互相替代,所以你在ROM目標(biāo)系統(tǒng)中也可以簡(jiǎn)易地進(jìn)行程序代碼和數(shù)據(jù)的調(diào)試和修改。
同樣,當(dāng)目標(biāo)系統(tǒng)中還沒(méi)有裝上存儲(chǔ)器時(shí),你可以使用仿真器中的仿真存儲(chǔ)器對(duì)系統(tǒng)進(jìn)行調(diào)試。仿真存儲(chǔ)器的大小、分辨率和映象地址可以由用戶(hù)選擇。
6.硬件性能分析
軟件模擬器和目標(biāo)Monitor只能模擬系統(tǒng)運(yùn)行,然后進(jìn)行性能分析,但是它們已經(jīng)做得不錯(cuò)了;而 仿真器則更進(jìn)一步,在實(shí)際硬件上面進(jìn)行性能分析,這樣就增加了精度。而且,使用實(shí)際的硬件能夠發(fā)現(xiàn)在軟件模擬中無(wú)法發(fā)現(xiàn)的錯(cuò)誤。虛假中斷以及其它一些故障 可能會(huì)出乎意料地消耗CPU資源,導(dǎo)致嚴(yán)重的性能問(wèn)題,而且很難發(fā)現(xiàn)。利用仿真器的性能分析,這些問(wèn)題很容易暴露。
7.將仿真器和目標(biāo)系統(tǒng)相連接
仿真器和目標(biāo)系統(tǒng)的連接很容易。大多數(shù)問(wèn)題都被仿真器公司及其代理解決了。連接需要兩個(gè)步驟:
首先,需要選擇適當(dāng)?shù)倪m配器連接方法,最好選用焊接和插座方式。P51XA系列單片機(jī)仿真器支持PLCC插座和表面安裝兩種目標(biāo)連接方式。夾接適配器價(jià)格較高而且不可靠,不推薦用戶(hù)使用。
然后,仿真器上面的軟件和跳線(xiàn)器必須正確配置,和目標(biāo)板以及軟件初始化程序相匹配。這很簡(jiǎn)單,好的技術(shù)支持應(yīng)當(dāng)包括這一點(diǎn)。Nohau的仿真器一般使用缺省設(shè)置就可以工作。
對(duì)于P51XA系列單片機(jī),只要在用戶(hù)的目標(biāo)板上焊接一個(gè)芯片插座(PLCC或表面安裝形式)、插入EMUL51XA-PC的特性板適配器接頭,在PC機(jī)或筆記本電腦上運(yùn)行調(diào)試軟件就可以了。然后你就可以用隨仿真提供的TIme.c測(cè)試程序?qū)δ繕?biāo)系統(tǒng)進(jìn)行測(cè)試了!
總結(jié)
本文提供了一些關(guān)于在線(xiàn)仿真器的信息,以及給作為嵌入式系統(tǒng)設(shè)計(jì)師的你帶來(lái)的好處。根據(jù)你的需要,你將在產(chǎn)品開(kāi)發(fā)中對(duì)開(kāi)發(fā)工具作出更恰當(dāng)?shù)倪x擇。相信你通過(guò)自己的努力可以得到更多的知識(shí)。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 初識(shí)ARM嵌入式系統(tǒng)
- ARM嵌入式系統(tǒng)
- ARM嵌入式系統(tǒng)復(fù)習(xí)要點(diǎn)
- ARM嵌入式系統(tǒng)原理及應(yīng)用教程
- 基于ARM11的嵌入式通信系統(tǒng)
- 嵌入式系統(tǒng)基礎(chǔ)知識(shí)講解
- ARM處理器與嵌入式系統(tǒng)
- ARM嵌入式系統(tǒng)ARM芯片的應(yīng)用和選型 66次下載
- 如何使用ARM進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)詳細(xì)方法研究 9次下載
- ARM仿真器應(yīng)用解析 7次下載
- ARM嵌入式系統(tǒng)硬件設(shè)計(jì)及應(yīng)用實(shí)例 802次下載
- ARM指令集仿真器的設(shè)計(jì)與實(shí)現(xiàn)
- ARM嵌入式系統(tǒng)的ISP設(shè)計(jì)
- ARM嵌入式入門(mén)級(jí)教程
- ARM嵌入式系統(tǒng)基礎(chǔ)教程
- 嵌入式片上系統(tǒng)和ARM哪個(gè)更好 548次閱讀
- DPLink仿真器-好用的ARM仿真器推薦 2006次閱讀
- 將LCD仿真器與MAX-IDE和IAR嵌入式工作臺(tái)開(kāi)發(fā)環(huán)境配合使用 1630次閱讀
- 基于32位ARM920T內(nèi)核的微處理器的嵌入式Linux系統(tǒng)構(gòu)建詳解 1913次閱讀
- 基于ARM嵌入式系統(tǒng)的數(shù)字音頻播放系統(tǒng)設(shè)計(jì) 4259次閱讀
- 基于ARM與DSP的嵌入式運(yùn)動(dòng)控制器設(shè)計(jì)詳解 7455次閱讀
- ARM嵌入式系統(tǒng)硬件設(shè)計(jì)及應(yīng)用實(shí)例詳解 1w次閱讀
- 嵌入式系統(tǒng)設(shè)計(jì)師必須了解的關(guān)于arm仿真器知識(shí) 6628次閱讀
- 概述及匯總ARM的嵌入式操作系統(tǒng) 3008次閱讀
- ARM仿真器的作用 仿真器有什么用途 1.8w次閱讀
- 用GNU工具開(kāi)發(fā)基于ARM的嵌入式系統(tǒng) 1708次閱讀
- 專(zhuān)家淺談ARM仿真器中的斷點(diǎn)資源 1418次閱讀
- 基于ARM和DSP的嵌入式智能儀器系統(tǒng)設(shè)計(jì) 1709次閱讀
- 快速嵌入式MCU設(shè)計(jì)仿真的三大因素淺析 1265次閱讀
- 基于ARM的嵌入式無(wú)線(xiàn)視頻采集系統(tǒng)設(shè)計(jì) 1888次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論