龍林波 劉俊 李菁晶
【摘要】在萬物互聯時代,嵌入式系統得到廣泛應用,嵌入式系統課程在計算機專業逐步演變成核心重要課程。嵌入式系統課程是一門軟硬協同設計的課程,知識面較為廣闊,尤其是對計算機專業學生的硬件知識儲備提出了更高要求,以至于學生難易掌握嵌入式的重要知識。為此,本文梳理了嵌入式系統課程的重要知識,探索該課程教學內容的模塊化設計方法,能夠讓計算機專業學生全面、系統的掌握嵌入式系統的基本知識、技術原理和設計方法,具備嵌入式系統初步開發能力。
【關鍵詞】萬物互聯 計算機專業 嵌入式系統 教學內容
【中圖分類號】G420 【文獻標識碼】A 【文章編號】2095-3089(2019)03-0234-02
一、背景
隨著物聯網和行業數字化的快速發展,嵌入式設備突破網絡邊緣,廣泛應用于軍事、醫療、辦公、智能家居等領域,成為計算機的一個重要應用分支[1][2]。與此同時,嵌入式系統課程也從以往的選修課程,逐步發展成為計算機專業的核心課程或必修課程。然而,嵌入式系統課程是一門具有挑戰性的課程,對學生和老師均提出很大的難度。首先,嵌入式系統門檻高,是一門軟硬協同設計的課程,要求學生應具備硬件底層、系統層及軟件層等方面的知識儲備。雖然計算機專業學生軟件基礎較好,但硬件基礎不及自動化、測控和電子工程等專業的學生好。其次,嵌入式系統是先進的計算機技術與各個行業應用相結合的產物。因此,嵌入式系統授課內容必定緊跟新型技術的發展,具有多樣性和先進性,要求學生具備較強的學習能力。最后,嵌入式系統學習過程繁瑣,實驗平臺難以掌握,開發過程問題較多,均為教學過程提出了各種各樣的挑戰。針對計算機專業嵌入式課程存在的問題,本文將從授課內容方面討論如何優化該課程的教學質量。
二、模塊化的教學內容改革
結合計算機專業學生的實際情況,論文將從教學內容方面探討嵌入式系統課程的教學。因嵌入式系統課程早期開設與通信、自動化及電子工程等專業,教學內容過于偏重與硬件的講解,如處理器體系結構、處理器指令集、存儲芯片及接口設計等方面的介紹,難以為計算機專業學生所采用。然后,各個高校針對計算機專業對教學內容進行了進一步的優化,但集中于系統層面的介紹,例如匯編編程、嵌入式系統的實時調度和內存管理等方面。總之,早期教學內容過于偏硬件,或過于偏系統層面的講解,且教學內容過于離散化。為此,論文對嵌入式系統課程內容進行梳理,根據各個知識的特點,在保證教學內容連貫性的前提下,對現有教學內容進行模塊化設計。
(1)軟硬件協同設計的通識教育模塊
在這個模塊中,主要集中于嵌入式系統最基本的知識介紹。首先,讓學生熟悉嵌入式系統的今生前世、應用場景及發展歷程,能按自己的理解給出嵌入式系統的定義。然后,掌握嵌入式系統的硬件體系架構及處理器的基本常識,如微處理器、微控制器、DSP及SOC的基本原理及應用場景。其次,掌握嵌入式操作系統與桌面操作系統的主要區別,了解常見的ucLinux、RT-Linux、Android、IOS、Vxworks、Windows CE等嵌入式操作系統的發展歷程及優勢,能夠按應用需求及嵌入式硬件平臺的特點挑選合適的嵌入式操作系統。最后,按照常規的工程設計方法,并引入相關嵌入式產品開發例子為引導,深入了講解嵌入式軟硬件系統設計的思想及特點,讓學生能夠準確的理解嵌入式開發與傳統開發的區別。
(2)以ARM為例的嵌入式硬件教學模塊
結合計算機專業已有計算機組成原理的基本知識,根據市場主流的ARM處理為例,對嵌入式硬件涉及的重要知識進行介紹。主要分兩個方面:1)ARM的簡介和內部結構,讓學生掌握微處理器的一般特性和一般結構。首先,讓學生深入了解ARM的發展歷程、個體系結構版本的區別,以此為例讓學生掌握嵌入式處理器的流水線、哈弗結構、RISC等重要知識。然后,進一步介紹ARM處理器系列產品的發展及應用領域,如ARM7、ARM9、ARM10、ARM11等微處理器,以此為例讓學生學會如何根據各個處理器的優勢和特點,能夠為特定的應用場景挑選一款合適的處理器。最后,深入ARM的內部結構,介紹ARM處理器的七種工作模式及其各個種模式下各個寄存器的使用規則。2)ARM指令集,掌握基本指令的用法及簡單匯編編程。鑒于大部分計算機專業將匯編編程課程設計為選修課,學生完全沒有匯編編程基礎,拓展ARM的介紹,以ARM指令集為例讓學生理解程序和指令的運行機理,掌握基本匯編編程方法,促進學生能運用匯編改進嵌入式程序的性能,或能運用指令去開發驅動程序。
(3)以嵌入式Linux為例的嵌入式操作系統教學模塊
嵌入式操作系統種類超過200多種,各個系統都具有各式各樣的特點,以應用市場最大的嵌入式Linux為例,介紹嵌入式操作系統的特點與基本原理,讓學生具備剪切或修改操作系統的基本能力。首先,介紹Linux的發展歷程及特點、簡單命令、Shell編程、I\O編程等基本知識,讓學生具備使用Linux的基本能力。然后,根據ucLinux引入嵌入式Linux的內存管理介紹,介紹MMU在內存管理的重要性及原理;根據RT-Linux引入嵌入式Linux的進程調度介紹,介紹實時任務調度的一般方法和原理。其次,增加boot loader和文件系統的介紹,介紹嵌入式系統是如何通用boot loader運行起來,基于Flash的文件系統應具備的機制和原理,以此讓學生具備能夠根據具體市場應用,選擇合適的嵌入式操作系統,能夠完成嵌入式操作系統的修改與移植。
(4)以驅動程序開發為例的軟件教學模塊
嵌入式Linux系統一般包括了大部分主流外設的驅動程序,如鍵盤、鼠標、顯示器等。但嵌入式系統的自身特點決定了嵌入式設備必定搭載豐富的、未定義的外設。為此,驅動程序開發是嵌入式開發中最具代表性的軟件開發,且必須結合特定的硬件平臺進行開發。首先,介紹驅動程序的基本原理及特點,讓學生對驅動程序有基本的認知。然后,介紹驅動程序結構,了解驅動程序的基本構造及基本函數庫。其實,以字符驅動設計為例,介紹驅動開發的過程,讓學生能夠獨立完成簡單的嵌入式驅動開發,掌握一般軟件的設計方法,如可重入函數設計、C語言與匯編混合編程、軟硬件系統開發等基本方法。
(5)教學實驗模塊
結合教學內容,首先挑選基于ARM+Linux的實驗平臺。其次,為學生設計課內實驗內容,包括搭建嵌入式Linux主機開發環境及其調試環境、完成設定的Linux shell編程及I/O編程、完成嵌入式系統的移植、完成典型且較為簡單的驅動程序開發等內容。最后,設置開放性題目,讓學生基于已有嵌入式平臺完成具有一定功能的嵌入式產品,如小型路由器、TCP\IP的實現等。
三、結語
嵌入式課程是一門具有挑戰性的課程,知識涉及計算機專業的硬件、系統及軟件等方面的知識,對學生的學習門檻較高。針對計算機專業學生的學習情況,本文結合嵌入式系統的基本原理及嵌入式開發的基本要求,重新梳理了教學內容,對教學內容進行模塊化設計,以此讓學生能夠更為清晰的理解和掌握嵌入式系統課程的重要知識。
參考文獻:
[1]廖俊杰,周小平,李桂峰,等.職業核心能力嵌入式教學模式改革與實踐[J]. 中國職業技術教育,2016(8):54-57.
[2]鄢秋榮,王玉皞,王艷慶,等.面向軟硬件協同設計的嵌入式系統教學改革與實踐[J].實驗室研究與探索,2016(6):190-193.