【摘要】受到新冠疫情的影響,高校很多課程面臨線上教學,對于嵌入式課程,理論性和實踐相結合很緊密的課程,線上教學難度加大。如何在線上開展嵌入式課程實踐教學從而提高課程教學質量變得至關重要。本文通過線上教學環境下搭建嵌入式開發環境展開討論,給出嵌入式系統課程在有限條件下搭建實驗環境的方法和步驟,為在有限條件下開展嵌入式課程實驗教學給出了有效的建議。
【關鍵詞】嵌入式系統? 仿真? Linux操作系統
【基金項目】2020國家語委重點研發項目:基于網絡空間大數據的跨媒體多語種輿情信息處理(編號:ZDI35-96)。
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2021)39-0054-02
1.引言
嵌入式系統課程是一門具有較強綜合性的專業課程,需要C語言程序設計,單片機,微機原理,匯編語言等多門課程理論作為專業基礎知識,是計算機技術、通信技術、微電子技術等先進技術的綜合體。隨著智能化設備在人類生產和生活中發揮越來越重要的作用,嵌入式課程在信息類專業學生課程中重要性凸顯,教學比重加大。新疆大學信息科學與工程學院學生嵌入式課程的教學學時增長,實驗課的學時比重也不斷加大,課程學時由原先的2+1調整為2+2+1。在保證該課程教學的科學性和系統性的前提下,著重突出嵌入式系統理論和實踐相結合的密切性。通過課內實驗課的開展,培養學生熟練掌握開發工具,在開發嵌入式產品時能運用課程講授理論知識。
在開展線上教學時,針對嵌入式系統開發的特點,開展實驗課程。有效利用學生手中有限資源開展實驗課,將課程理論和實驗盡可能充分相結合,使得學生在線上學習時,仍然能夠具備一定的有嵌入式產品開發能力,在線上教學過程獲得課程扎實的理論基礎和較強的實踐能力。
2.嵌入式實驗課程線上開展存在的問題
嵌入式系統開發采用交叉開發,需要將處理器和操作系統及應用軟件相結合,開發出滿足特定需求的產品。開發環境的搭建對于嵌入式產品的開發有著重要的意義,隨著線上教學的進行,學生需要通過實驗課程加深對教材理論的理解。學生在家里線上上課時,不同省市地區的學生網絡環境差別較大,上網設備也有手機、PAD、臺式機、筆記本等。部分學生沒有電腦,網絡環境差,手機信號不穩定,時斷時續,在這種情況下,搭建高效的實驗環境受限,因此本文討論如何在有限環境下充分開展嵌入式實驗,使學生能夠掌握嵌入式開發的方法并用于解決實際問題。
3.線上開展嵌入式實驗課程設計
為了結合課程內容,參考北京航空航天出版社出版,馬春梅等人主編的教材《ARM&Linux 嵌入式系統教程》。教材在課程講授上主要分為三個部分:一部分是嵌入式軟件系統,包括嵌入式操作系統和嵌入式應用程序開發;第二部分是嵌入式硬件部分,主要針對ARM處理器的體系結構及常用的嵌入式產品開發需要用到的外圍設備;第三部分講授了基于Linux操作系統如何開發特定處理器上可以運行的應用程序。
在課程理論內容的基礎上,學生如果想將理論內容和實踐相結合,就需要搭建嵌入式系統開發環境。
基于上述教材理論和需要掌握的實踐內容,學生首先需要搭建基本Linux開發環境,根據開展線上教學的實際情況了解到學生手中可用的實驗設備分為以下兩種情況:
一種情況是學生有電腦。有電腦的學生安裝Linux環境可以采用以下兩個方案。
方案一是在Windows中安裝虛擬機,在虛擬機上裝Linux操作系統。可用選的虛擬機很多,常用的安裝方便的是Vmware;可選的Linux操作系統版本較多如Unbuntu,Centos,Deepin等等。通過互聯網下載虛擬機并安裝,之后下載操作系統鏡像文件,在安裝步驟提示下選擇下一步直至最后完成虛擬機上操作系統的運行。
方案二是在計算機中安裝雙系統。開機啟動選擇Linux或者Windows。安裝雙系統對系統硬盤存儲空間有一定要求,目前市面流行的計算機配置基本可以滿足要求。授課過程中,建議學生裝虛擬機,至于Linux操作系統的版本,同學們可以自行查閱Linux操作系統的各種不同版本的優缺點,自行選擇安裝。
另外一種情況是學生沒有電腦。沒有電腦可以使用的同學可以利用安卓手機安裝Termux,Termux是一個Android的高級終端模擬器, 安裝后可以在Android手機上搭建一個完整的Linux環境,Termux軟件不但在手機上啟動速度快,而且開源且支持apt管理軟件包,十分方便安裝Linux下各類軟件, 支持Python,PHP,Ruby,Go,Nodejs,MySQL等等,即便有電腦的同學,手機上也可以安裝Termux ,使用十分方便。
學生在計算機或者手機安裝好Linux操作系統后后可以進行Linux的相關實驗。這些實驗和Linux的基本使用相關,主要實驗內容包括但不局限于:Linux操作的相關命令,如ls,mkdir,chomod,ftp等等,這些命令的主要作用是通過使用這些命令使學生學會熟練使用Linux 操作系統,從而可以在命令行模式下使用各種開發工具。
在學會使用linux操作系統后,接下來要學習如何在linux中開發應用程序。
Linux的C編譯工具鏈如VI編輯器、GCC編譯器、GDB調試器、Make工具、Busybox工具等。通過這一系列工具的使用,學生能夠熟練使用Linux編寫應用程序,并進行調試。在交叉開發設備上利用Linux編寫應用程序步驟可以簡單描述為編寫—編譯—鏈接—調試,也就是說程序的編寫、編譯、鏈接,都是在通用PC上編寫,程序的執行是在目標系統中。線上教學環境下,學生能夠熟練使用Linux系統開發應用程序是很關鍵的一步。
在學會使用linux的基本工具之后,進一步在linux環境下編寫對Linux操作系統內核的操作,操作系統功能有CPU管理、存儲管理、文件管理、GUI等。通過實驗了解Linux內核功能,有助于學生定制操作系統功能。
內核裁剪時可以根據需要取消對多種CPU的支持,取消對虛擬內存的支持,取消不必要的調度算法,取消不必要的設備的支持,還有過多的文件系統,取消對多種網絡協議的支持等。通過這一系列操作系統內核實驗,學生可以充分掌握Linux內核裁剪的方法,能夠根據嵌入式設備對操作系統和應用軟件的需求對linux操作系統進行定制及做應用程序開發。
在對Linux有了上述操作的基礎上,學生可以利用電腦安裝keil工具,Keil可以實現針對多種不同類型處理器進行編程,并進行仿真。在教材講授了嵌入式硬件系統后,這一部分實驗內容可以讓學生有效理解ARM處理器體系結構并編寫代碼。
ADS/SDT這些工具同樣可以安裝在計算機上。學生通過這些工具,熟悉ARM匯編及C語言編程,這些工具也提供匯編和C的聯合編程,提高了學生的編程能力。接下來,學生可以利用Android Stdio開發Android程序,生成在手機上可以運行的APP,學會開發手機應用程序。
通過上述實驗內容,學生掌握的教材理論知識配套的部分實驗環節:軟件系統、硬件系統、交叉開發、配備一定的硬件后,學生可用自行搭建實驗環境,做嵌入式產品開發。
4.結束語
在線上有限的實驗條件下,堅持課本理論知識和實際開發相結合。嵌入式課程教學過程重在理論和實踐相結合,教材重要的理論知識和實驗課一致對應,如理論講嵌入式操作系統內核,則實驗課安排內核下載執行部分。理論課講到內核裁剪,則實驗對應操作系統功能裁剪及實時化改造等;理論課的進程間通信,通過實驗和理論相結合,將重要的理論知識在實驗中加深理解,有助于學生對教材知識點的理解,從而有效提升學生嵌入式產品開發能力。
參考文獻:
[1]馬忠梅.ARM & Linux嵌入式系統教程[M].北京航空航天大學出版社,2008.
[2]李善平.Linux與嵌入式系統[M].清華大學出版社,2002.
[3]周立功.ARM嵌入式系統基礎教程[M]. 北京航空航天大學出版社,2005.
[4]徐偉.嵌入式系統實驗教學探索[J].數字通信世界,2019(7):278-279.
[5]郎薇薇.嵌入式系統實驗教學設計[J].卷宗,2019,9(3):173.
[6]聞紹飛,佘黎煌,張石.嵌入式系統實驗教學的實踐與探索[J].實驗室科學,2019,22(2):124-125+128.
[7]黃曉玲,段鳳云,趙建科.嵌入式系統實驗教學體系的探索與實踐[J].實驗技術與管理,2006,23(4):85-87.
[8]趙明華,林先其.嵌入式系統專業實驗教學改革的探索與實踐[J].當代教育實踐與教學研究(電子刊),2017(9).
[9]金豪喆,秦怡,劉天宏,等. 嵌入式系統綜合實驗教學新模式的探索與實踐[C].2008年中國信息技術與應用學術論壇.
[10]黃杰,曾繁政,曾妍.《嵌入式系統》課程實驗教學改革及創新能力培養探索[J].電子世界,2017(7).
作者簡介:
李秀紅(1977年-),女,博士,副教授,研究方向為嵌入式系統,圖像處理等。