ARM 仿真器應(yīng)用指導(dǎo)
外部模式是當(dāng)程序存儲(chǔ)器,可能還有部分?jǐn)?shù)據(jù)存儲(chǔ)器,位于MCU外部的情況,需要有地址和數(shù)據(jù)總線來訪問這部分存儲(chǔ)器。外部模式也稱擴(kuò)展模式,用戶芯片、bondout芯片和增強(qiáng)型hooks芯片都能夠產(chǎn)生這種工作模式,這種情況下芯片的地址和數(shù)據(jù)總線引腳不能作為通用I/O口使用。Nohau的仿真器使用這三種芯片來實(shí)現(xiàn)有效的程序調(diào)試。
五、Bondout、增強(qiáng)型Hooks芯片和標(biāo)準(zhǔn)產(chǎn)品芯片
這些名詞是指仿真器所使用的、用來替代目標(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ī)器周期來提供地址和數(shù)據(jù)總線,一些80C51系列仿真器就是使用增強(qiáng)型Hooks芯片。有趣的是,這些增強(qiáng)型Hooks芯片中的一些也是標(biāo)準(zhǔn)的產(chǎn)品芯片。使用增強(qiáng)型Hooks芯片作為仿真CPU需要一些額外的特殊功能電路來從復(fù)用的芯片引腳中,分解出地址和數(shù)據(jù)總線以及一些必須的控制信號(hào),用戶的目標(biāo)板沒有這些電路,所有仍然是單片工作模式。采用bondout芯片和增強(qiáng)型Hooks芯片能夠?qū)崿F(xiàn)極為精確的仿真,從功能一直到芯片的功耗。
六、使硬件工作起來
軟件模擬器是很好的,可是它不能考慮進(jìn)所有的變化因素。軟件模擬器設(shè)計(jì)師必須考慮到每一件事情,特別是那些只有在硬件搭起來以后才會(huì)出現(xiàn)的因素,比如電容、定時(shí)、電感、芯片版本等,隨著 CPU速度的增加,這些變得越來越重要。
目標(biāo)Monitor相比之下要好得多,因?yàn)樗窃趯?shí)際硬件中運(yùn)行的。但是為了使Monitor程序能夠運(yùn)行起來,目標(biāo)系統(tǒng)必須是一個(gè)完整的、能夠工作的系統(tǒng)。采用仿真器后就不是這樣,仿真器在目標(biāo)系統(tǒng)硬件不完整、或者是一點(diǎn)硬件都沒有的情況下都可以運(yùn)行。然而目標(biāo)Monitor可以安裝在最終產(chǎn)品的程序中,隨時(shí)都可以激活,用來進(jìn)行調(diào)試,所以這對(duì)于測(cè)試和維護(hù)來說還是有一定優(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)是不可見的,也就是所謂的“全透明仿真”。
2.硬件斷點(diǎn)
軟件斷點(diǎn)的實(shí)現(xiàn)是通過在用戶目標(biāo)代碼中插入2字節(jié)的TRAP(陷井)指令,將正常的程序流偏轉(zhuǎn)到調(diào)試器上。如果程序計(jì)數(shù)器碰巧落到第二個(gè)字節(jié)上,程序就會(huì)崩潰。 Nohau仿真器的硬件斷點(diǎn)功能使用比較器,將系統(tǒng)總線狀態(tài)與預(yù)先設(shè)定的鎖存器內(nèi)容相比較,用以監(jiān)測(cè)對(duì)于指定地址的訪問,而不修改任何程序存儲(chǔ)器內(nèi)容。區(qū)域斷點(diǎn)需要使用硬件斷點(diǎn)來實(shí)現(xiàn),但是軟件斷點(diǎn)仍然是很方便、有用的,所以Nohau的仿真器兩種斷點(diǎn)功能都提供。
當(dāng)用戶的目標(biāo)程序存放在ROM中時(shí),軟件斷點(diǎn)是不能用的,因?yàn)闊o法插入TRAP指令。對(duì)于ROM程序存儲(chǔ)器系統(tǒng),只能使用硬件斷點(diǎn)。
3.跟蹤功能(TRACE)
跟蹤功能以時(shí)間為線索記錄所有的處理器機(jī)器周期、以及可選的外部信號(hào)電平。跟蹤功能能夠記錄所有的取指操作,并且在采用流水線并行處理模式的單片機(jī)中,如P51XA,區(qū)分在流水線中被取消的指令以及那些成功地執(zhí)行的指令。跟蹤的開始通過條件觸發(fā)來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)過濾功能,也就是只有感興趣的指令周期被記錄下來,其余的被舍棄。軟件模擬器和目標(biāo)Monitor沒有跟蹤存儲(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ù)功能。
評(píng)論