單片機(jī)仿真器的主要作用是什么?使用方法介紹
對(duì)于單片機(jī)語(yǔ)音芯片來(lái)說(shuō),仿真器這一專用工具不僅可以調(diào)試您的程序,而且還可以幫助您識(shí)別設(shè)計(jì)工程中的一些潛在的硬件和軟件問(wèn)題。仿真器應(yīng)用廣泛這是毋庸置疑的,不僅單片機(jī)這一領(lǐng)域,連語(yǔ)音芯片的FPGA、CPLD和嵌入式系統(tǒng)都可以見(jiàn)到它的身影。
當(dāng)然,想FPGA、CPLD和嵌入式系統(tǒng)這些貨可是自帶仿真功能,這樣更方便設(shè)計(jì)更接近實(shí)際應(yīng)用環(huán)境,直接就是線路板上調(diào)試,節(jié)省許多麻煩。
對(duì)于單片機(jī)語(yǔ)音芯片來(lái)說(shuō),仿真器這一專用工具不僅可以調(diào)試您的程序,而且還可以幫助您識(shí)別設(shè)計(jì)工程中的一些潛在的硬件和軟件問(wèn)題。仿真器應(yīng)用廣泛這是毋庸置疑的,不僅單片機(jī)這一領(lǐng)域,連語(yǔ)音芯片的FPGA、CPLD和嵌入式系統(tǒng)都可以見(jiàn)到它的身影。
當(dāng)然,想FPGA、CPLD和嵌入式系統(tǒng)這些貨可是自帶仿真功能,這樣更方便設(shè)計(jì)更接近實(shí)際應(yīng)用環(huán)境,直接就是線路板上調(diào)試,節(jié)省許多麻煩。那么一般語(yǔ)音芯片所需使用到的仿真器有哪些?和九芯電子的小編一起去看看吧。
獨(dú)立仿真器
這類仿真器一般都是采用專用的一個(gè)仿真設(shè)備。一般里面使用一顆FPGA,CPLD或者運(yùn)算能力比你實(shí)際要用的芯片運(yùn)算能力強(qiáng)的芯片。因?yàn)橐话惴抡嫫鞯姆抡娑际怯眠\(yùn)算和功能強(qiáng)的芯片去模擬實(shí)際引用的芯片。主要是因?yàn)閮蓚€(gè)芯片的指令集不同,用運(yùn)算能力強(qiáng)的芯片去模擬實(shí)際用的指令集?;蛘卟捎靡活w專門的仿真芯片,這個(gè)芯片的內(nèi)核是跟實(shí)際應(yīng)用的芯片相同,只是它是專門用來(lái)仿真的。一般度搜占用一個(gè)UART串口來(lái)跟電腦進(jìn)行通信、對(duì)程序仿真。
線仿真
線仿真又稱自仿真,是語(yǔ)音芯片內(nèi)部自帶仿真功能,采用一種叫做邊界掃描的方式,講運(yùn)算的結(jié)果和內(nèi)存里的數(shù)據(jù)等信息傳送到上位機(jī)計(jì)算機(jī)上,達(dá)到仿真的目的。現(xiàn)市場(chǎng)上含ARM、CORTEX-M0-M、COTEX內(nèi)核這類貨芯片一般內(nèi)部具備仿真單元,采用標(biāo)準(zhǔn)的通信接口JTAGE,通過(guò)一個(gè)轉(zhuǎn)換設(shè)備進(jìn)行與計(jì)算機(jī)的通信,來(lái)下載寫(xiě)入程序、調(diào)試程序以及斷點(diǎn)設(shè)置。
單片機(jī)仿真器
一、單片機(jī)仿真器定義
單片機(jī)仿真器是指以調(diào)試單片機(jī)軟件為目的而專門設(shè)計(jì)制作的一套專用的硬件裝置。單片機(jī)仿真器具有基本的輸入輸出裝置,具備支持程序調(diào)試的軟件,使得單片機(jī)開(kāi)發(fā)人員可以通過(guò)單片機(jī)仿真器輸入和修改程序,觀察程序運(yùn)行結(jié)果與中間值,同時(shí)對(duì)與單片機(jī)配套的硬件進(jìn)行檢測(cè)與觀察,可以大大提高單片機(jī)的編程效率和效果。
二、單片機(jī)仿真器有什么作用
1.可以對(duì)單片機(jī)程序進(jìn)行單步跟蹤調(diào)試,也可以使用斷點(diǎn)、全速等調(diào)試手段,并可觀察各種變量、RAM及寄存器的實(shí)時(shí)數(shù)據(jù),跟蹤程序的執(zhí)行情況。
2.使得單片機(jī)開(kāi)發(fā)人員可以通過(guò)單片機(jī)仿真器輸入和修改程序,觀察程序運(yùn)行結(jié)果與中間值,同時(shí)對(duì)與單片機(jī)配套的硬件進(jìn)行檢測(cè)與觀察,可以大大提高單片機(jī)的編程效率和效果。
3.可以對(duì)硬件電路進(jìn)行實(shí)時(shí)的調(diào)試。利用單片機(jī)仿真器可以迅速找到并排除程序中的邏輯錯(cuò)誤,大大縮短單片機(jī)開(kāi)發(fā)的周期。
4.對(duì)初學(xué)者來(lái)說(shuō),降低了調(diào)試與開(kāi)發(fā)難度。非常有利于初學(xué)者學(xué)習(xí)。
三、總結(jié)
以上就是關(guān)于單片機(jī)仿真器是什么?有什么作用的全部?jī)?nèi)容分享??偠灾?,單片機(jī)仿真器就是以調(diào)試單片機(jī)軟件為目的而專門設(shè)計(jì)制作的一套專用的硬件裝置,它可以提高單片機(jī)的編程效率和效果。
一個(gè)理想的 使開(kāi)發(fā)者能觀察到單片機(jī)內(nèi)部的操作,仿真器是使替代單片機(jī)并使單片機(jī)操作可視化的硬件工具。
一個(gè)ICE應(yīng)包括兩個(gè)接口,一個(gè)是連接到目標(biāo)板上的MCU插座,另一個(gè)與PC相連。仿真器應(yīng)該與目標(biāo)MCU在電氣及物理上等價(jià),并能在開(kāi)發(fā)系統(tǒng)中替代MCU。目標(biāo)系統(tǒng)的操作可由PC得以控制及觀察。在開(kāi)發(fā)初期,開(kāi)發(fā)系統(tǒng)依靠仿真器工作,當(dāng)目標(biāo)功能完善后,仿真器將被真正的MCU取代。
ICE的功能及特性:
在主機(jī)與目標(biāo)系統(tǒng)間產(chǎn)生對(duì)應(yīng)的程序區(qū),host memory作為仿真程序區(qū)(emulator memory)或Shadow memory
脫離目標(biāo)硬件實(shí)時(shí)測(cè)試代碼
單步(Step),全速(Run),從特定的狀態(tài)運(yùn)行到特定的狀態(tài)或到斷點(diǎn)(BreakPoint)。這通常指特定的地址,但也可以是特定的觸發(fā)條件。
修改MCU Register值
在線修改Memory內(nèi)容
實(shí)時(shí)跟蹤記錄已執(zhí)行的程序(Trace)
ICE設(shè)計(jì)中的難點(diǎn)及局限性:
ICE功能的實(shí)現(xiàn)需要與MCU的data bus,address bus,control bus相連,而實(shí)際芯片三往往不連外部引腳
電氣上:ICE的驅(qū)動(dòng)能力及時(shí)序需要與MCU完全相同,而ICE的外加電纜及電路必將降低負(fù)載能力及改變時(shí)序特性,引起一些目標(biāo)系統(tǒng)在極限狀態(tài)下與ICE聯(lián)調(diào)往往會(huì)失敗。
一個(gè)常見(jiàn)的現(xiàn)象是一個(gè)系統(tǒng)用ICE調(diào)試完成最終用實(shí)際MCU取代ICE可保證運(yùn)行,但若硬件開(kāi)發(fā)過(guò)程中未用ICE,為了調(diào)試軟件問(wèn)題在中途使用了ICE,往往會(huì)在時(shí)序及負(fù)載上出現(xiàn)問(wèn)題。
理想的是所以的引腳的所以功能與MCU相同,而實(shí)際上不少低端仿真器占用了一個(gè)中斷資源以控制監(jiān)控程序的運(yùn)行
使用ICE的主要優(yōu)點(diǎn)在于:
軟件設(shè)計(jì)及實(shí)時(shí)測(cè)試可先于實(shí)際硬件完成
提供了修改,顯示memory及register的功能,提供了系統(tǒng)的開(kāi)發(fā)效率
bond-out
MCU是芯片設(shè)計(jì)公司為實(shí)現(xiàn)其商用MCU的仿真功能,將內(nèi)部的數(shù)據(jù),地址及控制總線連接到芯片的管腳上,使得外部仿真邏輯可以監(jiān)視和控制MCU內(nèi)部的狀態(tài)。一個(gè)ICE的質(zhì)量很大程度上依賴于它與其要仿真的MCU之間的吻合程度,bond-out
MCU能最大程度上提供ICE與商用MCU的無(wú)差別替換。
基于bond-out MCU的在線仿真器的結(jié)構(gòu)
見(jiàn)圖1。系統(tǒng)包括三部分,bond-out MCU,存貯用戶程序的SRAM及仿真監(jiān)控電路。bond-out
MCU的數(shù)據(jù),地址總線連接到SRAM,作為外部程序儲(chǔ)存器。同時(shí)數(shù)據(jù),地址及控制總線連接到仿真監(jiān)控電路,使ICE可以監(jiān)視和控制bond-out
MCU的運(yùn)行狀態(tài)。與PC相連的通訊接口根據(jù)速度及成本可選用串口,并口或USB接口。bond-out
MCU從本質(zhì)上將是商用MCU的一種擴(kuò)展,它包括所有商用MCU上的I/O并提供給用戶使用,其電氣與時(shí)序上應(yīng)保證與商用MCU對(duì)應(yīng)管腳完全一致。
在線仿真器基本功能的實(shí)現(xiàn)
單步(Step),全速(Run)
仿真監(jiān)控電路將A/D總線的控制權(quán)交給bond-out MCU,bond-out
MCU先給出指令地址,再使能SRAM讀信號(hào),得到程序代碼,依次解碼并執(zhí)行。
斷點(diǎn)(BreakPoint)
見(jiàn)圖2。斷點(diǎn)電路由存貯斷點(diǎn)位置的SRAM和斷點(diǎn)監(jiān)控電路組成。存貯斷點(diǎn)位置的SRAM與存貯用戶程序的SRAM的地址總線并接,SRAM的某個(gè)數(shù)據(jù)位作為斷點(diǎn)信息存貯位,在下載用戶程序的同時(shí)將設(shè)置有斷點(diǎn)的地址上該位置為1,其余為0。當(dāng)仿真器在全速運(yùn)行時(shí),該SRAM設(shè)為讀狀態(tài),斷點(diǎn)判斷電路監(jiān)控此數(shù)據(jù)位,當(dāng)其為高時(shí)停止仿真器全速運(yùn)行。
跟蹤記錄已執(zhí)行的程序(Trace)
見(jiàn)圖3。Trace電路由存貯Trace內(nèi)容的SRAM和Trace監(jiān)控電路組成。Trace SRAM的數(shù)據(jù)總線與bond-out
MCU地址總線并接,Trace SRAM的地址控制信號(hào)由Trace監(jiān)控電路產(chǎn)生。在仿真器初始化時(shí)Trace
SRAM的地址被設(shè)置為0,當(dāng)用戶要求開(kāi)始記錄已執(zhí)行的程序,在每個(gè)中,Trace SRAM的地址自加一并將bond-out
MCU地址寫(xiě)入SRAM中。在PC要讀取Trace內(nèi)容時(shí),bond-out
MCU依次執(zhí)行過(guò)的程序地址被上載到PC端并對(duì)應(yīng)列出該地址上的指令代碼。Trace
的記錄長(zhǎng)度受SRAM大小限制,當(dāng)超出記錄長(zhǎng)度時(shí)前面的數(shù)據(jù)會(huì)被覆蓋。