[摘 要] 嵌入式系統(tǒng)課堂教學(xué)的難點(diǎn)在于如何既講解理論知識(shí)又不與實(shí)踐脫節(jié),并且能夠符合學(xué)生的理論知識(shí)儲(chǔ)備和就業(yè)需求。討論在嵌入式系統(tǒng)課程教學(xué)中如何調(diào)整課堂教學(xué)內(nèi)容,并與教學(xué)實(shí)驗(yàn)遙相呼應(yīng),達(dá)到相互補(bǔ)充的目的,對(duì)同質(zhì)課程教學(xué)活動(dòng)的開(kāi)展和內(nèi)容的調(diào)整有一定的參考價(jià)值。
[關(guān) 鍵 詞] 嵌入式系統(tǒng);課堂教學(xué);教學(xué)改革;教學(xué)實(shí)踐
[中圖分類(lèi)號(hào)] G642 [文獻(xiàn)標(biāo)志碼] A [文章編號(hào)] 2096-0603(2019)01-0206-03
一、引言
嵌入式系統(tǒng)是在數(shù)字化智能電子產(chǎn)品集成的基礎(chǔ)上發(fā)展起來(lái)的,從20世紀(jì)70年代的單片機(jī)到MCU,再到如今高度集成的各種IP核微處理器,嵌入式系統(tǒng)經(jīng)歷了幾個(gè)階段的技術(shù)飛躍,成為計(jì)算機(jī)科學(xué)領(lǐng)域不可缺少的一個(gè)發(fā)展方向。
我校的嵌入式系統(tǒng)課程開(kāi)設(shè)已經(jīng)有10年,課程從研究生覆蓋到本科生,本科層次主要針對(duì)計(jì)算機(jī)和自動(dòng)化專(zhuān)業(yè)的本科生開(kāi)設(shè),課程內(nèi)容也根據(jù)學(xué)生基礎(chǔ)知識(shí)的不同不斷修改變化。近幾年,國(guó)家對(duì)嵌入式系統(tǒng)和物聯(lián)網(wǎng)行業(yè)的重視和投入不斷加大,反向促進(jìn)了高校中的相關(guān)課程教學(xué)目標(biāo)的不斷提升和完善,嵌入式系統(tǒng)涵蓋的內(nèi)容越來(lái)越多,綜合集成度增高[1,2],學(xué)習(xí)嵌入式系統(tǒng)方向的高校學(xué)生就業(yè)需求缺口很大,公司的要求學(xué)生一直難以達(dá)到,這也表明我們的培養(yǎng)方式、手段和內(nèi)容還是有問(wèn)題的,需要不斷改進(jìn)[3,4]。因此,我們對(duì)嵌入式系統(tǒng)課程教學(xué)的內(nèi)容進(jìn)行了持續(xù)改革和完善,這樣培養(yǎng)的學(xué)生才能真正滿(mǎn)足社會(huì)需要。
二、嵌入式系統(tǒng)教學(xué)方案設(shè)計(jì)
(一)教學(xué)目標(biāo)的確立
中國(guó)石油大學(xué)的嵌入式系統(tǒng)教學(xué)工作,主要著眼于學(xué)生的系統(tǒng)綜合能力和創(chuàng)新設(shè)計(jì),自我學(xué)習(xí)與提高的能力,為學(xué)生今后工作中的研發(fā)技能和自我完善能力打好基礎(chǔ)。因此,教師要密切跟蹤嵌入式系統(tǒng)、電子技術(shù)、計(jì)算機(jī)科學(xué)技術(shù)、信息學(xué)等領(lǐng)域的最新研究成果,積極參與相關(guān)學(xué)術(shù)會(huì)議和教學(xué)研討,在教學(xué)方式實(shí)施過(guò)程中加大啟發(fā)和引導(dǎo)部分,適當(dāng)減弱指導(dǎo)部分,有針對(duì)性地增加案例,如GPS導(dǎo)航設(shè)計(jì),分別從硬件和軟件兩個(gè)部分引導(dǎo)學(xué)生思考需要哪些器件,如何驅(qū)動(dòng)、管理、存取數(shù)據(jù),如何圖形化顯示數(shù)據(jù),并進(jìn)行研討和實(shí)驗(yàn)。讓學(xué)生充分討論后,對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行具體項(xiàng)目化實(shí)施,驗(yàn)證自己的設(shè)計(jì)是否能夠?qū)崿F(xiàn)。
(二)教學(xué)內(nèi)容的設(shè)定
嵌入式系統(tǒng)課程內(nèi)容的設(shè)計(jì)要根據(jù)學(xué)生和教學(xué)實(shí)驗(yàn)室的實(shí)際情況進(jìn)行安排和調(diào)整,在中國(guó)石油大學(xué),嵌入式系統(tǒng)課程的性質(zhì)是專(zhuān)業(yè)選修課,選修的學(xué)生基本都是計(jì)算機(jī)系大三的學(xué)生,這部分學(xué)生都選修過(guò)電路設(shè)計(jì)、C語(yǔ)言或JAVA語(yǔ)言程序設(shè)計(jì)、計(jì)算機(jī)組成原理和操作系統(tǒng),并參與了相關(guān)課程的課程設(shè)計(jì),對(duì)計(jì)算機(jī)底層的構(gòu)成和編程機(jī)制以及操作系統(tǒng)的基本概念和原理都有較好的了解和認(rèn)識(shí),因此,我們?cè)诎才徘度胧讲僮飨到y(tǒng)相關(guān)內(nèi)容時(shí)重點(diǎn)關(guān)注嵌入式操作系統(tǒng)自身的特點(diǎn)和內(nèi)核構(gòu)成及剪裁方法,弱化操作系統(tǒng)的相關(guān)概念和基本原理介紹,如進(jìn)程管理和通信、進(jìn)程互鎖等。對(duì)嵌入式系統(tǒng)硬件部分的基本介紹重點(diǎn)強(qiáng)調(diào)便攜式嵌入式設(shè)備的基本構(gòu)成,相關(guān)部件的選擇和連接,外部接口的選擇等部分,介紹嵌入式處理器的體系結(jié)構(gòu)和對(duì)應(yīng)的匯編語(yǔ)言的基本模式,異常和復(fù)位處理等部分,省略更底層的微指令設(shè)計(jì)部分。由于計(jì)算機(jī)系學(xué)生對(duì)電路原理了解不夠,因此增加電路圖連接方法和基本的PCB解讀,保證學(xué)生面對(duì)大規(guī)模集成電路,可以快速地進(jìn)行集成化的嵌入式系統(tǒng)軟硬件設(shè)計(jì)。
另外,由于本課程作為選修課程只有32學(xué)時(shí),其中只有16課時(shí)是授課課時(shí),因此,我們?cè)谡n堂上主要抓住重點(diǎn)部分給學(xué)生進(jìn)行介紹和講解,傳授學(xué)生設(shè)計(jì)中的實(shí)踐經(jīng)驗(yàn),而不是照本宣科地介紹嵌入式系統(tǒng)的一些概念和故事。具體的嵌入式系統(tǒng)課堂教學(xué)方案設(shè)計(jì)如表1所示。
嵌入式系統(tǒng)課程的實(shí)驗(yàn)教學(xué)安排了16個(gè)課時(shí),實(shí)驗(yàn)的主要目的是使學(xué)生能夠掌握基本的嵌入式開(kāi)發(fā)板的結(jié)構(gòu)、組成、底層編程和嵌入式LINUX操作系統(tǒng)的編譯移植過(guò)程,在嵌入式操作系統(tǒng)搭建好之后,驅(qū)動(dòng)程序的編寫(xiě)、編譯和加載過(guò)程。在嵌入式系統(tǒng)實(shí)驗(yàn)設(shè)計(jì)中,重點(diǎn)在于嵌入式操作系統(tǒng)的搭建,因此安排了12個(gè)課時(shí)的實(shí)驗(yàn)完成相關(guān)內(nèi)容,對(duì)ADS基本程序的讀寫(xiě),重點(diǎn)在于了解無(wú)操作系統(tǒng)條件下軟件的運(yùn)行方式,因此僅安排4個(gè)課時(shí)。具體嵌入式系統(tǒng)實(shí)驗(yàn)相關(guān)安排如表2所示。
三、嵌入式系統(tǒng)課程內(nèi)容改革
(一)增加部分硬件電路的分析
目前大部分計(jì)算機(jī)系對(duì)學(xué)生的培養(yǎng)都傾向于軟件體系遠(yuǎn)強(qiáng)于硬件體系,大部分的課程都傾向于各種計(jì)算機(jī)計(jì)算理論和各種編程語(yǔ)言,C語(yǔ)言、python、JAVA、C#等語(yǔ)言教學(xué)成為主體內(nèi)容,匯編語(yǔ)言、數(shù)字電子技術(shù)、編譯原理課程一般作為選修課程輔助學(xué)習(xí),而相關(guān)的硬件課程如模擬電子、電路、Verilog等內(nèi)容則基本被省略掉了,除非學(xué)生自行選修電子或自動(dòng)化專(zhuān)業(yè)的相關(guān)課程。而嵌入式系統(tǒng)這門(mén)課程需要基礎(chǔ)硬件知識(shí)的輔助,學(xué)生在學(xué)習(xí)這門(mén)課程之前需要了解二極管、三極管的原理和結(jié)構(gòu),認(rèn)識(shí)電路的各種器件及其連接和組合方式,能夠識(shí)別各種外圍電路的連接方法,否則嵌入式系統(tǒng)課程的學(xué)習(xí)也只能是空中樓閣,學(xué)生只能學(xué)習(xí)一些簡(jiǎn)單的頂層應(yīng)用程序的編寫(xiě)和一些實(shí)驗(yàn)操作,對(duì)將來(lái)的就業(yè)和實(shí)踐沒(méi)有實(shí)質(zhì)性幫助。
由于大部分學(xué)生并沒(méi)有經(jīng)過(guò)這方面的專(zhuān)業(yè)訓(xùn)練,因此,我們?cè)谡n程中增加了芯片電路圖的分析和解讀,引導(dǎo)學(xué)生學(xué)習(xí)查看芯片手冊(cè),通過(guò)這個(gè)部分的學(xué)習(xí),使學(xué)生能夠了解主芯片與外圍芯片的連接方式對(duì)編程和底層驅(qū)動(dòng)編寫(xiě)的影響,從而更好地促進(jìn)學(xué)生對(duì)芯片的驅(qū)動(dòng)程序和嵌入式操作系統(tǒng)內(nèi)核運(yùn)行方式的認(rèn)識(shí),進(jìn)一步站在整個(gè)系統(tǒng)的高度上研究嵌入式系統(tǒng)核心硬件和軟件的實(shí)質(zhì)。例如,三星公司的ARM2410核心板上NOR FLASH芯片(圖1)是從LADDR1地址線(xiàn)開(kāi)始連接的,而正常情況下應(yīng)從LADDR0開(kāi)始連接,從這里就可以引申出CPU字長(zhǎng)32位并不意味著有32位地址線(xiàn),對(duì)應(yīng)的FLASH芯片的位寬不同,連接方式就不同,讀取數(shù)據(jù)的方式就不同,從而驅(qū)動(dòng)程序的編寫(xiě)方式就不同。這里就可以對(duì)照著2410芯片的時(shí)序和芯片手冊(cè)中的Memory Controller對(duì)應(yīng)章節(jié)的芯片內(nèi)內(nèi)存映射圖進(jìn)行講解,說(shuō)明外接芯片的連接方式與對(duì)應(yīng)地址的關(guān)系,地址線(xiàn)對(duì)應(yīng)的bank如何與外設(shè)相連接,進(jìn)行要求地址的數(shù)據(jù)交互和命令控制。
通過(guò)加入這樣的內(nèi)容,我們可以使學(xué)生掌握獨(dú)立閱讀芯片手冊(cè)的技能和基本讀懂開(kāi)發(fā)板電路圖的能力,在以后的工作中,不論使用哪種芯片都可以得心應(yīng)手地進(jìn)行外圍開(kāi)發(fā)和程序編寫(xiě)。
(二)增加嵌入式系統(tǒng)中不同類(lèi)型接口電路
嵌入式系統(tǒng)中的不同核心芯片都提供了很多接口,從教學(xué)中我們發(fā)現(xiàn),很多接口的名字計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生尚不能說(shuō)出對(duì)應(yīng)的含義,甚至部分學(xué)生根本就沒(méi)有聽(tīng)說(shuō)過(guò),例如,GPIO、UART、SPI、I2C等。針對(duì)這個(gè)部分,我們通過(guò)對(duì)相應(yīng)電路的連接方式,對(duì)應(yīng)的外圍電路來(lái)給學(xué)生解讀對(duì)應(yīng)接口的運(yùn)行方式、接線(xiàn)方法、時(shí)序信號(hào)、模式設(shè)置等,有了這些基礎(chǔ),學(xué)生就可以很清晰地了解對(duì)應(yīng)驅(qū)動(dòng)程序的編寫(xiě)方式,雖然很多器件廠(chǎng)家提供了對(duì)應(yīng)的原廠(chǎng)驅(qū)動(dòng),但是在實(shí)際工作中很多都需要進(jìn)行改進(jìn)或優(yōu)化,以適應(yīng)不同的場(chǎng)合和供電模式以及開(kāi)發(fā)板不同的外圍電路。因此,這部分練習(xí)能夠真正提高學(xué)生的分析和應(yīng)變能力,根據(jù)實(shí)際情況優(yōu)化對(duì)應(yīng)的程序。
(三)從最簡(jiǎn)單的裸板分析開(kāi)始切入
從簡(jiǎn)單裸板程序設(shè)計(jì)開(kāi)始介入,讓學(xué)生從最基本的程序在開(kāi)發(fā)板上的實(shí)現(xiàn)開(kāi)始學(xué)習(xí),從純匯編語(yǔ)言設(shè)計(jì)過(guò)渡到匯編語(yǔ)言與C語(yǔ)言混合編程,讓學(xué)生理解語(yǔ)言的不同,并將應(yīng)用程序的反匯編代碼與源代碼一一對(duì)照,讓學(xué)生進(jìn)行比較和分析,從而理解基本BOOTLOADER編程設(shè)計(jì)過(guò)程。我們以點(diǎn)亮開(kāi)發(fā)板上的一個(gè)LED燈為例,程序如圖2所示,對(duì)應(yīng)的反匯編程序如圖3所示,通過(guò)對(duì)比講解,學(xué)生就能領(lǐng)悟到一段匯編代碼是如何編譯成一段可執(zhí)行的二進(jìn)制文件,這段二進(jìn)制文件在執(zhí)行時(shí)對(duì)應(yīng)的變量、常量是如何根據(jù)芯片位數(shù)存儲(chǔ)在內(nèi)存不同位置的,對(duì)應(yīng)的十六進(jìn)制機(jī)器碼是如何得來(lái)的,這樣對(duì)學(xué)生理解更上層的操作系統(tǒng)是如何運(yùn)行的有非常好的作用。
我們還可根據(jù)學(xué)生情況,對(duì)同一段程序引入C語(yǔ)言和匯編語(yǔ)言混合版,讓學(xué)生根據(jù)常見(jiàn)的BOOTLOADER基本形式進(jìn)行分析比對(duì),理解開(kāi)發(fā)板的第一段程序不能用純C的原因,并且掌握初始的匯編語(yǔ)言的作用,堆棧段的大小設(shè)置規(guī)律,并通過(guò)實(shí)驗(yàn)進(jìn)行開(kāi)發(fā)板運(yùn)行驗(yàn)證,與BOOTLOADER源代碼的設(shè)計(jì)模式進(jìn)行對(duì)比分析,閱讀BOOTLOADER編譯對(duì)應(yīng)的Makefile,學(xué)生才能更加清楚地理解底層代碼的運(yùn)作模式和編程思路,從而融會(huì)貫通,逐層理解上層操作系統(tǒng)的工作方式,進(jìn)一步成為優(yōu)秀的系統(tǒng)分析設(shè)計(jì)人員。
四、嵌入式系統(tǒng)教學(xué)內(nèi)容改革效果
嵌入式系統(tǒng)教學(xué)內(nèi)容改革經(jīng)過(guò)一年的試運(yùn)行,效果非常好,學(xué)生對(duì)課程內(nèi)容和實(shí)驗(yàn)內(nèi)容改革的效果都非常認(rèn)可。學(xué)生的反饋意見(jiàn)表明(表3),新調(diào)整的嵌入式系統(tǒng)課程教學(xué)內(nèi)容的改革使學(xué)生不但能學(xué)習(xí)和實(shí)踐很多綜合性硬件知識(shí),而且對(duì)直接底層軟件的工作方式和編程方案都有了更深入的認(rèn)識(shí)。通過(guò)進(jìn)一步動(dòng)手實(shí)驗(yàn),自行驅(qū)動(dòng)開(kāi)發(fā)板上硬件構(gòu)建的運(yùn)行,對(duì)軟硬件協(xié)調(diào)有了實(shí)質(zhì)性感受,從而帶動(dòng)學(xué)生反思操作系統(tǒng)和計(jì)算機(jī)組成原理等相關(guān)理論課程內(nèi)容在應(yīng)用階段的具體實(shí)踐。
五、結(jié)語(yǔ)
嵌入式系統(tǒng)課程內(nèi)容的改革與調(diào)整主要針對(duì)學(xué)生的實(shí)際知識(shí)儲(chǔ)備情況和操作技能需求,并考慮學(xué)生的就業(yè)需求,增加了對(duì)電路和芯片手冊(cè)的分析和解讀,從電路分析入手,涵蓋了學(xué)生對(duì)具體芯片連接方法和驅(qū)動(dòng)程序中對(duì)應(yīng)匯編語(yǔ)言的編寫(xiě)方式,讓學(xué)生能夠真正理解底層硬件的連接和驅(qū)動(dòng),從而能夠更好地閱讀和編輯上層的嵌入式操作系統(tǒng)的構(gòu)件。嵌入式系統(tǒng)課程內(nèi)容的調(diào)整有兩年,從學(xué)生的課程效果反饋評(píng)價(jià)來(lái)看,基本能夠達(dá)到預(yù)期效果。在今后的嵌入式系統(tǒng)課堂教學(xué)中,我們要進(jìn)一步優(yōu)化改進(jìn)教學(xué)內(nèi)容和教學(xué)手段,使學(xué)生有更好的學(xué)習(xí)體驗(yàn)。
參考文獻(xiàn):
[1]董華松,王新.TBL在嵌入式系統(tǒng)課程實(shí)驗(yàn)教學(xué)中的優(yōu)化與應(yīng)用[J].價(jià)值工程育,2015(29):179-180.
[2]徐平,薛凌云,尚平.《嵌入式系統(tǒng)》課程實(shí)踐教學(xué)模式的探索與研究[J].教育教學(xué)論壇,2017(25).
[3]陳衛(wèi)麗,黃金雪.面向社會(huì)需求的嵌入式教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)時(shí)代,2017(6).
[4]張曉東,孫麗君,魯可.高校嵌入式系統(tǒng)課程教學(xué)改革探索[J].中國(guó)電力教育,2013(8).
編輯 馮永霞
現(xiàn)代職業(yè)教育·高職高專(zhuān)2019年1期