0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

電子設(shè)計 ? 來源:現(xiàn)代電子技術(shù) ? 作者:周靈彬,方曙光,盧 ? 2020-03-29 08:19 ? 次閱讀

引 言

Proteus是功能最強的嵌入式系統(tǒng)(單片機、ARM等)的設(shè)計與仿真平臺。它主要由Proteus VSM(Virtual System Model)和PCB設(shè)計構(gòu)成。ProteusVSM的最大特色就是能對嵌入式系統(tǒng)(硬、軟件)及其外圍電路進行協(xié)同、動態(tài)、交互式的仿真,并提供了仿真中進行源碼調(diào)試的三種方式。

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

1、 Proteus VSM源碼調(diào)試

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

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

2、 Proteus借第三方編譯器實現(xiàn)源碼調(diào)試

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

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

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

3 、Proteus與第三方IDE聯(lián)合仿真實現(xiàn)源碼調(diào)試

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

3.1 萬法一

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

3.2 方法二

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

(1)在Proteus的ISIS中設(shè)計電路并保存(命名為LSD.DSN);

(2)在AVR Studio中聯(lián)合調(diào)試。

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

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

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

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

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

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

基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

4 、結(jié)語

嵌入式系統(tǒng)的Proteus仿真中源碼調(diào)試的方式有三種,源碼的編寫、匯編、動畫式的電路仿真與源碼調(diào)試都在Proteus中完成:Proteus用第三方的匯編/編譯器對源碼匯編/編譯生成的調(diào)試格式文件進行源碼調(diào)試;Proteus與IDE聯(lián)合進行源碼調(diào)試。Proteus獨特的條件斷點、硬件斷點功能為仿真及源碼調(diào)試更方便、更靈活、更高效。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44569

    瀏覽量

    636140
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19141

    瀏覽量

    305940
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4097

    瀏覽量

    133699
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式開發(fā)中三種操作系統(tǒng)的分析與比較

    三種常用的嵌入式操作系統(tǒng)——Palm OS、Windows CE、Linux;在此基礎(chǔ)上、分析、比較這三種嵌入式操作系統(tǒng),給出它們之間的異同
    發(fā)表于 10-18 10:01

    嵌入式系統(tǒng)的Proteus仿真源碼調(diào)試方式介紹

    的最大特色就是能對嵌入式系統(tǒng)(硬、軟件)及其外圍電路進行協(xié)同、動態(tài)、交互仿真,并提供了仿真中進行源碼
    發(fā)表于 07-29 06:15

    嵌入式開發(fā)中三種操作系統(tǒng)的分析與比較

    三種常用的嵌入式操作系統(tǒng)——Palm OS、Windows CE、Linux;在此基礎(chǔ)上、分析、比較這三種嵌入式操作系統(tǒng),給出它們之間的異同
    發(fā)表于 06-23 11:01

    什么是全數(shù)字仿真平臺

    。什么是全數(shù)字仿真平臺全數(shù)字仿真平臺SkyEye是能夠滿足模擬或仿真外部硬件行為進行軟件運行和測試需求的工具。該工具運用國際流行的仿真、測試腳本語言來編寫外部硬件邏輯行為所產(chǎn)生外部激勵
    發(fā)表于 12-17 07:48

    嵌入式開發(fā)中三種操作系統(tǒng)對比分析哪個好

    三種常用的嵌入式操作系統(tǒng)——Palm OS、Windows CE、Linux;在此基礎(chǔ)上、分析、比較這三種嵌入式操作系統(tǒng),給出它們之間的異同
    發(fā)表于 12-20 06:24

    什么是全數(shù)字仿真平臺

    。什么是全數(shù)字仿真平臺全數(shù)字仿真平臺SkyEye是能夠滿足模擬或仿真外部硬件行為進行軟件運行和測試需求的工具。該工具運用國際流行的仿真、測試腳本語言來編寫外部硬件邏輯行為所產(chǎn)生外部激勵
    發(fā)表于 12-21 06:42

    三種常用的嵌入式操作系統(tǒng)是什么

    三種常用的嵌入式操作系統(tǒng)——Palm OS、Windows CE、Linux;在此基礎(chǔ)上、分析、比較這三種嵌入式操作系統(tǒng),給出它們之間的異同
    發(fā)表于 12-22 07:36

    基于Proteus嵌入式應(yīng)用系統(tǒng)仿真中的源碼調(diào)試

    基于Proteus嵌入式應(yīng)用系統(tǒng)仿真中的源碼調(diào)試 0 引 言    P
    發(fā)表于 12-22 17:49 ?2130次閱讀
    基于<b class='flag-5'>Proteus</b>的<b class='flag-5'>嵌入式</b>應(yīng)用系統(tǒng)<b class='flag-5'>仿真</b>中的<b class='flag-5'>源碼</b><b class='flag-5'>調(diào)試</b>

    邏輯分析儀在嵌入式開發(fā)調(diào)試中的應(yīng)用

    嵌入式開發(fā)調(diào)試中,開發(fā)人員的調(diào)試手段包括斷點、觸發(fā)和跟蹤三種。在線調(diào)試器(I(、I))與邏輯分析
    發(fā)表于 11-07 15:58 ?33次下載
    邏輯<b class='flag-5'>分析</b>儀在<b class='flag-5'>嵌入式</b>開發(fā)<b class='flag-5'>調(diào)試</b>中的應(yīng)用

    如何使用DSPACE實現(xiàn)嵌入式車輛動力學(xué)仿真平臺的開發(fā)設(shè)計

    針對嵌入式車輛動力學(xué)仿真平臺開發(fā)需求,基于吉林大學(xué)汽車仿真與控制國家重點實驗室的車輛動力學(xué)模型,研究了基于DSPACE環(huán)境的車輛動力學(xué)模型編譯,運行控制,參數(shù)賦值等關(guān)鍵方法?;赿 SPACE
    發(fā)表于 09-10 14:54 ?8次下載
    如何使用DSPACE實現(xiàn)<b class='flag-5'>嵌入式</b>車輛動力學(xué)<b class='flag-5'>仿真平臺</b>的開發(fā)設(shè)計

    基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)的探究

    基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)的探究(嵌入式開發(fā)基礎(chǔ)與實例進階光盤視頻)-該文檔為基于dSPACE的嵌入式車輛動力學(xué)仿真平臺
    發(fā)表于 07-30 13:56 ?9次下載
    基于dSPACE的<b class='flag-5'>嵌入式</b>車輛動力學(xué)<b class='flag-5'>仿真平臺</b>開發(fā)的探究

    復(fù)雜嵌入式系統(tǒng)仿真平臺

    復(fù)雜嵌入式系統(tǒng)仿真平臺(嵌入式開發(fā)板有哪些功能模塊)-該文檔為復(fù)雜嵌入式系統(tǒng)仿真平臺總結(jié)文檔,是一份很不錯的參考資料,具有較高參考價值,感興
    發(fā)表于 07-30 13:59 ?5次下載
    復(fù)雜<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>仿真平臺</b>

    基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)

    基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)(嵌入式開發(fā)的書籍)-該文檔為基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)總結(jié)文檔,是一份很
    發(fā)表于 07-30 16:32 ?13次下載
    基于dSPACE的<b class='flag-5'>嵌入式</b>車輛動力學(xué)<b class='flag-5'>仿真平臺</b>開發(fā)

    以ARM和DSP嵌入式系統(tǒng)為核心的實時仿真平臺的開發(fā)

    電子發(fā)燒友網(wǎng)站提供《以ARM和DSP嵌入式系統(tǒng)為核心的實時仿真平臺的開發(fā).doc》資料免費下載
    發(fā)表于 10-10 10:02 ?0次下載
    以ARM和DSP<b class='flag-5'>嵌入式</b>系統(tǒng)為核心的實時<b class='flag-5'>仿真平臺</b>的開發(fā)

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機開發(fā)、SDK開發(fā)和驅(qū)動開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?989次閱讀