前言:想要寫出一篇引人入勝的文章?我們特意為您整理了嵌入式系統(tǒng)虛擬仿真實(shí)驗(yàn)設(shè)計(jì)教學(xué)實(shí)踐范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。
摘要:軟件仿真實(shí)驗(yàn)具有通用、使用靈活、易于維護(hù)以及可擴(kuò)展等優(yōu)越特性,可以有效彌補(bǔ)硬件仿真實(shí)驗(yàn)在設(shè)備維護(hù)、資源占用、成本和實(shí)驗(yàn)內(nèi)容等方面的不足。采用開源仿真器QEMU設(shè)計(jì)了虛擬仿真教學(xué)實(shí)驗(yàn),為嵌入式系統(tǒng)操作系統(tǒng)原理、嵌入式系統(tǒng)編程基礎(chǔ)、Linux驅(qū)動(dòng)開發(fā)以及嵌入式開發(fā)等教學(xué)內(nèi)容提供良好支撐。QEMU所具有的開源、多架構(gòu)支持等特性,為實(shí)驗(yàn)教學(xué)活動(dòng)的展開提供了更多、更靈活的選擇。將基于QEMU的軟件仿真實(shí)驗(yàn)與硬件仿真實(shí)驗(yàn)有機(jī)結(jié)合,使得嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)設(shè)計(jì)更加合理有效。
關(guān)鍵詞:虛擬仿真實(shí)驗(yàn);嵌入式系統(tǒng);實(shí)驗(yàn)教學(xué);指令
模擬信息技術(shù)的發(fā)展帶動(dòng)高等教育信息化已成為高等教育改革創(chuàng)新的重要方面,《教育信息化十年發(fā)展規(guī)劃(2011-2020年)》大力倡導(dǎo)信息技術(shù)與高等教育的深度融合,促進(jìn)教育內(nèi)容、教學(xué)手段和方法現(xiàn)代化,創(chuàng)新人才培養(yǎng)。作為貫徹落實(shí)該規(guī)劃的一項(xiàng)重要措施,近年已在高校中開展國(guó)家級(jí)虛擬仿真實(shí)驗(yàn)教學(xué)中心的建設(shè)工作。虛擬仿真實(shí)驗(yàn)教學(xué)是教育信息化建設(shè)和實(shí)驗(yàn)教學(xué)示范中心建設(shè)的重要內(nèi)容[1],北京航空航天大學(xué)電子信息工程學(xué)院嵌入式系統(tǒng)原理與應(yīng)用課程團(tuán)隊(duì)依托國(guó)家級(jí)實(shí)驗(yàn)示范教學(xué)中心,積極開展實(shí)驗(yàn)教學(xué)改革與創(chuàng)新,以提高學(xué)生實(shí)踐創(chuàng)新能力和工程素質(zhì)為目標(biāo),積極探索前沿技術(shù),注重在實(shí)驗(yàn)教學(xué)中使用新興技術(shù)以提高教學(xué)效果。本文即是以團(tuán)隊(duì)利用指令模擬虛擬機(jī)技術(shù)改善實(shí)驗(yàn)教學(xué)的教學(xué)實(shí)踐為例,淺析虛擬仿真實(shí)驗(yàn)中心建設(shè)的探索與實(shí)踐。實(shí)踐是創(chuàng)新的基礎(chǔ),而嵌入式系統(tǒng)課程又是實(shí)踐性極強(qiáng)的一門課程,因此實(shí)驗(yàn)實(shí)踐環(huán)節(jié)是教學(xué)中非常重要的環(huán)節(jié),在實(shí)踐中可以更好地理解知識(shí)和概念,掌握開發(fā)工具,鍛煉實(shí)踐和創(chuàng)新能力。同時(shí),嵌入式系統(tǒng)技術(shù)日新月異快速發(fā)展的節(jié)奏,對(duì)實(shí)踐教學(xué)不斷提出新挑戰(zhàn),需要及時(shí)吸納新的技術(shù),進(jìn)行實(shí)驗(yàn)教學(xué)改革[2]。嵌入式系統(tǒng)是以應(yīng)用為中心的計(jì)算機(jī)技術(shù),課程內(nèi)容主要涉及對(duì)計(jì)算機(jī)體系結(jié)構(gòu)、操作系統(tǒng)、編譯原理、編程語言、軟件工程等知識(shí)的綜合應(yīng)用,解決基于軟硬件協(xié)同進(jìn)行系統(tǒng)優(yōu)化設(shè)計(jì)等問題。近年來,隨著虛擬化技術(shù)的發(fā)展,處理器和計(jì)算機(jī)系統(tǒng)的軟件仿真技術(shù)也快速發(fā)展起來,軟件仿真技術(shù)實(shí)現(xiàn)了硬件模擬,同時(shí)支持在模擬硬件上的軟件開發(fā),很好地模擬了嵌入式系統(tǒng)課程的研究對(duì)象,使得利用軟件仿真技術(shù)開展嵌入式系統(tǒng)虛擬仿真實(shí)驗(yàn)成為可能[3,4]。我們基于開源虛擬機(jī)QEMU,開展虛擬仿真教學(xué)實(shí)驗(yàn)設(shè)計(jì),與硬件實(shí)驗(yàn)形成了虛實(shí)結(jié)合的實(shí)驗(yàn)體系,在教學(xué)實(shí)踐中取得了良好效果。
1基于軟件仿真虛擬化手段改善嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)效果
當(dāng)前,多數(shù)嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)一般依托教學(xué)實(shí)驗(yàn)電路板或教學(xué)實(shí)驗(yàn)箱展開,其核心是嵌入式處理器和存儲(chǔ),外圍根據(jù)需要擴(kuò)展各類接口芯片,其實(shí)質(zhì)是一種硬件仿真設(shè)備,基于核心處理器的性能,可以開展硬件控制、操作系統(tǒng)移植、應(yīng)用程序設(shè)計(jì)、綜合設(shè)計(jì)開發(fā)等多種類型、不同層次的實(shí)驗(yàn),在多年嵌入式系統(tǒng)教學(xué)中發(fā)揮了重要的作用?;谟布抡孢M(jìn)行軟硬件技術(shù)的實(shí)驗(yàn)、驗(yàn)證、分析和設(shè)計(jì),雖然是嵌入式系統(tǒng)實(shí)踐教學(xué)必不可少的手段,但這種方式也存在一定局限,在教學(xué)實(shí)踐中發(fā)現(xiàn)如下一些問題。首先,硬件仿真是與實(shí)際場(chǎng)景最接近的仿真方式,不過也正由于硬件仿真貼近具體的應(yīng)用類型,其靈活性和通用性受到了限制。硬件仿真系統(tǒng)首先必須確定一種處理器選型,而嵌入式處理器的種類繁多,包括面向輕量級(jí)控制類應(yīng)用為主的MCU、以智能設(shè)備或復(fù)雜系統(tǒng)為主的MPU,以通信、多媒體計(jì)算性能取勝的DSP或者是復(fù)雜得多的CPU結(jié)構(gòu),近年來逐漸興起的可編程SOC等眾多類型,而每一種類型下又有來自不同廠商的眾多不同體系結(jié)構(gòu)選擇,選定了處理器也就意味將教學(xué)內(nèi)容限定在某個(gè)類型甚至某個(gè)具體廠商的體系結(jié)構(gòu)上。同時(shí),不同類型的處理器有與之相適應(yīng)的外設(shè)接口類型,更換處理器需要重新開發(fā)仿真設(shè)備以更換相應(yīng)外設(shè),為此,一些硬件仿真設(shè)備采用了固定外設(shè)主板與可更換核心模塊結(jié)合的方式獲得了一定靈活性,另外一些則采用可編程SOC結(jié)構(gòu)從而實(shí)現(xiàn)一定程度的接口定制,不過以硬件方式實(shí)現(xiàn)處理器和接口的任意組合還不是很方便。嵌入式系統(tǒng)是軟硬件高度耦合的計(jì)算機(jī)系統(tǒng),軟件的層次架構(gòu)、開發(fā)方法和開發(fā)工具都與硬件結(jié)構(gòu)有密切聯(lián)系,硬件仿真設(shè)備靈活度有限,也限制了軟件實(shí)踐教學(xué)設(shè)計(jì)的自由度??梢娪捎谟布抡嬖O(shè)備在處理器體系結(jié)構(gòu)、接口等方面相對(duì)固定,使得展開更加全面和多樣化的嵌入式系統(tǒng)實(shí)踐教學(xué)需求受到一定限制。從教學(xué)設(shè)備維護(hù)和教學(xué)運(yùn)行角度,全硬件仿真實(shí)驗(yàn)?zāi)J揭泊嬖诓蛔?。從教學(xué)設(shè)備維護(hù)角度看,全硬件仿真方式在承載大量實(shí)驗(yàn)需求時(shí)面臨故障率高和更新周期長(zhǎng)的雙重壓力。一方面,教學(xué)實(shí)驗(yàn)設(shè)備產(chǎn)品大部分沒有建立健全的質(zhì)量標(biāo)準(zhǔn)體系,嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)平臺(tái)產(chǎn)品更是如此,商業(yè)采購(gòu)的設(shè)備質(zhì)量保證期限一般短于預(yù)期使用年限,如果是自行開發(fā)的平臺(tái)則故障率和報(bào)廢率更高。嵌入式系統(tǒng)技術(shù)發(fā)展很快,廠商的產(chǎn)品線變化也較快,部分教學(xué)設(shè)備損壞后,一般也不容易再采購(gòu)到同型號(hào)產(chǎn)品,容易造成可用實(shí)驗(yàn)設(shè)備數(shù)量不足。另一方面,硬件設(shè)備成本高、投入大,更新周期一般較長(zhǎng),與目前教學(xué)內(nèi)容更新較快的節(jié)奏不能完全匹配。從教學(xué)運(yùn)行角度看,硬件仿真實(shí)驗(yàn)在實(shí)驗(yàn)室進(jìn)行,易受場(chǎng)地限制,每次實(shí)驗(yàn)又有時(shí)間限制,一些耗時(shí)較長(zhǎng)的實(shí)驗(yàn),如操作系統(tǒng)編譯等,就不便充分展開。有限的實(shí)驗(yàn)資源與增長(zhǎng)的教學(xué)需求之間存在一定矛盾。軟件仿真以軟件方式模擬處理器或計(jì)算機(jī)系統(tǒng),可以模擬CPU指令執(zhí)行的過程和與外設(shè)的交互過程,可以運(yùn)行在多種主機(jī)系統(tǒng)上,支持眾多的處理器架構(gòu),具有易于更新升級(jí)、維護(hù)成本低、便于擴(kuò)展、可以重構(gòu)定制等特點(diǎn),而這些正是硬件仿真方式所欠缺的,可以彌補(bǔ)硬件仿真方式的靈活性不足、易損壞、更新周期慢、受場(chǎng)地和時(shí)間限制等不足。因此,將軟件仿真方式與硬件方式相結(jié)合,可以取長(zhǎng)補(bǔ)短,形成對(duì)嵌入式系統(tǒng)實(shí)驗(yàn)實(shí)踐教學(xué)的良好支持。
2指令模擬虛擬機(jī)選型
軟件仿真方式一般有兩種,分為模擬器模式和仿真器模式,模擬器方式一般只模擬對(duì)外部的接口功能,其內(nèi)部實(shí)現(xiàn)方式與被模擬目標(biāo)工作方式可能完全不同,而仿真模式則是模擬目標(biāo)處理器或系統(tǒng)的底層狀態(tài)變化過程,因而更接近實(shí)際硬件。模擬嵌入式系統(tǒng)處理器或系統(tǒng)的軟件大部分運(yùn)行在通用計(jì)算機(jī)平臺(tái)上,以模擬器方式為主,本文從教學(xué)應(yīng)用角度,不特別區(qū)分兩種方式,統(tǒng)一稱為軟件仿真器。軟件仿真器有兩種工作模式,一種是只仿真處理器的用戶模式;另一種則仿真處理器及其外圍設(shè)備,稱為系統(tǒng)仿真模式。軟件仿真實(shí)驗(yàn)需要選用合適的仿真器軟件,從嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)角度看,對(duì)仿真器軟件的基本要求是,運(yùn)行在通用計(jì)算機(jī)上,能夠模擬嵌入式處理器及盡可能豐富的外設(shè)。具有這些特性的模擬器包括ADSARMULATOR、Android仿真器、Proteus以及SkyEye和QEMU等開源模擬器。ADSARMulator是ARM公司推出的集成開發(fā)環(huán)境ADS(ARMDeveloperSuite)中提供的指令集模擬器,可以模擬ARMv5TE之前多種內(nèi)核,但是對(duì)外設(shè)的仿真較少,通過半主機(jī)模式提供一個(gè)與用戶交互的控制臺(tái)終端;ARM公司的最新集成開發(fā)環(huán)境DS-5中集成了一個(gè)性能更高的模擬器RTSM,可以模擬Cortex-A8系統(tǒng),模擬外設(shè)接口,包括LCD控制器、鍵盤、鼠標(biāo)、觸摸屏、UART和以太網(wǎng)控制器等。Android仿真器可以模擬多種類型的手機(jī)、平板等嵌入式系統(tǒng),具有非常好的界面,不過一般只是適用于進(jìn)行基于Android系統(tǒng)的應(yīng)用軟件的仿真和調(diào)試。Proteus軟件是英國(guó)LabCenterElectronics公司的EDA工具軟件,可以仿真51系列、AVR、PIC、ARM等常用主流單片機(jī),可以仿真外設(shè)并看到運(yùn)行后輸入輸出的效果。近年來出現(xiàn)了一些各具特色的開源模擬器如開源Armulator,Simit-ARM,SPIMARMSIM,ProEmulator等,可以對(duì)基于ARM、MIPS等體系架構(gòu)的處理器或系統(tǒng)進(jìn)行仿真。在嵌入式系統(tǒng)的開源模擬器中比較出色的是SkyEye和QEMU。SkyEye是清華大學(xué)陳渝教授在博士后期間發(fā)起的一個(gè)開源項(xiàng)目,目標(biāo)是實(shí)現(xiàn)嵌入式開發(fā)硬件模擬器,支持系統(tǒng)級(jí)仿真,已經(jīng)實(shí)現(xiàn)了多種架構(gòu)的處理器和包括LCD、網(wǎng)絡(luò)接口等在內(nèi)的多種外設(shè),使用非常方便。QEMU是一個(gè)開源的通用軟件仿真器,使用動(dòng)態(tài)翻譯技術(shù),可以在宿主機(jī)上模擬出另外一種體系結(jié)構(gòu)客戶機(jī)計(jì)算機(jī)系統(tǒng),從而可以在宿主機(jī)上運(yùn)行客戶機(jī)操作系統(tǒng)和應(yīng)用程序;QEMU既支持通用計(jì)算機(jī)體系結(jié)構(gòu),也支持ARM,MIPS,PowerPC,SPARC,ColdFire,MicroBlaze,Xtensa等多種嵌入式體系結(jié)構(gòu),其支持的ARM處理器數(shù)量有50多種;QEMU使用了多種優(yōu)化技術(shù),極大提高了仿真速度;QEMU自1.3.0版之后正式整合KVM,使其同時(shí)也成為一款優(yōu)秀的虛擬機(jī)軟件。
3基于QEMU設(shè)計(jì)嵌入式系統(tǒng)虛擬仿真實(shí)驗(yàn)
QEMU所具備的多平臺(tái)支持和系統(tǒng)級(jí)仿真能力,為嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)開拓了廣闊的空間,可以在QEMU平臺(tái)開展多種類型、不同層次實(shí)驗(yàn),為學(xué)生提供豐富的實(shí)驗(yàn)內(nèi)容和更多的實(shí)踐機(jī)會(huì),加強(qiáng)對(duì)其工程實(shí)踐能力的培養(yǎng)和鍛煉。在講解嵌入式操作系統(tǒng)原理部分時(shí),教學(xué)主要以原理和算法分析為主,很多時(shí)候?yàn)榱吮阌诶斫?,需要?guī)避一些硬件細(xì)節(jié),軟件模擬器恰好符合這個(gè)需求,可以對(duì)操作系統(tǒng)做任意的定制,還可以借鑒通用計(jì)算機(jī)操作系統(tǒng)原理課程中一些經(jīng)典的教學(xué)實(shí)驗(yàn)和案例,展現(xiàn)關(guān)于進(jìn)程管理、內(nèi)核調(diào)度等相關(guān)概念。在講解嵌入式系統(tǒng)軟件編程基礎(chǔ)時(shí),為了幫助學(xué)生理解知識(shí)并熟悉開發(fā)工具,需要布置一些編程的實(shí)驗(yàn)作業(yè),需要上機(jī)調(diào)試,而有限的實(shí)驗(yàn)室資源無法支撐這個(gè)需要。借助QEMU可以指導(dǎo)學(xué)生在自己的個(gè)人計(jì)算機(jī)上建立一個(gè)仿真開發(fā)環(huán)境,可以調(diào)試并運(yùn)行學(xué)生自己編寫的程序。在講解嵌入式系統(tǒng)GUI編程時(shí),希望學(xué)生可以動(dòng)手搭建自己的GUI開發(fā)環(huán)境,自己開發(fā)GUI程序,會(huì)使用Qt或其他工具,QEMU可模擬LCD外設(shè),在模擬出的LCD上顯示圖形化界面,可激發(fā)學(xué)生學(xué)習(xí)興趣,這些實(shí)驗(yàn)也適合在課外完成,使學(xué)生有充足的時(shí)間完成設(shè)計(jì)與調(diào)試。此外,在講解嵌入式Linux驅(qū)動(dòng)程序開發(fā)、網(wǎng)絡(luò)編程等內(nèi)容時(shí),也可以使用QEMU設(shè)計(jì)教學(xué)實(shí)驗(yàn)、課堂演示案例等,提升教學(xué)效果。還可以設(shè)計(jì)系統(tǒng)性、綜合性實(shí)驗(yàn),幫助學(xué)生掌握嵌入式系統(tǒng)軟件開發(fā)的方法和流程。表2是本教學(xué)團(tuán)隊(duì)在教學(xué)實(shí)踐中基于QEMU,模擬ARMCortex-A9系統(tǒng),開展嵌入式Linux移植和程序開發(fā)虛擬仿真綜合實(shí)驗(yàn)的例子。
4結(jié)語
嵌入式系統(tǒng)課程是一門實(shí)踐性非常強(qiáng)的課程,充分的實(shí)驗(yàn)實(shí)踐是掌握好課程知識(shí)的必要條件,而由于受到課場(chǎng)地、經(jīng)費(fèi)等限制,硬件仿真的實(shí)驗(yàn)學(xué)時(shí)尚顯不足,實(shí)踐能力培養(yǎng)效果不盡理想。QEMU所具備的系統(tǒng)級(jí)仿真能力,使其可以支撐嵌入式系統(tǒng)課程中絕大部分軟件相關(guān)內(nèi)容的實(shí)踐教學(xué),加之其開源、易用等特點(diǎn),為實(shí)驗(yàn)教學(xué)帶來諸多好處:對(duì)于部分硬件仿真實(shí)驗(yàn)可以在QEMU所模擬的系統(tǒng)上進(jìn)行預(yù)習(xí),以此為基礎(chǔ)在實(shí)驗(yàn)室可以開展翻轉(zhuǎn)課堂教學(xué),就一些關(guān)鍵問題展開實(shí)驗(yàn)和討論;可以布置開放性實(shí)驗(yàn)作業(yè),學(xué)生可以利用課后時(shí)間展開探索研究;可以基于軟件模擬器,增補(bǔ)新的課外實(shí)驗(yàn);可利用QEMU的通用多架構(gòu)支持特性,突破硬件仿真方式實(shí)驗(yàn)教學(xué)依賴于具體體系結(jié)構(gòu)的限制,拓展課程覆蓋面,同時(shí)便于通過直觀的比較使學(xué)生了解不同體系結(jié)構(gòu)的技術(shù)特點(diǎn);此外,虛擬化是云計(jì)算的核心技術(shù)之一,QEMU-KVM作為一款優(yōu)秀開源虛擬化軟件,其自身也可以成為虛擬化技術(shù)相關(guān)實(shí)驗(yàn)的基礎(chǔ)。當(dāng)然,軟件仿真實(shí)驗(yàn)不可能取代硬件仿真實(shí)驗(yàn),兩者各具特色,教學(xué)中還需要進(jìn)一步加強(qiáng)整體規(guī)劃,豐富實(shí)驗(yàn)內(nèi)容,健全相互協(xié)調(diào)的實(shí)驗(yàn)體系,使得嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)設(shè)計(jì)更加合理有效。
參考文獻(xiàn)
[1]王衛(wèi)國(guó).虛擬仿真實(shí)驗(yàn)教學(xué)中心建設(shè)思考與建議[J].實(shí)驗(yàn)室研究與探索.2013,32(13):5-8.
[2]沈珊瑚,姚茂群.面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究[J].計(jì)算機(jī)教育,2016(7):27-30.
[3]楊繼森,張靜,朱革,鄭方燕.基于ARMCortex平臺(tái)的嵌入式系統(tǒng)課程虛擬實(shí)驗(yàn)平臺(tái)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理.2014,31(7):97-101.
[4]姚英彪,曾憲彬.嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)的QtMIPS仿真軟件開發(fā)[J].實(shí)驗(yàn)室研究與探索.2017,36(1):98-103.
作者:楊昕欣 刁為民 王俊 劉榮科 譚大為 單位:北京航空航天大學(xué)電子信息工程學(xué)院