楊俊成
(河南工業(yè)職業(yè)技術(shù)學院計算機工程系,河南南陽 473009)
嵌入式技術(shù)對于現(xiàn)代工業(yè)起著倍增器的作用,各行各業(yè)都存在著嵌入式的應(yīng)用場景[1]?;诖?,國內(nèi)眾多高校、職業(yè)技術(shù)學院和培訓機構(gòu)均開展嵌入式系統(tǒng)的教學和培訓工作。對于嵌入式系統(tǒng)這一跨學科、軟硬件集成、與業(yè)界需求密切相關(guān)的綜合性系統(tǒng)來講,要在短期內(nèi)建立起一套完整、科學、系統(tǒng)的教學體系絕非易事。
嵌入式系統(tǒng)所包含的教學內(nèi)容主要有ARM體系結(jié)構(gòu)、匯編語言程序設(shè)計、中斷系統(tǒng)、異常處理、I/O設(shè)置、UART設(shè)置、時鐘、觸摸屏、I2C、I2S及ARM芯片接口的設(shè)置,該課程融合了多方面的軟硬件及綜合知識。
大部分的高等院校均是購買某一公司的開發(fā)板或者實驗箱,按照實驗指導(dǎo)書指導(dǎo)做實驗。該實驗對于學生的能力培養(yǎng)效果較差,對ARM體系中的流水線結(jié)構(gòu)、地址映射、異常等概念的理解也無法深入,較難綜合應(yīng)用驅(qū)動程序、中間接口層、操作系統(tǒng)等系統(tǒng)級軟件,這樣便導(dǎo)致軟件和硬件脫節(jié)。對設(shè)計出復(fù)雜的綜合性實驗造成困難。實驗過程中缺少考慮培養(yǎng)學生的創(chuàng)新能力、新技術(shù)的實踐能力、團隊協(xié)作能力和語言表達能力等,因而不符合當今對嵌入式人才的要求。
為使學生更好的掌握基于ARM的嵌入式系統(tǒng),充分調(diào)動學生學習積極性,即采用倒推法授課[2],第一次上課就讓學生了解一個實際的嵌入式產(chǎn)品。以2010年全國職業(yè)院校技能大賽中的自主探月車為實例,將產(chǎn)品分解,倒推出這一產(chǎn)品的開發(fā)過程。從產(chǎn)品到部件的倒推歸屬到課程不同章節(jié)的內(nèi)容中,放到相關(guān)的教學單元進行講解[3]。在每一教學單元中,以產(chǎn)品的部件為核心,設(shè)計出實際開發(fā)中需解決的問題。每一章節(jié)完成一個任務(wù),這一任務(wù)也是其嵌入式產(chǎn)品的一部分,課程學習結(jié)束時所有的任務(wù)疊加后,就是一個實際的嵌入式產(chǎn)品。
正確處理現(xiàn)有的教學資源,在了解現(xiàn)有教材的同時要不斷融入更符合教學規(guī)律的教學內(nèi)容[4]。教學內(nèi)容力爭接近工程實踐,又帶有一定的趣味性和啟發(fā)性,讓學生知道如何將學到的知識點應(yīng)用于工程實踐中。因此要對教材內(nèi)容作適當編排和修正,使教學計劃更符合學生的學習規(guī)律。
調(diào)整之前從第一到第八章的內(nèi)容都是理論部分,主要講述ARM的體系結(jié)構(gòu)、ARM的異常模式、ARM存儲器映射、ARM中斷模式及中斷系統(tǒng)[2],這部分內(nèi)容理論性較強、且比較抽象和枯燥,學生學完后無法真正了解ARM,無法用匯編語言實現(xiàn)相關(guān)功能,極大地影響了學生的自信心。
在修正后的內(nèi)容安排中,教師將一些容易掌握并能夠吸引學生注意力、容易看到實驗現(xiàn)象的章節(jié)安排在前面,以激起學生的學習積極性。
(1)把S3C2440的I/O操作安排在前面,先用一個流水燈實驗告訴學生,ARM雖然結(jié)構(gòu)較為復(fù)雜,但也可像單片機那樣,通過簡單的設(shè)置,實現(xiàn)流水燈實驗,以提高學生的學習興趣。
(2)根據(jù)學生C語言的基礎(chǔ),講解基于ARM的C程序設(shè)計,并實現(xiàn)一個串口驅(qū)動程序,加強學生對ARM體系的理解和C語言的編程能力。
(3)介紹ARM指令系統(tǒng)[3],并根據(jù)指令介紹ARM的體系結(jié)構(gòu),講解ARM中斷和異常的處理過程,并用匯編程序模擬相應(yīng)的處理過程,且在內(nèi)容的講解上要與月球車的啟動代碼結(jié)合,強化學生對概念的理解。
(4)將ARM的LCD顯示功能和觸摸屏的A/D轉(zhuǎn)換放在一起講解,定時器和計數(shù)器在實時時鐘、看門狗系統(tǒng)中都會用到,所以這兩章要統(tǒng)一講較為合適。
(5)講解兩種常見的總線,I2C總線和I2S總線,并結(jié)合實驗讓學生掌握兩種總線的工作原理。
(6)最后講解在ARM體系結(jié)構(gòu)中,ARM處理器與存儲器之間的內(nèi)存映射,這是課程的一個難點,并需要前面的一些基礎(chǔ),因此放到課程的后面學習比較合適。
(7)理論課程學習結(jié)束后,設(shè)計一個一周時間的綜合實訓,將理論課和實驗課上的知識點鏈接起來,形成一個知識體系,用真實的案例提高學生分析問題和解決問題的能力。
該章節(jié)的調(diào)整以一種先易后難的方式編排教學內(nèi)容,取得了較好的教學效果,但并不影響教學大綱所規(guī)定的學習內(nèi)容。
在實踐教學中,教師并不是將實驗代碼事先寫好,然后給學生分析代碼,而是提出問題,比如如何在月球探測車上顯示圖片,還可將其改為更有趣的例子,比如如何把本人的照片顯示在屏幕中,以提高學生的興趣。之后引導(dǎo)學生分析問題,制定設(shè)計方案,帶領(lǐng)學生從第一行代碼開始編寫,逐步實現(xiàn)相對應(yīng)的功能。當然在實現(xiàn)的過程中,會出現(xiàn)大量的問題,比如寄存器設(shè)置錯誤、指針讀取數(shù)據(jù)錯誤、內(nèi)存溢出等。這就需要教師對整個項目十分清晰,能在短時間內(nèi)解決學生所提出的問題并能處理一些突發(fā)性錯誤,隨后帶著學生去分析引起這些問題的原因,告誡學生如何避免這些問題,并解決問題,大大提高了學生的動手能力。
為培養(yǎng)學生對嵌入式開發(fā)的興趣,在課程學習后期,將學生分成5人小組,以前一年的嵌入式大賽題目為實戰(zhàn)項目,讓學生用一周時間去實現(xiàn)一個嵌入式產(chǎn)品,完成一個正推過程,從一個產(chǎn)品的設(shè)計思想到各個部件的實現(xiàn),最終完成這個產(chǎn)品,之后編寫論文并參與答辯。待國家嵌入式競賽題目公布之后,從中選擇幾名表現(xiàn)優(yōu)秀的學生,提供實驗場所和實驗器材,由專門教師指導(dǎo)參加全國嵌入式大賽[5]。
文中改革措施已在教學實踐中發(fā)揮了積極作用,在日后的教學中,將根據(jù)實際情況及時對該課程體系和培養(yǎng)模式進行調(diào)整,努力構(gòu)建一個科學規(guī)范的人才培養(yǎng)方案,為企業(yè)培養(yǎng)出具有動手能力及創(chuàng)新能力的研發(fā)人才。
[1] 田澤.ARM9嵌入式開發(fā)實驗與實踐[M].北京:北京航空航天大學出版社,2006.
[2] 周立功.ARM微控制器基礎(chǔ)與實戰(zhàn)[M].北京:北京航空航天大學出版社,2003.
[3] 胥靜.嵌入式系統(tǒng)設(shè)計與開發(fā)實例詳解—基于ARM的應(yīng)用[M].北京:北京航空航天大學出版社,2005.
[4] 鄧春健,李文生.“ARM嵌入式系統(tǒng)”課程教學方法研究[J].計算機教育,2010(3):94 -96.
[5] 章民融,徐亞峰.嵌入式教學關(guān)鍵點的研究和嵌入式實驗教學平臺的設(shè)計[J].計算機應(yīng)用與軟件:2009(3):160-162.