基于Proteus的嵌入式應用系統仿真中的源碼調試

發(fā)布時(shí)間:2010-11-18 11:15    發(fā)布者:eetech
關(guān)鍵詞: Proteus , 調試 , 仿真 , 嵌入式 , 源碼
Proteus是功能最強的嵌入式系統(單片機、ARM等)的設計與仿真平臺。它主要由Proteus VSM(Virtual System Model)和PCB設計構成。ProteusVSM的最大特色就是能對嵌入式系統(硬、軟件)及其外圍電路進(jìn)行協(xié)同、動(dòng)態(tài)、交互式的仿真,并提供了仿真中進(jìn)行源碼調試的三種方式。

Proteus源碼調試綜合并突破了傳統硬件仿真器和軟件集成開(kāi)發(fā)環(huán)境(Integrated Development Envi-ronment,IDE)源碼調試功能。不僅能跟蹤、分析嵌入式系統內的指令執行,觀(guān)察、改變存儲單元內容等的調試;且從工程角度實(shí)現了過(guò)程與結果,硬件與軟件,全速與跟蹤,中斷與監視,靜態(tài)與動(dòng)態(tài)等的統一調試。豐富而靈活的調試手段,人與機的積極互動(dòng)為高質(zhì)高效實(shí)現設計目標創(chuàng )造了條件。從研發(fā)產(chǎn)品的實(shí)踐上也證明了Proteus源碼調試的高質(zhì)、高效和可信度。這里從實(shí)踐角度出發(fā)總結Proteus的三種源碼調試方式,著(zhù)重講述了國內書(shū)刊尚未詳細敘述的第三種方式,以發(fā)揮Pro-teus在產(chǎn)品研發(fā)和教學(xué)中的先進(jìn)作用。在此采用的是Proteus 7.5。

1 Proteus VSM源碼調試

Proteus VSM源碼調試是第一種源碼調試方式。Proteus的源碼調試由源代碼控制系統支持。該系統主要功能是編輯、匯編源碼,并保證代碼及時(shí)更新。該系統有源碼(源程序)編輯器、匯編器、調試數據提取器(Debug Data Extractor,DDX)和裝載器等。DDX從匯編器產(chǎn)生的文件中提取調試信息裝入裝載器。源碼調試步驟是:建源碼文件、加載到系統,選擇微控制器及匯編器,將源碼經(jīng)匯編器匯編產(chǎn)生的目標代碼加載到微控制器中,啟動(dòng)仿真進(jìn)行源碼調試。

VSM提供了幾種匯編器,主要有51系列的ASEM51,AVR系列的AVRASM,AVRASM32,PIC系列的MPASM,MPASM32和HC11系列的ASM11等。匯編后可產(chǎn)生HEX或S19(用于MC68HC11),LST,SDI等調試文件。不同的微控制器選擇相應的匯編器,系統自動(dòng)更新DDX。設定微控制器屬性編輯框中的程序文件即加載代碼文件。啟動(dòng)仿真進(jìn)行源碼調試。暫停時(shí),在源碼調試窗口可看到調試格式文件.SDI提供的源碼、代碼及地址,還可打開(kāi)各種寄存器窗口查看各存儲單元內容。調試中可看到電路與程序代碼協(xié)同、交互式仿真過(guò)程和結果。調試中可隨時(shí)進(jìn)行源碼修改、設置各種斷點(diǎn)等。圖1所示為單片機讀鍵并將值送數碼管顯示實(shí)驗的源碼調試狀態(tài)。





2 Proteus借第三方編譯器實(shí)現源碼調試

這是第二種源碼調試方式。若源碼使用高級語(yǔ)言,就必須借用Proteus之外的第三方代碼生成工具(匯編器/編譯器)。若此時(shí)仍要用VSM的源碼調試功能,就需要匯編器/編譯器提供DDX或輸出Proteus支持的調試格式文件(帶調試信息的目標代碼)。裝載器從這些調試文件中提取調試信息以實(shí)現源碼調試。

Proteus裝載器支持的調試文件格式主要有:COFF(通用的,適應于PIC)、OMF(用于8051范圍內)、UBROF(IAR編譯器生成)、ELF/DWARF(通用的,較COFF有較好的調試性能)、COD(由BYTE-CRAFT生成,廣泛應用在PIC 中)等。

使用以上格式時(shí),首先在編譯器中設置輸出格式,如在Keil中指定OMF格式的代碼文件,如圖2所示(例:6-164.OMF)。然后將生成的帶調試信息的代碼文件作為單片機窗口的“程序文件”。啟動(dòng)仿真,則可進(jìn)行源碼調試。







3 Proteus與第三方IDE聯(lián)合仿真實(shí)現源碼調試

這是第三種源碼調試方式。Proteus聯(lián)合第三方IDE,充分發(fā)揮Proteus的微控制器仿真功能和第三方IDE豐富的代碼調試功能,創(chuàng )造最佳的應用系統開(kāi)發(fā)環(huán)境。多數專(zhuān)業(yè)匯編軟件和編譯器都有自己的集成開(kāi)發(fā)環(huán)境IDE,如IAR的嵌入式工作臺,Keil's μVision,Mi-crochip's MPLAB,Atreel's AVR studio等。Proteus作為IDE的插入式仿真器,由IDE的調試器控制調試的執行。這種源碼調試方法有兩種方法,如表1所示。





3.1 萬(wàn)法一

Proteus通過(guò)TCP/IP協(xié)議與IDE通信。Proteus充當虛擬在線(xiàn)仿真器(In Circuit Emulator,ICE)。例如KEIL與Proteus聯(lián)調。先要將Proteus提供的驅動(dòng)器VDMAGDL EXE裝在KEIL的安裝路徑下。在同臺計算機中調出KEIL與Proteus,進(jìn)行仿真與聯(lián)調。如圖3所示,左邊為KEIL窗口,可利用斷點(diǎn)、變量窗口等監視程序的執行,進(jìn)行源碼調試。右邊為Proteus窗口,在Proteus窗口可同步監視電路的運行狀態(tài)與過(guò)程,也查看Proteus提供的CPU寄存器、內RAM等各種存儲器窗口。也可將IDE調試器、Proteus分別安裝在不同計算機中,利用互聯(lián)網(wǎng)進(jìn)行兩者的聯(lián)合調試。





3.2 方法二

Proteus集成在IDE(例Proton,MPLAB,Atmel AVR studio)中,作為IDE中的一個(gè)仿真與調試工具,F以Proteus與AVR Studio聯(lián)合仿真中的源碼調試為例較詳細地敘述該調試方法。

(1)在Proteus的ISIS中設計電路并保存(命名為L(cháng)SD.DSN);

(2)在A(yíng)VR Studio中聯(lián)合調試。

打開(kāi)新建工程,在彈出的對話(huà)框中選擇工程類(lèi)型為設置工程名,源文件自動(dòng)與工程名相同。操作菜單Debug→Select Platform and De-vice,在彈出的對話(huà)框中設置調試平臺為Proteus VSMViewer、器件為Atmegar16,如圖4所示。點(diǎn)擊Finish接著(zhù)彈出源程序編輯窗口。寫(xiě)完程序、保存并點(diǎn)擊匯編,生成LSD.HEX。在Proteus VSM視窗中點(diǎn)擊打開(kāi)按鈕(若視窗未打開(kāi),操作菜單View→Toolbars→Proteus VSM),打開(kāi)已有的LSD.DSN電路文件,對Atmegar16設置程序文件為L(cháng)SD.HEX。點(diǎn)擊AVR的按鈕啟動(dòng)調試,接下來(lái)按AVR中的調試方法進(jìn)行。圖5右側為AVR開(kāi)發(fā)環(huán)境中的I/O視窗及CPU信息框,可查看與當前設計相關(guān)的PORTD口的內容。在Proteus VSM視窗中右擊還可打開(kāi)各種存儲器窗口和觀(guān)察窗口。





Proteus除了支持一般的軟件斷點(diǎn)外,還有獨特的條件斷點(diǎn)和硬件實(shí)時(shí)斷點(diǎn)功能。對源碼調試提供了更靈活的手段。當硬件條件發(fā)生時(shí)暫停仿真,與單步調試工具結合極為方便有效。尤其在電路中引入異步觸發(fā),當需要跟蹤分析其對電路的影響時(shí)更有用。

(1)條件斷點(diǎn)。如圖5中Proteus的觀(guān)察窗口中添加PORTD,并設置它的斷點(diǎn)條件為“On Change”。仿真時(shí)當PORTD輸出數據發(fā)生變化就暫停仿真。

(2)電壓探針斷點(diǎn)。對PORTD0引腳加一電壓探針,命名為PD0(見(jiàn)圖6),設置為數0值觸發(fā)。每當PORTD0輸出低電平時(shí),觸發(fā)斷點(diǎn)使仿真暫停,如圖7所示。







(3)硬件斷點(diǎn):實(shí)時(shí)斷點(diǎn)發(fā)生器。實(shí)時(shí)斷點(diǎn)發(fā)生器有實(shí)時(shí)電壓、電流斷點(diǎn)觸發(fā)器RTVBREAK和RTI-BREAK:當觸發(fā)器引腳上的電壓或流經(jīng)的電流超過(guò)設定的值將觸發(fā)斷點(diǎn),為上升沿觸發(fā);實(shí)時(shí)數字斷點(diǎn)觸發(fā)器RTDBREAK:當輸入到引腳的二進(jìn)制數等于設定值時(shí)觸發(fā)斷點(diǎn);實(shí)時(shí)電壓、電流監視器RTVMON和RTI-MON:當輸入電壓或當流經(jīng)的電流不在設定范圍內,可觸發(fā)斷點(diǎn)、警告或是錯誤?蓪TVMON和RTI-MON用于創(chuàng )建仿真模型,當模型中的電壓或電流超過(guò)設定的工作極限時(shí)警告終端用戶(hù)。

如圖8對POETD0引腳添加實(shí)時(shí)數字斷點(diǎn)觸發(fā)器并設置觸發(fā)值為0,達到同上述(2)中電壓探針一樣的斷點(diǎn)調試效果。





4 結語(yǔ)

嵌入式系統的Proteus仿真中源碼調試的方式有三種,源碼的編寫(xiě)、匯編、動(dòng)畫(huà)式的電路仿真與源碼調試都在Proteus中完成:Proteus用第三方的匯編/編譯器對源碼匯編/編譯生成的調試格式文件進(jìn)行源碼調試;Proteus與IDE聯(lián)合進(jìn)行源碼調試。Proteus獨特的條件斷點(diǎn)、硬件斷點(diǎn)功能為仿真及源碼調試更方便、更靈活、更高效。
本文地址:http://selenalain.com/thread-40406-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页