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