當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀]電路仿真軟件主要目的在于仿真,目前最為知名的電路仿真軟件之一為proteus,因此本文對(duì)于電路仿真軟件的講解基于該軟件。對(duì)于proteus電路仿真軟件,小編也帶來(lái)相應(yīng)介紹。但為增加大家對(duì)proteus電路仿真軟件的實(shí)用能力,在本文中,將為大家講解基于protues的嵌入式應(yīng)用系統(tǒng)仿真中的源碼調(diào)試過(guò)程。

電路仿真軟件主要目的在于仿真,目前最為知名的電路仿真軟件之一為proteus,因此本文對(duì)于電路仿真軟件的講解基于該軟件。對(duì)于proteus電路仿真軟件,小編也帶來(lái)相應(yīng)介紹。但為增加大家對(duì)proteus電路仿真軟件的實(shí)用能力,在本文中,將為大家講解基于protues的嵌入式應(yīng)用系統(tǒng)仿真中的源碼調(diào)試過(guò)程。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

一、引 言

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

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

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

Proteus VSM源碼調(diào)試是第一種源碼調(diào)試方式。Proteus的源碼調(diào)試由源代碼控制系統(tǒng)支持。該系統(tǒng)主要功能是編輯、匯編源碼,并保證代碼及時(shí)更新。該系統(tǒng)有源碼(源程序)編輯器、匯編器、調(diào)試數(shù)據(jù)提取器(Debug Data Extractor,DDX)和裝載器等。DDX從匯編器產(chǎn)生的文件中提取調(diào)試信息裝入裝載器。源碼調(diào)試步驟是:建源碼文件、加載到系統(tǒng),選擇微控制器及匯編器,將源碼經(jīng)匯編器匯編產(chǎn)生的目標(biāo)代碼加載到微控制器中,啟動(dòng)仿真進(jì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)自動(dòng)更新DDX。設(shè)定微控制器屬性編輯框中的程序文件即加載代碼文件。啟動(dòng)仿真進(jìn)行源碼調(diào)試。暫停時(shí),在源碼調(diào)試窗口可看到調(diào)試格式文件.SDI提供的源碼、代碼及地址,還可打開(kāi)各種寄存器窗口查看各存儲(chǔ)單元內(nèi)容。調(diào)試中可看到電路與程序代碼協(xié)同、交互式仿真過(guò)程和結(jié)果。調(diào)試中可隨時(shí)進(jìn)行源碼修改、設(shè)置各種斷點(diǎn)等。圖1所示為單片機(jī)讀鍵并將值送數(shù)碼管顯示實(shí)驗(yàn)的源碼調(diào)試狀態(tài)。

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

這是第二種源碼調(diào)試方式。若源碼使用高級(jí)語(yǔ)言,就必須借用Proteus之外的第三方代碼生成工具(匯編器/編譯器)。若此時(shí)仍要用VSM的源碼調(diào)試功能,就需要匯編器/編譯器提供DDX或輸出Proteus支持的調(diào)試格式文件(帶調(diào)試信息的目標(biāo)代碼)。裝載器從這些調(diào)試文件中提取調(diào)試信息以實(shí)現(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í),首先在編譯器中設(shè)置輸出格式,如在Keil中指定OMF格式的代碼文件,如圖2所示(例:6-164.OMF)。然后將生成的帶調(diào)試信息的代碼文件作為單片機(jī)窗口的“程序文件”。啟動(dòng)仿真,則可進(jìn)行源碼調(diào)試。

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

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

1萬(wàn)法一

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

2方法二

Proteus集成在IDE(例Proton,MPLAB,Atmel AVR studio)中,作為IDE中的一個(gè)仿真與調(diào)試工具?,F(xiàn)以Proteus與AVR Studio聯(lián)合仿真中的源碼調(diào)試為例較詳細(xì)地?cái)⑹鲈撜{(diào)試方法。

(1)在Proteus的ISIS中設(shè)計(jì)電路并保存(命名為L(zhǎng)SD.DSN);

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

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

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

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

(2)電壓探針斷點(diǎn)。對(duì)PORTD0引腳加一電壓探針,命名為PD0(見(jiàn)圖6),設(shè)置為數(shù)0值觸發(fā)。每當(dāng)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:當(dāng)觸發(fā)器引腳上的電壓或流經(jīng)的電流超過(guò)設(shè)定的值將觸發(fā)斷點(diǎn),為上升沿觸發(fā);實(shí)時(shí)數(shù)字?jǐn)帱c(diǎn)觸發(fā)器RTDBREAK:當(dāng)輸入到引腳的二進(jìn)制數(shù)等于設(shè)定值時(shí)觸發(fā)斷點(diǎn);實(shí)時(shí)電壓、電流監(jiān)視器RTVMON和RTI-MON:當(dāng)輸入電壓或當(dāng)流經(jīng)的電流不在設(shè)定范圍內(nèi),可觸發(fā)斷點(diǎn)、警告或是錯(cuò)誤??蓪TVMON和RTI-MON用于創(chuàng)建仿真模型,當(dāng)模型中的電壓或電流超過(guò)設(shè)定的工作極限時(shí)警告終端用戶(hù)。

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

五、結(jié)語(yǔ)

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

以上便是此次小編帶來(lái)的“電路仿真軟件”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)基于protues的仿真應(yīng)用的源碼調(diào)試過(guò)程具備一定的認(rèn)知。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!

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

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

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

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉