當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于Proteus的嵌入式應用系統(tǒng)仿真中的源碼調試


0 引 言
    Proteus是功能最強的嵌入式系統(tǒng)(單片機、ARM等)的設計與仿真平臺。它主要由Proteus VSM(Virtual System Model)和PCB設計構成。ProteusVSM的最大特色就是能對嵌入式系統(tǒng)(硬、軟件)及其外圍電路進行協(xié)同、動態(tài)、交互式的仿真,并提供了仿真中進行源碼調試的三種方式。
    Proteus源碼調試綜合并突破了傳統(tǒng)硬件仿真器和軟件集成開發(fā)環(huán)境(Integrated Development Envi-ronment,IDE)源碼調試功能。不僅能跟蹤、分析嵌入式系統(tǒng)內的指令執(zhí)行,觀察、改變存儲單元內容等的調試;且從工程角度實現(xiàn)了過程與結果,硬件與軟件,全速與跟蹤,中斷與監(jiān)視,靜態(tài)與動態(tài)等的統(tǒng)一調試。豐富而靈活的調試手段,人與機的積極互動為高質高效實現(xiàn)設計目標創(chuàng)造了條件。從研發(fā)產品的實踐上也證明了Proteus源碼調試的高質、高效和可信度。這里從實踐角度出發(fā)總結Proteus的三種源碼調試方式,著重講述了國內書刊尚未詳細敘述的第三種方式,以發(fā)揮Pro-teus在產品研發(fā)和教學中的先進作用。在此采用的是Proteus 7.5。


1 Proteus VSM源碼調試
    Proteus VSM源碼調試是第一種源碼調試方式。Proteus的源碼調試由源代碼控制系統(tǒng)支持。該系統(tǒng)主要功能是編輯、匯編源碼,并保證代碼及時更新。該系統(tǒng)有源碼(源程序)編輯器、匯編器、調試數據提取器(Debug Data Extractor,DDX)和裝載器等。DDX從匯編器產生的文件中提取調試信息裝入裝載器。源碼調試步驟是:建源碼文件、加載到系統(tǒng),選擇微控制器及匯編器,將源碼經匯編器匯編產生的目標代碼加載到微控制器中,啟動仿真進行源碼調試。
    VSM提供了幾種匯編器,主要有51系列的ASEM51,AVR系列的AVRASM,AVRASM32,PIC系列的MPASM,MPASM32和HC11系列的ASM11等。匯編后可產生HEX或S19(用于MC68HC11),LST,SDI等調試文件。不同的微控制器選擇相應的匯編器,系統(tǒng)自動更新DDX。設定微控制器屬性編輯框中的程序文件即加載代碼文件。啟動仿真進行源碼調試。暫停時,在源碼調試窗口可看到調試格式文件.SDI提供的源碼、代碼及地址,還可打開各種寄存器窗口查看各存儲單元內容。調試中可看到電路與程序代碼協(xié)同、交互式仿真過程和結果。調試中可隨時進行源碼修改、設置各種斷點等。圖1所示為單片機讀鍵并將值送數碼管顯示實驗的源碼調試狀態(tài)。

2 Proteus借第三方編譯器實現(xiàn)源碼調試
    這是第二種源碼調試方式。若源碼使用高級語言,就必須借用Proteus之外的第三方代碼生成工具(匯編器/編譯器)。若此時仍要用VSM的源碼調試功能,就需要匯編器/編譯器提供DDX或輸出Proteus支持的調試格式文件(帶調試信息的目標代碼)。裝載器從這些調試文件中提取調試信息以實現(xiàn)源碼調試。[!--empirenews.page--]
    Proteus裝載器支持的調試文件格式主要有:COFF(通用的,適應于PIC)、OMF(用于8051范圍內)、UBROF(IAR編譯器生成)、ELF/DWARF(通用的,較COFF有較好的調試性能)、COD(由BYTE-CRAFT生成,廣泛應用在PIC 中)等。
    使用以上格式時,首先在編譯器中設置輸出格式,如在Keil中指定OMF格式的代碼文件,如圖2所示(例:6-164.OMF)。然后將生成的帶調試信息的代碼文件作為單片機窗口的“程序文件”。啟動仿真,則可進行源碼調試。

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

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

[!--empirenews.page--]

3.2 方法二
    Proteus集成在IDE(例Proton,MPLAB,Atmel AVR studio)中,作為IDE中的一個仿真與調試工具?,F(xiàn)以Proteus與AVR Studio聯(lián)合仿真中的源碼調試為例較詳細地敘述該調試方法。
    (1)在Proteus的ISIS中設計電路并保存(命名為LSD.DSN);
    (2)在AVR Studio中聯(lián)合調試。
    打開新建工程,在彈出的對話框中選擇工程類型為設置工程名,源文件自動與工程名相同。操作菜單Debug→Select Platform and De-vice,在彈出的對話框中設置調試平臺為Proteus VSMViewer、器件為Atmegar16,如圖4所示。點擊Finish接著彈出源程序編輯窗口。寫完程序、保存并點擊匯編,生成LSD.HEX。在Proteus VSM視窗中點擊打開按鈕(若視窗未打開,操作菜單View→Toolbars→Proteus VSM),打開已有的LSD.DSN電路文件,對Atmegar16設置程序文件為LSD.HEX。點擊AVR的按鈕啟動調試,接下來按AVR中的調試方法進行。圖5右側為AVR開發(fā)環(huán)境中的I/O視窗及CPU信息框,可查看與當前設計相關的PORTD口的內容。在Proteus VSM視窗中右擊還可打開各種存儲器窗口和觀察窗口。

    Proteus除了支持一般的軟件斷點外,還有獨特的條件斷點和硬件實時斷點功能。對源碼調試提供了更靈活的手段。當硬件條件發(fā)生時暫停仿真,與單步調試工具結合極為方便有效。尤其在電路中引入異步觸發(fā),當需要跟蹤分析其對電路的影響時更有用。[!--empirenews.page--]
    (1)條件斷點。如圖5中Proteus的觀察窗口中添加PORTD,并設置它的斷點條件為“On Change”。仿真時當PORTD輸出數據發(fā)生變化就暫停仿真。
    (2)電壓探針斷點。對PORTD0引腳加一電壓探針,命名為PD0(見圖6),設置為數0值觸發(fā)。每當PORTD0輸出低電平時,觸發(fā)斷點使仿真暫停,如圖7所示。

    (3)硬件斷點:實時斷點發(fā)生器。實時斷點發(fā)生器有實時電壓、電流斷點觸發(fā)器RTVBREAK和RTI-BREAK:當觸發(fā)器引腳上的電壓或流經的電流超過設定的值將觸發(fā)斷點,為上升沿觸發(fā);實時數字斷點觸發(fā)器RTDBREAK:當輸入到引腳的二進制數等于設定值時觸發(fā)斷點;實時電壓、電流監(jiān)視器RTVMON和RTI-MON:當輸入電壓或當流經的電流不在設定范圍內,可觸發(fā)斷點、警告或是錯誤??蓪TVMON和RTI-MON用于創(chuàng)建仿真模型,當模型中的電壓或電流超過設定的工作極限時警告終端用戶。
    如圖8對POETD0引腳添加實時數字斷點觸發(fā)器并設置觸發(fā)值為0,達到同上述(2)中電壓探針一樣的斷點調試效果。

4 結語

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉