【摘要】本文分析了嵌入式系統開發與應用課程教學內容的內涵,闡述了在嵌入式系統教學中開展μC/OS-II教學的必然性。從μC/OS-II的內核和在Cortex-M3上的移植及實例開發角度,分析了嵌入式系統開發與應用教學的難點。對電子信息類本科專業開展嵌入式系統開發與應用教學內容的安排、教學難點,教學和實驗方法進行了探討。從實踐的效果來看,本文方法對嵌入式系統開發與應用課程的教學內容、教學方法及實驗安排具有一定的指導意義。
【關鍵詞】Cortex-M3;?C/OS-II;嵌入式系統開發與應用;本科教學
1.引言
ARM是目前嵌入式領域應用最廣泛的RISC微處理器,它以低成本、低功耗、高性能等優點占據了嵌入式系統應用領域的領先地位。當前ARM系列的處理器有ARM7、ARM9、ARM9E、ARM10、ARM11等多個產品。Cortex-M3內核是ARM公司于2006年推出的一款高性能處理器內核,是ARM新型V7指令集結構系列的微控制器版本,可用于企業應用、汽車系統、家庭網絡和無線技術等領域。其主要特點是:
(1)功耗低;
(2)內核的門數少,具有優異的性價比;
(3)中斷延時短;
(4)調試成本低;
(5)具有嵌套向量中斷控制器(NVIC),與處理器內核緊密結合實現低延遲的中斷處理;
(6)具有可裁減的存儲器保護單元(MPU),用于對存儲器進行保護。
Cortex-M3內核的處理器本身的資源不是特別復雜,特別適合高等院校本科生對ARM的體系結構學習,可移植小型開源操作系統UCOS-II,能加深學生對嵌入式操作系統認識。
2.Cortex-M3+?C/OS-II嵌入式系統開發與應用教學內容
《Cortex-M3+?C/OS-II嵌入式系統開發與應用》課程是電子信息類的一門專業課。該課程的主要任務是:通過本課程的學習,使學生對嵌入式系統原理與技術有系統的、全面的了解;掌握嵌入式處理器的概念、組成和體系結構特點;通過對?C/OS-II詳細剖析,掌握RTOS實時操作的原理,對其內核結構、任務調度等有深入的了解,培養嵌入式系統的設計和開發應用能力。
通過學習本課程后,應達到下列基本要求:
(1)具有一定的計算機體系結構、操作系統、接口與通信等專業基礎理論知識;
(2)熟悉基于Cortex-M3架構的微處理器體系結構及應用特點,用?C/OS-II進行應用開發的技術點;
(3)了解LCD、UART、IIS、I2C等常用外設的設計和開發,為實際應用開發打下基礎。
3.Cortex-M3+?C/OS-II嵌入式系統開發與應用教學的難點
學習嵌入式的重點和難點關鍵在操作系統,如果沒有掌握操作系統,筆者認為很難把握一個嵌入式系統。即使在做嵌入式開發中,作應有層的開發幾乎可以不知道操作系統也可以開發,那是浮在表面的,很難深入和提高自己的層次。選擇μc/os-II這樣的小型操作系統,對本科教學最為合適。本課程教學的難點在于:
(1)Cortex-M3指令集
ARM7、ARM9內核都支持有ARM指令集和Thumb指令集,目前的Cortex-M3內核是Thumb-2指令集。了解Thumb-2指令集,可以更深層次的理解Cortex-M3的啟動過程。
(2)μc/os-II操作系統
實時操作系統μC/OS-II是一個基于優先級的搶占式實時內核,程序可讀性強,移植性好,代碼固定,可裁剪,非常靈活。至今,從8位到64位,μC/OS-II已在超過40種不同架構的微處理器上運行。μC/OS-II的主要特點有:是優先級可剝奪的實時多任務操作系統;可處理和調度56個用戶任務,任務的優先級可以動態調整;提供任務間通信、同步使用的信號量、郵箱和消息隊列;具有良好的可裁剪性,可盡量減小系統的ROM和RAM大小。
(3)寄存器配置
Cortex-M3系列微處理器,可以有眾多的片內外設。不同的需求有不同的配置,它的寄存器配置是學習中的重點與難點。
4.Cortex-M3+?C/OS-II嵌入式系統開發與應用教學與實驗方法
首先改善教學方法。考慮到目前的本科課程門類已大為增加,任何一門非公共課的學時都不會很多。顯然,突出要點才能更有效。建議這門課可安排32學時理論課,另加16學時實驗課。這就要求主要以引導性教學為主。例如對嵌入式系統的教學就不能像C或匯編語言那樣逐條語句講授,而是應結合具體實例講解寄存器配置與片內外設接口。
其次是注重教學實踐性。本課程具有很強的實踐性。針對性強的實驗應該是教學的重要環節,嵌入式系統實驗更應注重實驗質量,而決非僅使用ARM開發軟件。先熟悉開發環境,但這并非嵌入式系統實驗的關鍵。因為ST公司對Cortex-M3的大力開發,有很多庫文件,給開發者帶來很大的便利。如全國大學生電子設計競賽時間短,編程量大,程序結構讓參賽者陷入困境,選擇Cortex-M3的系統可以加快開發速度。因此,嵌入式系統課程的實驗,除了必須完成的基礎性項目外,引導學生完成一些傳統單片機不能實現的內容,從而突出Cortex-M3系統設計的優勢。例如TFT LCD顯示+觸摸屏,重點在人機界面;UART、PS/2或USB接口,關注通信協議與寄存器配置;μC/OS-II應用突出了實時操作系統的多任務操作實現等。在這些實踐過程中,會使學生發現,諸如ISP下載方式、ARM指令與寄存器等本身都成了配角,而唯有更高質地完成實驗項目而不懈追求的設計能動性和創造性成了主角,從而有效提高這門以培養工程實踐能力為主的教學效果。
再次就是注重實用。教學內容上,在講清內容的同時,對每部分內容均需安排有針對性的教學實驗。對設置的大部分的實驗除給出詳細的實驗目的、實驗原理、實驗思考題和實驗報告要求外,還應包含3種實驗項目,即:基礎實驗項目是與該部分內容相關的接口實驗,對于該部分實驗,學生只須將提供的程序輸入到計算機,并按要求進行編譯通過,并在實驗系統上實現即可;功能實驗項目是在上一實驗基礎上進一步發揮性實驗;系統實驗項目屬于自主設計或創新性質的實驗。這樣,學生就可以循序漸進進行多層次的實驗項目。
最后,注重系統調試。一般認為嵌入式系統技術難點和學習費時的根源在于存儲器配置。對此,根據電子類專業的特點,教師需放棄流行的ARM的教學模式,放棄常規的教學思路,以ARM體系結構為基點,從實例介紹中引出寄存器配置內容,通過少數幾個簡單、直觀、典型的實例將寄存器配置中最核心、最基本的內容解釋清楚,使學生在很短的時間內就能有效地把握片上外設的配置,而不必花費大量的時間去“系統地”學習ARM指令與接口內容。要求教師從時間中抓效益,從效益中提高學生學習與研究能力的培養。
總之,高校教師需力爭在不增加課時的情況下,保持嵌入式系統教學內容的系統性和完整性,使學生通過大量寄存器配置,掌握嵌入式系統開發方法。通過接口實驗,初步掌握ARM技術最基本的內容。同時通過向幾個典型實用示例的設計練習,使學生在只有微處理器基礎知識的條件下即能迅速學會使用Cortex-M3庫文件編程的設計方法和學會利用μc/os-II完成較復雜系統的多任務設計實驗真正達到培養創新型人才培養的目的。
參考文獻
[1]陳瑤等.Cortex-M3 +μC/OS-II嵌入式系統開發入門與應用[M].人民郵電出版社,2010.
[2]李寧.基于MDK的STM32處理器開發與應用[M].北京航空航天大學出版社,2008.
[3]李寧.ARM開發工具RealView MDK使用入門編著[M].北京航空航天大學出版社,2008.
[4]ARM Limited.Cortex-M3 Technical Reference Manual.2005.
本文獲2012年上海理工大學重點課程建設基金資助(NO:20090702)。
作者簡介:張會林(1971—),男,安徽宿松人,博士,副教授,主要從事嵌入式系統開發與應用方面的教學與科研。