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