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