亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于模擬仿真系統(tǒng)的嵌入式系統(tǒng)課程實(shí)踐教學(xué)研究

        2022-02-27 07:36:32徐國鑫
        科教導(dǎo)刊·電子版 2022年33期
        關(guān)鍵詞:嵌入式指令調(diào)試

        滿 毅,徐國鑫

        (北京郵電大學(xué)電子工程學(xué)院,北京 100876)

        0 引言

        嵌入式系統(tǒng)設(shè)計(jì)課程對嵌入式系統(tǒng)的概念、軟硬件組成、設(shè)計(jì)開發(fā)方法、嵌入式操作系統(tǒng)、嵌入式軟件(包括應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序)的設(shè)計(jì)開發(fā)進(jìn)行全面的介紹。并以ARM體系架構(gòu)的處理器為例講解嵌入式系統(tǒng)硬件結(jié)構(gòu)和處理器指令體系,以嵌入式Linux操作系統(tǒng)為例介紹了嵌入式操作系統(tǒng)的主要結(jié)構(gòu)和嵌入式應(yīng)用開發(fā)的基本方法。通過這門課的學(xué)習(xí)使學(xué)生深入地了解嵌入式系統(tǒng)結(jié)構(gòu),掌握其軟硬件設(shè)計(jì)方法,提高學(xué)生的嵌入式系統(tǒng)的開發(fā)能力。

        目前,在嵌入式系統(tǒng)相關(guān)課程的教學(xué)改革研究主要集中在幾個(gè)方面,一是教學(xué)模式的改變,如探討國際化教學(xué)模式和本土案例驅(qū)動(dòng)相結(jié)合的課程建設(shè)[1]。從建設(shè)開放實(shí)驗(yàn)室、興趣小組、強(qiáng)調(diào)理論聯(lián)系實(shí)際的教學(xué)方法、促進(jìn)師生交流等方面探討了嵌入式系統(tǒng)課程的教改思路[2]。二是從教學(xué)內(nèi)容的角度梳理嵌入式系統(tǒng)設(shè)計(jì)相關(guān)課程在知識(shí)體系中的定位,提出“計(jì)算機(jī)組成與體系結(jié)構(gòu)”課程群的建設(shè)目標(biāo)和思路,給出嵌入式系統(tǒng)課程的定位和教學(xué)內(nèi)容[3]。研究多所高校的嵌入式系統(tǒng)課的教學(xué)內(nèi)容,給出更合理的課程架構(gòu)和教學(xué)內(nèi)容設(shè)置[4]。三是針對特定專業(yè)來探討嵌入式系統(tǒng)相關(guān)課程的教學(xué)內(nèi)容,如探討面向物聯(lián)網(wǎng)專業(yè),基于新的實(shí)驗(yàn)平臺(tái)的嵌入式系統(tǒng)開發(fā)課程的教學(xué)改革思路[5-6]。還有就是針對實(shí)驗(yàn)環(huán)節(jié)的一些教改想法,如針對嵌入式系統(tǒng)的實(shí)驗(yàn)內(nèi)容設(shè)置和管理提出教改的思路[7]。綜上所述,針對嵌入式系統(tǒng)相關(guān)課程的實(shí)踐教學(xué)改革項(xiàng)目還比較少。目前嵌入式系統(tǒng)課程的實(shí)踐教學(xué)也存在一些問題:以開發(fā)板實(shí)物為核心的實(shí)驗(yàn)環(huán)境在非面對面教學(xué)需求下開展難度大;實(shí)物開發(fā)板的配置靈活性差、成本高,不能快速適應(yīng)課程教學(xué)的需求變化。比如針對新的 RISC-V架構(gòu),購置設(shè)計(jì)一整套R(shí)ISC-V開發(fā)實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)需要的時(shí)間周期和成本都比較高,在網(wǎng)絡(luò)相關(guān)實(shí)驗(yàn)中配置多實(shí)例的實(shí)驗(yàn)環(huán)境也比較困難。

        使用指令模擬器、仿真運(yùn)行環(huán)境可以很好地解決上述問題。業(yè)界出于降低成本的考慮,采用仿真平臺(tái)驗(yàn)證嵌入式系統(tǒng)和芯片軟硬件設(shè)計(jì)已經(jīng)比較普遍,完全有必要引入本課程支撐實(shí)踐教學(xué)環(huán)節(jié)。而且基于仿真平臺(tái)的實(shí)驗(yàn)教學(xué)能夠很方便地支撐遠(yuǎn)程或線上教學(xué)的需求,還能充分利用線上教學(xué)的各種便利條件。仿真平臺(tái)又保證了在其上的操作系統(tǒng)、應(yīng)用軟件與真實(shí)硬件環(huán)境里的完全一樣。仿真平臺(tái)可以很方便地實(shí)現(xiàn)多實(shí)例部署,實(shí)現(xiàn)仿真多個(gè)目標(biāo)系統(tǒng)的實(shí)驗(yàn)環(huán)境。仿真平臺(tái)也能很方便地變換為對另一個(gè)處理器環(huán)境,比如RISC-V等。

        1 基于指令模擬器和仿真系統(tǒng)的教學(xué)平臺(tái)

        QEMU(quickemulator)是一款由FabriceBellard編寫的免費(fèi)的可執(zhí)行硬件虛擬化的開源托管虛擬機(jī)。具有較高的運(yùn)行速度、跨平臺(tái)的特性。QEMU通過動(dòng)態(tài)的二進(jìn)制轉(zhuǎn)換,在宿主環(huán)境中模擬多種不同類型的處理器,并且提供一組設(shè)備模型,使它能夠運(yùn)行多種未修改的操作系統(tǒng),并可通過與 KVM 協(xié)作達(dá)到接近本地處理器速度運(yùn)行虛擬機(jī)。QEMU還可以以用戶模式運(yùn)行,提供基本的運(yùn)行庫環(huán)境??紤]到性能表現(xiàn)QEMU僅提供功能級仿真,但對于嵌入式系統(tǒng)課程教學(xué)來說已經(jīng)足夠了。在本課程的實(shí)踐環(huán)境中,用QEMU仿真ARM處理器運(yùn)行樹莓派操作系統(tǒng)Raspbian模擬樹莓派ARM開發(fā)環(huán)境。

        QEMU功能全面,同時(shí)也具有命令行參數(shù)復(fù)雜,系統(tǒng)級仿真運(yùn)行的運(yùn)行準(zhǔn)備工作復(fù)雜繁多。為了簡化問題,讓學(xué)生在學(xué)習(xí)處理器指令時(shí)也有一個(gè)較好的實(shí)例化練習(xí)環(huán)境,本課程還引入了一個(gè)ARM指令模擬器。ArmSim#是R.Nigel Horspool開發(fā)的ARM7TDMI指令模擬器,可以完成嵌入式系統(tǒng)設(shè)計(jì)課程講授的 ARM7TDMI指令的模擬運(yùn)行,可以顯示處理器寄存器、內(nèi)存、堆棧等部件的狀態(tài),能進(jìn)行GNU格式匯編程序的編譯和運(yùn)行,并支持調(diào)試運(yùn)行、簡單的外設(shè)模擬和SWI中斷服務(wù)。ArmSim#可以通過插件的形式實(shí)現(xiàn)虛擬的開發(fā)板,支持按鈕、LED、七段數(shù)碼管、鍵盤、LCD顯示屏等功能,并通過一套SWI軟中斷服務(wù)程序進(jìn)行驅(qū)動(dòng)。ArmSim#的運(yùn)行環(huán)境非常簡單,對程序的編寫格式要求低,不需要操作系統(tǒng)特別支持,也不需要運(yùn)行庫支撐,能運(yùn)行在一般Windows環(huán)境,能方便地進(jìn)行調(diào)試運(yùn)行,對于學(xué)生學(xué)習(xí)ARM基本指令有很大幫助。

        圖1 基于仿真系統(tǒng)的教學(xué)平臺(tái)架構(gòu)

        上圖是基于仿真系統(tǒng)的教學(xué)平臺(tái)架構(gòu)。在 Vmware基本虛擬運(yùn)行環(huán)境中運(yùn)行 Ubuntu作為虛擬的宿主系統(tǒng),在Ubuntu環(huán)境中再運(yùn)行QEMU系統(tǒng)仿真ARM環(huán)境,再運(yùn)行Raspbian樹莓派系統(tǒng)作為虛擬的目標(biāo)系統(tǒng)。這種架構(gòu)主要考慮到學(xué)生的計(jì)算機(jī)基本環(huán)境主要是 Windows10/11、MacOS、Ubuntu 等。通過Vmware運(yùn)行 Ubuntu操作系統(tǒng),取得一致的基本運(yùn)行環(huán)境。雖然Windows10/11環(huán)境有更好WSL環(huán)境,但是考慮到安裝WSL需要進(jìn)行Windows版本升級,而且其他操作系統(tǒng)沒有對應(yīng)的支持,仍然在實(shí)驗(yàn)指導(dǎo)書中建議使用Vmware虛擬機(jī)的方式,當(dāng)然對能力較強(qiáng)的學(xué)生也鼓勵(lì)使用其他方法得到基本的Ubuntu運(yùn)行環(huán)境。在這樣的基本環(huán)境中再運(yùn)行QEMU的ARM版本,用system方式運(yùn)行,運(yùn)行專用的kernel文件、設(shè)備樹文件和對應(yīng)文件系統(tǒng)文件啟動(dòng)Raspbian操作系統(tǒng)。Ubuntu系統(tǒng)作為宿主系統(tǒng),Raspbian系統(tǒng)作為目標(biāo)系統(tǒng),構(gòu)成基本的虛擬樹莓派嵌入式開發(fā)環(huán)境。并且Ubuntu運(yùn)行于x86處理器架構(gòu)下,Raspbian運(yùn)行于ARM處理器架構(gòu)下,符合對實(shí)際硬件環(huán)境的仿真要求。

        通過上述兩個(gè)環(huán)境,能夠很好地支持學(xué)生學(xué)習(xí)ARM處理器和指令,學(xué)習(xí)基于ARM和Linux環(huán)境的嵌入式環(huán)境搭建、開發(fā)、調(diào)試技能。下面就基于指令模擬器和仿真系統(tǒng)設(shè)計(jì)的一些典型實(shí)驗(yàn)做一下說明。

        2 基于指令模擬器的實(shí)例

        2.1 按鈕控制LED閃燈

        為了講授虛擬開發(fā)板的基本外設(shè)控制設(shè)計(jì)本實(shí)驗(yàn)。實(shí)驗(yàn)要求學(xué)生編寫簡單ARM匯編程序調(diào)用SWI軟件中斷服務(wù)實(shí)現(xiàn)虛擬開發(fā)板通過按鈕控制LED燈按照一定的規(guī)律循環(huán)閃亮,并通過數(shù)碼管顯示當(dāng)前模式。通過程序控制輸入設(shè)備按鈕、輸出設(shè)備LED,并編程實(shí)現(xiàn)延時(shí),并需要考慮單執(zhí)行線索程序如何處理延時(shí)操作和讀取外設(shè)狀態(tài)操作的關(guān)系保證程序?qū)斎雱?dòng)作具有合理的響應(yīng)時(shí)延。

        此實(shí)驗(yàn)對訓(xùn)練學(xué)生的 ARM 匯編編程能力有很大好處,需要初步的規(guī)劃寄存器的使用,需要考慮歸納部分常用邏輯作為子程序調(diào)用,需用通盤考慮程序邏輯的分配。

        2.2 鍵盤控制貪吃蛇顯示

        為了講授虛擬開發(fā)板的 LCD顯示屏和鍵盤的控制,并練習(xí)較復(fù)雜的程序邏輯編寫設(shè)計(jì)本實(shí)驗(yàn)。實(shí)驗(yàn)要求學(xué)生通過鍵盤控制貪吃蛇游戲的顯示。編寫程序通過鍵盤控制在LCD顯示屏上以動(dòng)畫顯示字符串方式實(shí)現(xiàn)蛇身的行進(jìn)、改變方向等過程,并完成基本的生死判斷,如觸碰區(qū)域邊界等。

        此實(shí)驗(yàn)的編程難度較高,對訓(xùn)練學(xué)生的ARM指令編程能力有很大好處。需要形成一套較完整的寄存器使用規(guī)則,需要學(xué)會(huì)分解和抽象問題進(jìn)行整體的架構(gòu)設(shè)計(jì),需要設(shè)計(jì)核心數(shù)據(jù)結(jié)構(gòu),使用內(nèi)存區(qū)域保存多種狀態(tài)參量等。是一個(gè)較完整的編程邏輯和布局訓(xùn)練實(shí)驗(yàn)。

        3 基于仿真平臺(tái)的嵌入式實(shí)驗(yàn)

        3.1 嵌入式開發(fā)環(huán)境搭建

        為了講授仿真嵌入式環(huán)境的組成結(jié)構(gòu)、虛擬嵌入式基本開發(fā)環(huán)境搭建和驗(yàn)證設(shè)計(jì)了本實(shí)驗(yàn)。實(shí)驗(yàn)要求學(xué)生先搭建基本框架,包括:Vmware15、Ubuntu 18.04、QEMU 6.1.0、Raspbian10。其次建立網(wǎng)絡(luò)環(huán)境,通過QEMU端口映射連接虛擬宿主機(jī) Ubuntu和目標(biāo)系統(tǒng) Raspbian的練習(xí)。在網(wǎng)絡(luò)連接的基礎(chǔ)上建立ssh、SFTP的登錄和文件傳輸通道并傳送文件進(jìn)行驗(yàn)證。最后通過在宿主系統(tǒng)中編寫C應(yīng)用程序并上傳至目標(biāo)系統(tǒng)進(jìn)行編譯并運(yùn)行,驗(yàn)證整個(gè)仿真系統(tǒng)運(yùn)行環(huán)境搭建的是否正確。

        此實(shí)驗(yàn)主要是知識(shí)性的,技能要求較低。要求學(xué)生按步驟完成即可。但也要求學(xué)生對整體結(jié)構(gòu)概念清晰,并學(xué)習(xí)各個(gè)部件的功能和使用,了解對應(yīng)指令的功能和用法。此實(shí)驗(yàn)?zāi)芎芎玫赜?xùn)練學(xué)生對整體結(jié)構(gòu)了解和認(rèn)識(shí)功能部件。

        3.2 Linux內(nèi)核定制和調(diào)試

        為了講授Linux內(nèi)核基本結(jié)構(gòu)和功能設(shè)計(jì)了本實(shí)驗(yàn)。實(shí)驗(yàn)要求學(xué)生在宿主系統(tǒng)中先安裝x86到ARM的交叉編譯環(huán)境和IDE環(huán)境Vscode;下載安裝對應(yīng)版本的linux內(nèi)核源碼;對內(nèi)核源碼進(jìn)行配置和簡單修改;重新編譯制作內(nèi)核和設(shè)備樹文件;使用Busybox制作對應(yīng)文件系統(tǒng);通過QEMU裝載內(nèi)核、設(shè)備樹文件和文件系統(tǒng)。最后在宿主系統(tǒng)安裝gdb的多體系架構(gòu)支持版本,進(jìn)行QEMU內(nèi)核啟動(dòng)的gdb調(diào)試運(yùn)行;在Vscode中安裝C/C++插件,進(jìn)行調(diào)試運(yùn)行配置文件配置,通過Vscode進(jìn)行QEMU內(nèi)核啟動(dòng)的調(diào)試運(yùn)行。

        此實(shí)驗(yàn)雖然主要也是知識(shí)概念性的,但處理環(huán)節(jié)多,出錯(cuò)的可能較大。為降低難度,實(shí)驗(yàn)過程中所有使用到的部件均已準(zhǔn)備好,保證是能相互適配的。本實(shí)驗(yàn)要求學(xué)生對操作系統(tǒng)、仿真運(yùn)行環(huán)境的概念清晰,對相關(guān)指令的功能和使用有了解,并且需要具備一定的發(fā)現(xiàn)問題、解決問題的能力。

        3.3 設(shè)備驅(qū)動(dòng)程序開發(fā)和數(shù)據(jù)展示

        為了講授Linux設(shè)備驅(qū)動(dòng)程序開發(fā)設(shè)計(jì)了本實(shí)驗(yàn)。實(shí)驗(yàn)要求學(xué)生基于一個(gè)樣例設(shè)備驅(qū)動(dòng)程序源碼開發(fā)一個(gè)簡單隨機(jī)數(shù)發(fā)生器字符設(shè)備驅(qū)動(dòng)程序,編譯制作后裝載入內(nèi)核。進(jìn)而基于一個(gè)WEB數(shù)據(jù)展示樣例應(yīng)用進(jìn)行修改,增加對設(shè)備驅(qū)動(dòng)對應(yīng)設(shè)備文件的訪問得到隨機(jī)數(shù)字序列并展示在宿主系統(tǒng)的瀏覽器上。

        本實(shí)驗(yàn)有一定難度,需要學(xué)生學(xué)習(xí)了解設(shè)備驅(qū)動(dòng)程序的組成和工作方式,學(xué)習(xí)了解WEB應(yīng)用框架的組成和運(yùn)行機(jī)制,并具備一定編程能力。實(shí)驗(yàn)?zāi)芎芎玫赜?xùn)練學(xué)生編寫設(shè)備驅(qū)動(dòng)程序和綜合應(yīng)用程序的能力。

        3.4 仿真平臺(tái)深度學(xué)習(xí)框架移植

        目前產(chǎn)業(yè)界已經(jīng)存在大量基于嵌入式系統(tǒng)承載物體識(shí)別、人臉識(shí)別類的AI應(yīng)用。為了能讓學(xué)生了解AI技術(shù)的發(fā)展,我們在嵌入式系統(tǒng)課程實(shí)踐環(huán)節(jié)也增加了移植人工智能平臺(tái)并進(jìn)行物體識(shí)別的實(shí)驗(yàn)。實(shí)驗(yàn)要求在仿真Raspbian系統(tǒng)中移植原來在x86環(huán)境運(yùn)行的AI平臺(tái)darknet,并進(jìn)行物體識(shí)別運(yùn)算過程以驗(yàn)證移植的效果。

        之所以選擇darknet,主要是考慮到darknet是C語言開發(fā)的,對支持庫的需求很小。而且darknet可以運(yùn)行多種yolo族物體識(shí)別模型,yolo族模型是物體識(shí)別領(lǐng)域效果好且非常常見的基于深度神經(jīng)網(wǎng)絡(luò)的算法,并且在開放資源中能夠得到訓(xùn)練好的權(quán)重文件。

        實(shí)驗(yàn)要求學(xué)生從x86環(huán)境把darknet源碼移植到ARM環(huán)境,在宿主系統(tǒng)中進(jìn)行制作文件修改,交叉編譯制作。使用準(zhǔn)備好的權(quán)重文件對特定圖片文件進(jìn)行模型判斷。實(shí)驗(yàn)有一定難度,為降低難度,事先已經(jīng)準(zhǔn)備好可以移植的darknet源碼版本,實(shí)際移植的步驟已經(jīng)確定,不需要探索。實(shí)驗(yàn)要求學(xué)生掌握軟件移植的基本原則和過程,了解基于深度學(xué)習(xí)的AI技術(shù)基本知識(shí),AI平臺(tái)運(yùn)行的基本知識(shí),了解在嵌入式平臺(tái)運(yùn)行AI應(yīng)用會(huì)遇到的問題和解決方法。

        4 結(jié)語

        基于模擬仿真平臺(tái)的實(shí)踐教學(xué)能很好地解決非面對面環(huán)境下的教學(xué)工作,而且在部署靈活性、可調(diào)試、展示能力上極大地超越實(shí)物環(huán)境。本文中提到的所有實(shí)驗(yàn)都在本科或研究生嵌入式系統(tǒng)課程的實(shí)踐環(huán)節(jié)得到了應(yīng)用,取得了較好的效果。雖然模擬仿真環(huán)境并不能模擬實(shí)物環(huán)境實(shí)驗(yàn)遇到的全部問題,在產(chǎn)業(yè)界仿真工作環(huán)節(jié)也不會(huì)完全代替實(shí)物調(diào)試環(huán)節(jié),但是模擬仿真步驟能取代很大部分實(shí)物調(diào)試工作,并極大地縮短實(shí)物調(diào)試的時(shí)間。因此,基于模擬仿真平臺(tái)的實(shí)踐教學(xué)方式是嵌入式系統(tǒng)課程和其他計(jì)算機(jī)類課程實(shí)踐環(huán)節(jié)的有益嘗試。今后在虛擬設(shè)備的研發(fā)上可以做進(jìn)一步工作,開發(fā)出不同類型的虛擬設(shè)備,可以支持更深入、更真實(shí)的嵌入式系統(tǒng)實(shí)踐訓(xùn)練。

        猜你喜歡
        嵌入式指令調(diào)試
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        基于航拍無人機(jī)的設(shè)計(jì)與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
        無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        調(diào)壓柜的調(diào)試與試運(yùn)行探討
        Altera加入嵌入式視覺聯(lián)盟
        亚洲aⅴ天堂av天堂无码麻豆| 国产色噜噜| 日韩成人精品日本亚洲| 翘臀诱惑中文字幕人妻| 亚洲av综合av国一区二区三区 | 综合无码综合网站| 精品无人区无码乱码大片国产| 蜜桃视频一区二区三区| 国产小视频在线看不卡| 玩弄人妻少妇精品视频| 日韩成人无码| 成人欧美在线视频| 手机在线观看亚洲av| 中文字幕日本av网站| 亚洲三区在线观看内射后入| 亚洲av无码一区二区三区四区| 国产成人免费高清激情明星 | 色www亚洲| 厕所极品偷拍一区二区三区视频| 91九色国产老熟女视频| 国产一级二级三级在线观看视频 | 亚洲日韩精品欧美一区二区| 精品人妻少妇一区二区不卡| 98在线视频噜噜噜国产| 无码熟妇人妻AV不卡| 免费一区二区三区av| 极品人妻少妇av免费久久| 乱码1乱码2美美哒| 国产免费av片在线观看| 在线人妻无码一区二区| 人妻少妇粉嫩av专区一| 亚洲综合网国产精品一区| 亚洲中文字幕无码一久久区| 麻豆成人在线视频| 日韩少妇无码一区二区免费视频 | 亚洲精品国精品久久99热| 97色伦综合在线欧美视频| 国产亚洲婷婷香蕉久久精品| 对白刺激的老熟女露脸| 免费人成黄页网站在线一区二区| 丰满人妻久久中文字幕|