李月潔
摘要:“嵌入式操作系統(tǒng)”這門課是高等院校電子與自動化專業(yè)重要的專業(yè)課,如何提高該課程的教學(xué)質(zhì)量與教學(xué)效果是一件值得深入探討的問題。該文從實(shí)際出發(fā),根據(jù)課程特點(diǎn),從培養(yǎng)與激發(fā)學(xué)生的學(xué)習(xí)興趣出發(fā),模塊化講授,善于運(yùn)用教學(xué)方法:多媒體動畫,比較等方法進(jìn)行知識點(diǎn)的連接、歸納總結(jié),合理配置課程實(shí)驗(yàn)與課程設(shè)計(jì)等角度,對該課的教學(xué)進(jìn)行了探討與總結(jié)。
關(guān)鍵詞:嵌入式操作系統(tǒng);uC/OS-II;模塊化教學(xué);課程實(shí)驗(yàn);多媒體動畫
中圖分類號:G64 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)16-0154-02
Abstract: Embeded operate system is a very important course for the colleage students whos major is automation or electronic engineering. How to enhance the teaching effect is an important issue to explore and research. The thesis aimed to explore such objects from the actual. How to inspire colleage studentss interesting in this course. The teaching methods mainly inculde modular teaching, teaching of multimedia animation.Multi-methods also include comparation, connectionn, course design and experiments etc. All the teaching methods mentioned is the main content of the paper.
Key words: Embeded Operate System; uC/OS-II; modular teaching; experiments; multime- dia animation
隨著軟件與硬件技術(shù)的快速發(fā)展以及電子和自動化設(shè)備的日益復(fù)雜化,帶操作系統(tǒng)的電子、自動化設(shè)備已經(jīng)成為一種趨勢。全國各大高等院校在電子信息類專業(yè)也逐步開設(shè)了《嵌入式操作系統(tǒng)》這門課,這門課的開設(shè)對于學(xué)生今后走入工作崗位,從事電子產(chǎn)品的開發(fā)工作非常有益處。目前嵌入式操作系統(tǒng)種類繁多,例如ucLinux、Linux、Vevorks、Wince等.其中比較適用于本科生教學(xué)的嵌入式實(shí)時(shí)操作系統(tǒng)是uC/OS-II?!肚度胧讲僮飨到y(tǒng)》該門課程,我院采用北航出版社,任哲老師編寫的教材《嵌入式實(shí)時(shí)操作系統(tǒng)-uC/OS-II》。本人在內(nèi)蒙古大學(xué)鄂爾多斯學(xué)院從事多年該門課的教學(xué)工作,以此為基礎(chǔ),對該門課的教學(xué)提出了以下的思考與探討。
1 培養(yǎng)與激發(fā)學(xué)生的學(xué)習(xí)興趣
我院《嵌入式操作系統(tǒng)》這門課在大三的下學(xué)期開設(shè),針對的授課群體是電子信息專業(yè)以及自動化專業(yè)的學(xué)生。作為一門課業(yè)選修必選課開設(shè),理論與實(shí)驗(yàn)兩部分開進(jìn)行,課時(shí)間總共一學(xué)期,該課程突出的問題就是時(shí)間短,任務(wù)多。如何高效率利用一學(xué)期的時(shí)間,把這門有一定難度的課講明白講通透,著實(shí)需要在授課方法上多花心思。
本課程前期先導(dǎo)課是,微機(jī)原理、單片機(jī)、數(shù)據(jù)結(jié)構(gòu)、C語言等。學(xué)生雖然有一些編程基礎(chǔ),但學(xué)生的編程經(jīng)驗(yàn)相對比較少,學(xué)習(xí)起來相對還是有一定的困難。
針對此情況,開課初期,我會與學(xué)生分享一些我在公司做技術(shù)開發(fā)時(shí)的一些開發(fā)經(jīng)驗(yàn)。讓學(xué)生初步了解嵌入式操作系統(tǒng)在各類電子產(chǎn)品的開發(fā)中的用途,以及公司中與嵌入式操作系統(tǒng)相關(guān)的技術(shù)開發(fā)職位。讓學(xué)生明白這門課的重要性以及實(shí)際的用途,從學(xué)了有用的角度讓學(xué)生對學(xué)習(xí)該課程產(chǎn)生濃厚的興趣。
2 模塊化講授
在課程講授時(shí),我采用自上而下的方法,從總體知識結(jié)構(gòu)進(jìn)行剖析,讓學(xué)生從框架上了解這門課的重點(diǎn)難點(diǎn),明確學(xué)習(xí)目的,了解該門課的學(xué)習(xí)方法,從而做到理解,進(jìn)而掌握。該課程的教學(xué)可分為三個(gè)模塊:
第一模塊:基礎(chǔ)篇(預(yù)備知識篇) 包括開發(fā)工具,批處理文件、Makefile文件的編寫以及相關(guān)的預(yù)備知識。在預(yù)備知識部分,前期課程部分系統(tǒng)給學(xué)生補(bǔ)習(xí)函數(shù)指計(jì)部分知識、預(yù)編譯指令等內(nèi)容。教學(xué)中發(fā)現(xiàn)學(xué)生雖已學(xué)習(xí)過C語言,也進(jìn)行了單片機(jī)實(shí)訓(xùn),對于函數(shù)指針等部分知識基本,還是理解欠缺。輔以適量的習(xí)題,讓學(xué)生扎實(shí)地掌握基礎(chǔ)篇知識,為本課程后續(xù)的學(xué)習(xí)打下基礎(chǔ)。因此在本門課的開設(shè)過程中,需不斷的補(bǔ)習(xí)數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)組成原理、微機(jī)原理等關(guān)聯(lián)知識。教授課程的過程中,我以授人以魚不如授人以漁為教學(xué)理念,教授課程同時(shí),訓(xùn)練培養(yǎng)學(xué)生良好學(xué)習(xí)習(xí)慣。
第二模塊:操作系統(tǒng)的內(nèi)核及其工作原理。該模塊部分包括:任務(wù)、中斷和時(shí)鐘、任務(wù)的同步與通信、信號量集、動態(tài)內(nèi)存管理。這部分是該門課的核心內(nèi)容。其中中斷和時(shí)鐘和任務(wù)的切換部分,晦澀難懂,是重中之重。本課程中,教學(xué)重點(diǎn)是,講授操作系統(tǒng)內(nèi)核,無友好圖形戶界面,文件系統(tǒng)等模塊?;谡n程的特點(diǎn),同時(shí)學(xué)生基礎(chǔ)參差不齊,如何讓學(xué)生看得明白代碼,又不被代碼所牽絆,覺得晦澀難懂。確實(shí)要設(shè)計(jì)一個(gè)高效的教學(xué)方法。
用生活中具象的實(shí)例與課程中抽象的知識點(diǎn)相連接,如在講授任務(wù)的調(diào)度與切換,任務(wù)務(wù)同步與通訊中的事件,信號量、消息郵箱、消息隊(duì)列等這部分內(nèi)容時(shí),我都會列舉很多生活中的例子。
善于運(yùn)用比較法、歸納法,在該課程中,會涉及多個(gè)控制塊,如任務(wù)控制TCB、事件控制OS_EVENT、標(biāo)志組 OS_FLAG_GRP、內(nèi)存控制塊OS_MEM以及對應(yīng)的鏈表這些同類的數(shù)據(jù)結(jié)構(gòu),我都會讓學(xué)生進(jìn)行比較、區(qū)分。重要的概念原理處,讓學(xué)生詳細(xì)標(biāo)注該知識點(diǎn)相關(guān)原理在課本中的位置,以便學(xué)生進(jìn)行知識點(diǎn)的連接,從而加快理解掌握知識點(diǎn)的速度。
課程講授中除了大量的例程外,輔以多媒體動畫進(jìn)行講授。在講授理解困難的知識點(diǎn)時(shí),如何做到,既保證教學(xué)速度,又保證教學(xué)質(zhì)量這兩個(gè)約束條件,一直困擾著我。經(jīng)過多次探索實(shí)踐對比,我放棄了上課用PPT講授有難度的理論與知識的方法,大量采用動畫的形式去講解晦澀的知識點(diǎn),因此除了授課中的代碼例程外,我額外開發(fā)了FLASH小動畫課件。這些輔助動畫課件設(shè)計(jì)中斷和時(shí)鐘、任務(wù)的切換、就緒表,登記注銷查詢、任務(wù)的狀態(tài)、任務(wù)的同步與通信、中斷和時(shí)鐘等多個(gè)重要又難理解的知識點(diǎn)模塊。事實(shí)證明采用該教學(xué)方法,能快速的讓學(xué)生從晦澀的理論中解放出來,收到了很好的教學(xué)效果,同時(shí)也把教師從過多的語言講授中釋放出來,是一種行之有效的教學(xué)方法。學(xué)生快速理解了OS內(nèi)部工作原理,再去分析uC/OS-II實(shí)現(xiàn)代碼時(shí),就事半功倍了。作為課本的擴(kuò)展部分,在該門課的最后,通過一個(gè)萬年歷的項(xiàng)目設(shè)計(jì)向?qū)W生介紹了如何進(jìn)行uC/OS-II程序設(shè)計(jì),包括驅(qū)動程序鍵盤、萬年歷、LCD的編寫,多任務(wù)編程設(shè)計(jì)等。
課程實(shí)驗(yàn)在專業(yè)課的學(xué)習(xí)中非常重要,在理論教學(xué)的過程中,實(shí)時(shí)的安排學(xué)生上機(jī)實(shí)驗(yàn)。本課程我們安排了四次實(shí)驗(yàn),實(shí)驗(yàn)的內(nèi)容為:1)任務(wù)間通信機(jī)制的建立;2)uC/OS-II多任務(wù)編程設(shè)計(jì);3)uC/OS-II內(nèi)核移植;4)uC/OS-II移植一個(gè)TCP/IP協(xié)議棧。
第三模塊:uC/OS-II的移植---在單片機(jī)上移植uC/OS-II、在ARM上移植uC/OS-II。
關(guān)于uC/OS-II的移植也是難點(diǎn)、重點(diǎn),學(xué)習(xí)uC/OS-II最終目的是要把它用起來,用于不臺的硬件平臺中,也就是應(yīng)用于電子系統(tǒng)中。該部分中,著重講解uC/OS-II的移植中,匯編文件OS_CPU_A的任務(wù)切換OSCtxSw()函數(shù)的編寫,C文件OS_CPU_C.C的堆棧初始化OSTaskInit()的編寫。通過該部分內(nèi)容,讓學(xué)生明白把uC/OS-II移植到不同硬件平臺中,需要改寫哪些代碼,為學(xué)生學(xué)習(xí)使用ucLinux、Vevorks、Wince等其它OS打下堅(jiān)實(shí)基礎(chǔ)。
課程最后理論聯(lián)系實(shí)際,本門課的課程設(shè)計(jì),學(xué)生自選項(xiàng)目以小組的形式完成基于uC/OS-II的課程設(shè)計(jì)。
本課程的講授分為四個(gè)步驟:理論講授(輔以動畫演示),代碼分析,上機(jī)實(shí)驗(yàn),課程設(shè)計(jì)。通過這四個(gè)階段,學(xué)生比較好的掌握了嵌入式實(shí)時(shí)操作系統(tǒng)這門課,從而達(dá)到良好的教學(xué)效果。通過以上方式,把本來不好講的一門課變成了一門生動的學(xué)生愛學(xué)的課。
3 課程展望
通過幾年嵌入式操作系統(tǒng)的教學(xué)實(shí)踐,我深深地體會到教好一門有一定難度的課,確實(shí)是一件容易的事情。如何把該門課變成學(xué)生愛學(xué)、生動的課。我做了大量的教學(xué)實(shí)驗(yàn),一種適用的教學(xué)方法,對于一門課的講授所起的作用不可小覷。教學(xué)方法在實(shí)際的教學(xué)中是一件值得花氣力去研究的內(nèi)容,它對于課程的開設(shè)所起的作用舉足輕重。
參考文獻(xiàn):
[1] 任哲.嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II原理及應(yīng)用[M]. 北京:北京航空航天大學(xué),2014.
[2] 劉國梅.淺談普通院校的嵌入式系統(tǒng)教學(xué)[J].中國科技信息,2008(20).
[3] 李志軍,張子紅,王昊,張文祥.以設(shè)計(jì)能力為主線的嵌入式系統(tǒng)教學(xué)改革[J].物聯(lián)網(wǎng)技術(shù), 2014(10).
[4] 胡威,郭宏,蔣旻,付曉薇,面向嵌入式系統(tǒng)的本科/研究生連續(xù)式課程建設(shè)研究[J]. 現(xiàn)代企業(yè)教育, 2014(22).
[5] 李文生, 陸洪毅. 嵌入式人才能力結(jié)構(gòu)分析及教學(xué)體系設(shè)計(jì)[J]. 計(jì)算機(jī)教育, 2014(7): 76-80.