999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

滿 毅,徐國鑫

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

0 引言

嵌入式系統(tǒng)設(shè)計課程對嵌入式系統(tǒng)的概念、軟硬件組成、設(shè)計開發(fā)方法、嵌入式操作系統(tǒng)、嵌入式軟件(包括應(yīng)用程序和設(shè)備驅(qū)動程序)的設(shè)計開發(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è)計方法,提高學(xué)生的嵌入式系統(tǒng)的開發(fā)能力。

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

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

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

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

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

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

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

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

2 基于指令模擬器的實例

2.1 按鈕控制LED閃燈

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

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

2.2 鍵盤控制貪吃蛇顯示

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

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

3 基于仿真平臺的嵌入式實驗

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

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

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

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

為了講授Linux內(nèi)核基本結(jié)構(gòu)和功能設(shè)計了本實驗。實驗要求學(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)核啟動的gdb調(diào)試運行;在Vscode中安裝C/C++插件,進(jìn)行調(diào)試運行配置文件配置,通過Vscode進(jìn)行QEMU內(nèi)核啟動的調(diào)試運行。

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

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

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

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

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

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

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

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

4 結(jié)語

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

猜你喜歡
嵌入式指令調(diào)試
聽我指令:大催眠術(shù)
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于航拍無人機的設(shè)計與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
搭建基于Qt的嵌入式開發(fā)平臺
FOCAS功能在機床調(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)試與試運行探討
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 91蝌蚪视频在线观看| 成人中文在线| 欧亚日韩Av| 免费看美女自慰的网站| 国产香蕉在线视频| 国产日本欧美亚洲精品视| 久久99国产视频| 亚洲欧美日本国产综合在线 | 幺女国产一级毛片| 成人免费网站久久久| 毛片手机在线看| 欧美色伊人| 污污网站在线观看| 亚洲色欲色欲www在线观看| 欧美v在线| 国产欧美在线视频免费| 欧美午夜视频| 国产青榴视频| 成人精品视频一区二区在线| 99人体免费视频| 免费 国产 无码久久久| 亚洲精品日产AⅤ| 91青青视频| 思思热在线视频精品| 黄色网在线| 亚洲狼网站狼狼鲁亚洲下载| 国产三级视频网站| 亚洲精品天堂自在久久77| 午夜福利网址| 国产成人精品男人的天堂下载 | 91小视频版在线观看www| 人妻免费无码不卡视频| 东京热高清无码精品| 欧美日韩另类在线| 国产不卡在线看| 国产手机在线ΑⅤ片无码观看| 国产免费羞羞视频| 亚洲第一成年免费网站| 亚洲综合精品香蕉久久网| 一边摸一边做爽的视频17国产 | av一区二区三区在线观看 | 久久a级片| 性欧美久久| 亚洲欧洲自拍拍偷午夜色无码| 最新无码专区超级碰碰碰| 她的性爱视频| 九九香蕉视频| 欧美日韩午夜| 久久熟女AV| a网站在线观看| 亚洲欧洲日产无码AV| 福利在线不卡| 日本不卡在线| 成人字幕网视频在线观看| a级毛片网| 夜夜拍夜夜爽| 制服丝袜国产精品| 亚洲欧美日韩久久精品| 国内精品九九久久久精品| 99久久亚洲精品影院| 亚洲国产精品一区二区第一页免 | 国产一级毛片网站| 国产中文在线亚洲精品官网| 国产精品嫩草影院av| 欧美日韩中文字幕二区三区| 久久先锋资源| 亚洲成A人V欧美综合| 美女啪啪无遮挡| 免费高清毛片| 91破解版在线亚洲| 午夜一区二区三区| 国产精品13页| 日韩欧美中文在线| 亚洲婷婷丁香| 国产丝袜无码一区二区视频| 欧美一级黄色影院| 中文字幕在线不卡视频| 国产男人的天堂| 无码一区中文字幕| 蝌蚪国产精品视频第一页| 久久亚洲天堂| 综合亚洲网|