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