艾云峰,姚 鄭,覃 力
(中國科學(xué)院大學(xué) 工程管理與信息技術(shù)學(xué)院,北京100049)
嵌入式實時操作系統(tǒng)在嵌入式系統(tǒng)中得到了廣泛應(yīng)用,開展實時操作系統(tǒng)教學(xué)工作是嵌入式教育的重要組成部分。IEEE 和ACM 兩大國際學(xué)術(shù)組織2004年發(fā)布的計算機工程教學(xué)計劃CC2004(Computer Engineering 2004),明確規(guī)定了嵌入式系統(tǒng)課程中應(yīng)包含的實時操作系統(tǒng)的具體教學(xué)內(nèi)容[1]。圍繞這些教學(xué)內(nèi)容,國內(nèi)外高校開設(shè)了大量的嵌入式實時操作系統(tǒng)相關(guān)課程,以適應(yīng)21世紀科技發(fā)展的需要,專業(yè)涉及到計算機應(yīng)用、通信工程、電子工程、自動控制和機械工程等。
我校是1978年由教育部批準成立的以研究生教育為主的高校,簡稱國科大。我院由工程管理和計算機工程兩個系組成,從2003年開設(shè)嵌入式系統(tǒng)工程專業(yè)方向后,經(jīng)過幾年的努力,逐步建立起系統(tǒng)的嵌入式方向課程體系?!扒度胧綄崟r操作系統(tǒng)原理與應(yīng)用”作為一門核心課程,在該課程體系中占有重要的地位。
本課程主要面向來自軟件工程、計算機應(yīng)用、電子與通信和控制工程等四個專業(yè)的工程碩士研究生。他們一部分已經(jīng)基本掌握了嵌入式實時操作系統(tǒng)的使用技術(shù),但對基本概念和理論知識缺乏系統(tǒng)整體的理解;另外一部分則熟悉基礎(chǔ)理論,但對于如何使用實時操作系統(tǒng)開發(fā)嵌入式應(yīng)用軟件缺乏實踐經(jīng)驗。本課程教學(xué)目標的制定需要綜合這兩類學(xué)生的不同需求,做到統(tǒng)籌兼顧。
“嵌入式實時操作系統(tǒng)”課程的教學(xué)目標制定為:通過本課程的學(xué)習(xí),理解并掌握實時操作系統(tǒng)的基本概念和基礎(chǔ)理論,熟悉一種實時嵌入式內(nèi)核的具體實現(xiàn),使用實時操作系統(tǒng)開發(fā)嵌入式應(yīng)用軟件。該教學(xué)目標包含了三個子目標:①掌握基礎(chǔ)理論、理解內(nèi)核實現(xiàn)和精通應(yīng)用開發(fā);②構(gòu)成從抽象到具體的層次關(guān)系;③滿足不同學(xué)生知識學(xué)習(xí)層次的需求。
CC2004 計劃采用了知識領(lǐng)域、知識單元和知識點的方法描述知識體系。CC2004 計劃首次將嵌入式系統(tǒng)作為一個知識領(lǐng)域納入到計算機工程的知識體系中,并規(guī)定了該知識領(lǐng)域中實時操作系統(tǒng)知識單元所包含的7 個知識點。這些知識點只是涉及到了實時操作系統(tǒng)的基本概念和基本原理,沒有包含具體實時操作系統(tǒng)實現(xiàn)和實時操作系統(tǒng)使用的內(nèi)容。我們根據(jù)課程的教學(xué)目標,在CC2004 計劃的基礎(chǔ)上,將嵌入式實時操作系統(tǒng)的理論教學(xué)內(nèi)容擴充為8 個知識單元。
知識單元1 是嵌入式實時操作系統(tǒng)歷史和概述。知識點包括嵌入式實時操作系統(tǒng)發(fā)展歷史、定義、組成、功能、應(yīng)用領(lǐng)域和發(fā)展趨勢等。通過本單元的講解,使學(xué)生建立起對于嵌入式實時操作系統(tǒng)的全方位認識。
知識單元2 是實時嵌入式操作系統(tǒng)基本概念。知識點包括前后臺系統(tǒng)、臨界段、資源、互斥、共享資源、任務(wù)、任務(wù)切換、搶占式內(nèi)核、不可搶占式內(nèi)核、可重入性、優(yōu)先級、優(yōu)先級翻轉(zhuǎn)、優(yōu)先級繼承、同步、通信、信號量、郵箱和消息隊列等內(nèi)容[2]。講解本單元的目的是使學(xué)生建立對實時操作系統(tǒng)的初步認識,為后面內(nèi)容的學(xué)習(xí)奠定基礎(chǔ)。
從知識單元3 到知識單元7 分別是內(nèi)核的任務(wù)管理和調(diào)度、時間和中斷管理、內(nèi)存管理、任務(wù)間同步和通信以及內(nèi)核移植。在講解每一個知識單元時,采取的流程都是:先介紹基本概念和基本原理,再分析典型實時內(nèi)核UC/OS 中的具體實現(xiàn),最后通過課堂實驗學(xué)習(xí)其使用方法。例如,講解實現(xiàn)任務(wù)間同步的內(nèi)核對象—信號量時,首先介紹信號量在實時操作系統(tǒng)的作用、基本概念、實現(xiàn)機制和內(nèi)核提供的關(guān)于信號量的基本服務(wù)和信號量的使用場景等基本概念[3],接下來分析UC/OS 內(nèi)核中信號量機制的具體實現(xiàn),最后通過課堂實驗練習(xí)信號量的各種使用方法。
知識單元8 是基于RTOS 的軟件設(shè)計。講解該單元時,先分析了幾種常用的嵌入式軟件體系結(jié)構(gòu)[4](前后臺、函數(shù)隊列調(diào)度、基于實時操作系統(tǒng))及其優(yōu)缺點對比,接下來重點解釋使用RTOS 開發(fā)應(yīng)用軟件的基本指導(dǎo)原則,最后通過分析典型開發(fā)案例點評利用RTOS 開發(fā)嵌入式軟件的主要設(shè)計流程以及指導(dǎo)原則的使用[5]。本單元所對應(yīng)的實踐環(huán)節(jié)是綜合實驗設(shè)計,通過該環(huán)節(jié)提高學(xué)生使用實時操作系統(tǒng)開發(fā)嵌入式應(yīng)用軟件的能力。
目前嵌入式系統(tǒng)的教學(xué)實驗平臺主要有三種類型:①基于ARM 微控制器的教學(xué)平臺;②基于DSP處理芯片的教學(xué)平臺;③基于FPGA 的教學(xué)平臺。鑒于基于ARM 的微控制器在32 位嵌入式系統(tǒng)處理器市場中的占有率極高,以ARM 微控制器為例講解嵌入式微控制器的基礎(chǔ)理論和應(yīng)用技術(shù)更能滿足市場對于嵌入式工程技術(shù)人才的需求,因此我們選擇了基于三星S3C2440 微控制器(采用了ARM920T內(nèi)核)的嵌入式教學(xué)平臺。該平臺的系統(tǒng)組成結(jié)構(gòu)如圖1所示。
圖1 實驗平臺結(jié)構(gòu)圖
圖中S3C2440 是一款基于ARM920T 處理器的嵌入式微控制芯片,內(nèi)部集成了AHB 和APB 兩條總線,以及連接在總線上的內(nèi)存控制器、中斷控制器、時鐘電源管理單元、USB 主從控制器、看門狗、定時器、PWM 控制器、GPIO 控制器和SD/MMC 控制器等多種外設(shè)控制器。存儲器包括64M SDRAM、4M NORFLASH 和64M NAND FLASH,人機接口設(shè)備包括640* 480 像素6 寸TFT 液晶顯示模塊、觸摸屏、4* 5 小鍵盤模塊和4 個GPIO 連接LED 顯示燈,通信接口及設(shè)備包括串口、USB 主接口、USB 從接口、兩個以太網(wǎng)接口、音頻輸入輸出接口和Camera 接口等。該實驗設(shè)備支持多種層次的實驗,本課程所有實驗均在該實驗平臺上完成。
本課程的實驗包含了觀察性實驗和設(shè)計性實驗兩種類型,具體來講,根據(jù)理論教學(xué)內(nèi)容的前7 個知識單元,共設(shè)計了13 個課堂實驗,這些課堂實驗與知識點的對應(yīng)關(guān)系如表1所示。
表1 課堂實驗安排
在表中,編號1 和2 是觀察性實驗。這兩個實驗實現(xiàn)的功能相同,均將LCD 屏幕劃分為左上、右上、左下和右下四個對稱區(qū)域,并將用戶點擊的區(qū)域填涂為特定顏色。這兩個實驗在講解完知識單元1后上機練習(xí),主要目的是使學(xué)生認識基于RTOS 的軟件結(jié)構(gòu)與前后臺系統(tǒng)的區(qū)別,加深對RTOS 使用的整體認識。
實驗3 到實驗13 均為設(shè)計性實驗,工程項目源代碼文件中的關(guān)鍵函數(shù)只給出了函數(shù)原型,學(xué)生需要根據(jù)課堂所學(xué)知識實現(xiàn)這些函數(shù),完成實驗過程。其中,實驗3、5、6、9、11、13 為內(nèi)核模擬或改進實驗,要求學(xué)生編程模擬UCOS 的某個內(nèi)核功能模塊或者改寫UCOS 代碼改進其不完善的功能模塊。這些實驗都屬于內(nèi)核層的實驗。實驗4、7、8、10、12 為UCOS 內(nèi)核使用實驗,要求學(xué)生使用UCOS 內(nèi)核提供的各種服務(wù)完成應(yīng)用編程,這些實驗屬于內(nèi)核應(yīng)用實驗。
綜上所述,課堂實驗主要分成了兩個層次:內(nèi)核實驗和內(nèi)核應(yīng)用實驗。通過這兩種層次的實驗設(shè)計,實現(xiàn)了理論和實踐的結(jié)合,達到了使學(xué)生理解內(nèi)核實現(xiàn)和精通應(yīng)用開發(fā)的教學(xué)目標。
綜合實驗設(shè)計要求學(xué)生自行分組、分工合作,利用課下時間設(shè)計一個小規(guī)模的嵌入式應(yīng)用軟件,并在實驗平臺上完成調(diào)試運行。
為了提高學(xué)生興趣,共挑選了了8 個游戲項目作為綜合實驗供學(xué)生選擇:世界時鐘、五子棋、電子菜單、科學(xué)計算器、漢諾塔、交通信號控制器、俄羅斯方塊和五子棋。本課程也鼓勵學(xué)生選擇一些常見的其他娛樂游戲作為綜合實驗設(shè)計項目。
我們在綜合實驗的說明書中,給出了功能要求、控制方式和注意事項等實驗開發(fā)要求。學(xué)生根據(jù)選擇的實驗項目的具體要求,按著軟件工程的流程開發(fā)軟件并撰寫項目文檔。項目文檔至少要包含需求分析、軟件設(shè)計、軟件測試、使用說明、運行結(jié)果、項目分工和總結(jié)討論等內(nèi)容。
課堂實驗、理論考試和綜合實驗在總成績中分別占30%、40%和30%。課堂實驗和理論考試由每個學(xué)生單獨完成,因此對于每個學(xué)生的考核比較客觀。在綜合實驗中,僅憑項目文檔打分無法準確反映組內(nèi)成員的真實水平。如何解決這一問題是我們下一步的工作。
我校已建立了課程網(wǎng)站評估系統(tǒng),學(xué)生可以課程結(jié)束后在網(wǎng)上對課程教學(xué)進行評估。評估內(nèi)容涵蓋了教學(xué)態(tài)度、教學(xué)內(nèi)容、教學(xué)方式和教學(xué)效果等四個方面。從學(xué)生的評估結(jié)果來看,他們對于本課程的教學(xué)內(nèi)容選擇、教學(xué)方式和考核方式等非常滿意,但部分學(xué)生認為實驗課時過短,應(yīng)該從12 課時提高到16 課時。還有一部分學(xué)生認為總課時數(shù)僅為40課時有點偏少,建議提高到60 課時。
總體來講,根據(jù)學(xué)生評估結(jié)果以及結(jié)合學(xué)生的考核成績來看,課程達到了教學(xué)目標的要求,但同時在實驗課設(shè)計方面需要進一步提高。本課程連續(xù)多年評估結(jié)果均為優(yōu)秀。
[1] Joint Task Force on Computer Engineering Curricula. Computer Engineering 2004:Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering[R],IEEE Computer Society,Los Alamitos,CA,Jul. 2006,pp.A.43.
[2] Labrosse J J.嵌入式實時操作系統(tǒng)μC/OS-II[M].邵貝貝譯.北京:北京航空航天大學(xué)出版社,2003:283-307.
[3] Qing Li,Caroline Yao,嵌入式系統(tǒng)的實時概念[M],王安生,譯.北京:北京航空航天大學(xué),2004:71-87.
[4] David E.S..嵌入式系統(tǒng)軟件教程[M],陳向群,譯.北京:機械工業(yè)出版社,2005:115-134.
[5] 周航慈,吳光文. 基于嵌入式實時操作系統(tǒng)的程序設(shè)計技術(shù)[M].北京:北京航空航天大學(xué),2008:181-205.