999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ARM Cortex-M微控制器的教學(xué)平臺(tái)建設(shè)

2014-07-02 08:42:54李寧庫少平付國江
關(guān)鍵詞:單片機(jī)教學(xué)學(xué)生

李寧,庫少平,付國江

(武漢理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢430070)

引 言

自從2006年ARM公司推出第一款基于ARMv7體系結(jié)構(gòu)的32位微控制器內(nèi)核Cortex-M3以來,各半導(dǎo)體廠商陸續(xù)采用該內(nèi)核設(shè)計(jì)生產(chǎn)自己的MCU。之后,ARM公司2009年又推出了Cortex-M0和Cortex-M4內(nèi)核,2012年則推出了Cortex-M0+內(nèi)核。至2012年,基于Cortex-M的芯片出貨量就已經(jīng)達(dá)到22億片。經(jīng)過8年的發(fā)展,32位的Cortex-M處理器已經(jīng)開始主導(dǎo)嵌入式領(lǐng)域中的微控制器市場[1]。

為適應(yīng)技術(shù)和市場的需求,國內(nèi)各高校在近幾年也開始逐漸將Cortex-M微控制器引入到本科生教學(xué)中。本文將介紹筆者所在教學(xué)團(tuán)隊(duì)進(jìn)行Cortex-M微控制器教學(xué)的一些實(shí)際經(jīng)驗(yàn)。

1 與8051單片機(jī)教學(xué)重點(diǎn)的差異

8位的單片機(jī)8051由Intel公司開發(fā)設(shè)計(jì),后來各大半導(dǎo)體廠商都生產(chǎn)了各式各樣的51內(nèi)核單片機(jī),使得8051一度成為MCU領(lǐng)域中的王者,至今仍占有著重要的地位。國內(nèi)高校的MCU教學(xué)曾經(jīng)絕大多數(shù)以8051為對象進(jìn)行講解。由于Cortex-M微控制器是32位的,其硬件和軟件的復(fù)雜程度都高于8051單片機(jī),因此在教學(xué)重點(diǎn)上也有所差異。

1.1 硬件教學(xué)差異

由于8051單片機(jī)出現(xiàn)于1980年,那時(shí)候相當(dāng)多的51內(nèi)核單片機(jī)采用雙列直插封裝形式,至今市場上仍有大量雙列直插封裝的51內(nèi)核單片機(jī)。通過面包板和PCB萬能板,擴(kuò)展上拉電阻、電容、LED燈、按鍵等幾個(gè)簡單器件,每個(gè)學(xué)生都可非常方便地搭建起8051的最小系統(tǒng),并作為教學(xué)實(shí)驗(yàn)平臺(tái),如圖1(a)所示。目前,各半導(dǎo)體廠商生產(chǎn)的Cortex-M微控制器多數(shù)采用QFN、LQFP、BGA等封裝形式,幾乎見不到雙列直插封裝形式,Cortex-M微控制器的用戶也不會(huì)考慮使用雙列直插封裝形式。因此,讓學(xué)生自己動(dòng)手做出一個(gè)Cortex-M微控制器的最小系統(tǒng)非常困難,對于很多專業(yè)的學(xué)生而言,甚至幾乎不可能。

由于Cortex-M內(nèi)核計(jì)算能力強(qiáng)大,很多廠商開發(fā)的Cortex-M微控制器又提供了豐富的外圍接口,使得有大量的外設(shè)可以被輕松接入。因此,筆者在教學(xué)中采用集成了仿真器,并帶有Arduino接口的Cortex-M微控制器學(xué)習(xí)板,學(xué)生可以自由地?cái)U(kuò)展各種外設(shè)板,如圖1(b)所示。

1.2 軟件教學(xué)差異

由于Cortex-M微控制器的計(jì)算能力、存儲(chǔ)空間都遠(yuǎn)大于8051單片機(jī),因此在軟件上有了更大的擴(kuò)展空間,在軟件的教學(xué)上應(yīng)當(dāng)也有所調(diào)整。

圖1 8051教學(xué)平臺(tái)與Cortex-M微控制器教學(xué)平臺(tái)

(1)弱化匯編語言,強(qiáng)化C語言

無論是8051還是Cortex-M微控制器的匯編語言指令集都不是太復(fù)雜,尤其是Cortex-M0內(nèi)核僅有56條Thumb指令,學(xué)習(xí)和掌握其匯編語言指令集的難度并不大。

在早期的8051教學(xué)中,匯編語言是其中的重要內(nèi)容,甚至整個(gè)教學(xué)過程均采用匯編語言來講解,也有很多工程師一直采用匯編語言來對8051進(jìn)行編程。其理由是C語言編譯后的代碼密度比匯編語言的低,執(zhí)行效率也低。早期的8051單片機(jī)的計(jì)算能力和存儲(chǔ)空間都非常有限,導(dǎo)致某些工程師甚至在編程時(shí)對每個(gè)字節(jié)都“斤斤計(jì)較”,這是匯編語言曾在MCU領(lǐng)域被廣泛使用的重要原因。

Cortex-M微控制器的計(jì)算能力已經(jīng)非常強(qiáng)大,其存儲(chǔ)空間也足夠大,價(jià)格也很便宜;同時(shí)編譯系統(tǒng)的能力也有顯著提高,即使是采用GCC編譯器也可以獲得很好的代碼密度和執(zhí)行效率。此外,使用C語言進(jìn)行開發(fā),開發(fā)速度更快,更適合開發(fā)復(fù)雜的軟件,例如帶有RTOS的系統(tǒng),相比匯編語言,軟件越復(fù)雜,C語言的開發(fā)效率越高。因此,當(dāng)前絕大多數(shù)工程師已經(jīng)開始使用C語言作為MCU的開發(fā)語言,而基本不再使用匯編語言。

基于以上情況,在教學(xué)實(shí)踐中可適當(dāng)弱化匯編語言編程的要求,不要求學(xué)生用匯編語言完成較為復(fù)雜的程序。

(2)弱化寄存器操作,強(qiáng)化使用API

對MCU的各種外設(shè)接口的控制,都是通過對寄存器的操作來實(shí)現(xiàn)的。因此,過去在以8051為對象的單片機(jī)課程教學(xué)和以8086 CPU為對象的微機(jī)原理課程教學(xué)中,都花費(fèi)了大量時(shí)間介紹各外設(shè)接口的數(shù)據(jù)寄存器、控制寄存器和狀態(tài)寄存器含義,以及相應(yīng)的操作方法。Cortex-M微控制器中所帶有的外設(shè)越來越多,越來越復(fù)雜,如果逐一介紹各外設(shè)接口的寄存器組,其內(nèi)容將非常多,而且枯燥乏味。

目前,各個(gè)MCU廠商為了幫助使用其產(chǎn)品的工程師能進(jìn)行快速開發(fā),均提供了完善的外設(shè)驅(qū)動(dòng)庫。在每個(gè)外設(shè)驅(qū)動(dòng)庫中,均定義了相應(yīng)外設(shè)的數(shù)據(jù)結(jié)構(gòu)和一組API函數(shù),這一組API函數(shù)覆蓋了該外設(shè)的所有功能。而且,這些外設(shè)驅(qū)動(dòng)庫的文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、函數(shù)名和參數(shù)名都進(jìn)行了標(biāo)準(zhǔn)化。

基于以上情況,在教學(xué)實(shí)踐中通常可以僅介紹1~2個(gè)簡單外設(shè)的寄存器組,例如GPIO的寄存器組,讓學(xué)生了解如何通過操作寄存器來實(shí)現(xiàn)對外設(shè)接口的控制即可。同時(shí),應(yīng)增加對外設(shè)驅(qū)動(dòng)庫的介紹,包括外設(shè)驅(qū)動(dòng)庫的文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、函數(shù)名和參數(shù)名定義的規(guī)范。讓學(xué)生掌握查閱處理器數(shù)據(jù)手冊和API函數(shù)手冊進(jìn)行編程的能力。

(3)引入RTOS,中斷與OS任務(wù)調(diào)度并重

8051的計(jì)算能力有限,存儲(chǔ)空間很小,因此在實(shí)際應(yīng)用中基本不會(huì)使用RTOS,通常是直接進(jìn)行裸機(jī)編程。對于多任務(wù)的處理,通常是用中斷來實(shí)現(xiàn),因此中斷處理是MCU教學(xué)的重點(diǎn)。

Cortex-M微控制器的計(jì)算能力和存儲(chǔ)空間的大幅提高,使得MCU能適用于更加復(fù)雜的應(yīng)用。對于功能復(fù)雜的應(yīng)用,如果使用裸機(jī)編程的方法進(jìn)行開發(fā),則必然會(huì)遇到編程復(fù)雜、調(diào)試?yán)щy、代碼耦合性高、移植困難等諸多問題,因此,越來越多的Cortex-M微控制器應(yīng)用開始引入RTOS?;赗TOS的應(yīng)用程序開發(fā),會(huì)大大降低應(yīng)用程序的復(fù)雜性和代碼的耦合度,應(yīng)用的移植也變得簡單。當(dāng)然,仍有大量的Cortex-M微控制器應(yīng)用本身就比較簡單,無需引入RTOS。

基于以上情況,在教學(xué)實(shí)踐中可引入RTOS的知識(shí),同時(shí)也仍保持對中斷的重點(diǎn)介紹。對于計(jì)算機(jī)專業(yè)的學(xué)生而言,RTOS的知識(shí)是易于理解和掌握的,但是對于自動(dòng)化和電子專業(yè)的學(xué)生而言,則會(huì)存在著一些困難。基于這種情況,可將RTOS介紹的重點(diǎn)放在任務(wù)調(diào)度的概念上,讓學(xué)生理解RTOS可以幫助編程者實(shí)現(xiàn)多任務(wù)的切換和調(diào)度即可。

2 教學(xué)平臺(tái)建設(shè)

2.1 硬件平臺(tái)

由于常見Cortex-M微控制器的封裝形式不方便讓學(xué)生自己搭建起最小系統(tǒng),因此筆者在教學(xué)中采用集成了仿真器、并帶有Arduino接口的Cortex-M學(xué)習(xí)板,使用Cortex-M0處理器,如圖1(b)所示。同時(shí)還提供多種Arduino接口擴(kuò)展板,例如三色LED燈、矩陣鍵盤、步進(jìn)電機(jī)、溫度傳感器、光敏傳感器、重力加速度傳感器、ZigBee模塊等,便于搭建各種應(yīng)用系統(tǒng)。這樣既方便完成單一功能的驗(yàn)證實(shí)驗(yàn),又適于進(jìn)行較為復(fù)雜的課程設(shè)計(jì),還能用于學(xué)生自主創(chuàng)新項(xiàng)目。這樣的教學(xué)平臺(tái)體積小、靈活性高、方便攜帶,學(xué)生甚至不必在實(shí)驗(yàn)室就可以進(jìn)行實(shí)驗(yàn)或者自主創(chuàng)新開發(fā)。

2.2 軟件平臺(tái)

筆者使用Coocox工具作為教學(xué)實(shí)踐的軟件平臺(tái)。Coocox工具包含一套完整的ARM MCU工具鏈,包含集成開發(fā)環(huán)境CoIDE、燒寫工具CoFlash、實(shí)時(shí)操作系統(tǒng)CoOS以及快速代碼生成工具CoSmart,而且完全免費(fèi)[2]。更重要的是,其基于組件化的編程思想和分享功能非常便于實(shí)踐教學(xué)的開展。

(1)組件化編程

圖2 CoIDE工程組件樹

在集成開發(fā)環(huán)境CoIDE中,外設(shè)驅(qū)動(dòng)、算法、通信協(xié)議棧、RTOS等均被包裝為組件(Component)。開發(fā)者只要通過鼠標(biāo)選擇相應(yīng)的組件,即可將組件添加到自己的應(yīng)用程序中。在組件樹窗口中可以清楚地顯示應(yīng)用程序所使用的外設(shè)、通信協(xié)議、RTOS等,如圖2所示。相比于文件樹而言,組件樹的結(jié)構(gòu)更清晰明確,而且還可以和文件樹相互參照。這種模塊化的編程方式,讓編程者非常易于理解應(yīng)用程序的結(jié)構(gòu),也大大加快了編程的進(jìn)度,減少了添加驅(qū)動(dòng)函數(shù)庫、RTOS等過程中可能出現(xiàn)的錯(cuò)誤。同時(shí),每個(gè)組件均有基本例程可以參考,只需選擇相應(yīng)例程即可自動(dòng)將相關(guān)代碼加入到自己的應(yīng)用程序中去。學(xué)生無需編程,就可完成第一個(gè)入門實(shí)驗(yàn),實(shí)踐教學(xué)的難度明顯降低,大大減少了學(xué)生對于MCU實(shí)踐教學(xué)的畏難心理。

(2)分享功能

CoIDE還具有基于Internet的分享功能,開發(fā)者可以將自己開發(fā)的組件、例程上傳到服務(wù)器上與其他開發(fā)者分享,這個(gè)功能也方便了教師對學(xué)生實(shí)踐教學(xué)的檢查和評(píng)分。學(xué)生可將自己的實(shí)驗(yàn)程序作為例子上傳,教師則可以非常方便地下載、查看并運(yùn)行學(xué)生的實(shí)驗(yàn)代碼,從而進(jìn)行評(píng)分,而不必當(dāng)場逐一檢查實(shí)驗(yàn)結(jié)果。這樣,老師和學(xué)生在實(shí)驗(yàn)場地和實(shí)驗(yàn)時(shí)間的安排上都變得非常靈活,學(xué)生甚至可以在寢室完成實(shí)驗(yàn),老師也可以根據(jù)自己的時(shí)間來進(jìn)行實(shí)驗(yàn)成績評(píng)分。

同時(shí),CoIDE也具有其他商用集成開發(fā)環(huán)境的各項(xiàng)功能,可以用于各種復(fù)雜的ARM MCU應(yīng)用的開發(fā)。近年來,Coocox工具鏈也逐漸成為一些歐美大學(xué)的MCU教學(xué)的軟件教學(xué)平臺(tái)。

3 與物聯(lián)網(wǎng)、Android教學(xué)的結(jié)合

3.1 與物聯(lián)網(wǎng)教學(xué)結(jié)合

隨著物聯(lián)網(wǎng)的快速發(fā)展,許多高校都開設(shè)了物聯(lián)網(wǎng)專業(yè),計(jì)算機(jī)、電子、自動(dòng)化等專業(yè)也開設(shè)了物聯(lián)網(wǎng)的相關(guān)課程。物聯(lián)網(wǎng)感知層中的各種傳感器節(jié)點(diǎn),其實(shí)就是MCU加上相關(guān)傳感器,如果能將MCU的教學(xué)與物聯(lián)網(wǎng)教學(xué)進(jìn)行結(jié)合,會(huì)有助于學(xué)生建立完整的物聯(lián)網(wǎng)系統(tǒng)概念。

在實(shí)踐教學(xué)中,在Arduino學(xué)習(xí)板上擴(kuò)展ZigBee模塊和傳感器模塊,可實(shí)現(xiàn)一個(gè)傳感器節(jié)點(diǎn);或者擴(kuò)展ZigBee模塊和一個(gè)步進(jìn)電機(jī)模塊,實(shí)現(xiàn)一個(gè)控制節(jié)點(diǎn)。一組學(xué)生即可構(gòu)建一個(gè)小的物聯(lián)網(wǎng),例如實(shí)現(xiàn)簡單的智能家居系統(tǒng)原型。

3.2 與Android教學(xué)結(jié)合

移動(dòng)終端、可穿戴設(shè)備的迅速普及,使得Android應(yīng)用開發(fā)成為了計(jì)算機(jī)專業(yè)學(xué)生的熱門選修課程。在Android應(yīng)用開發(fā)實(shí)踐教學(xué)中,也可以與MCU教學(xué)相結(jié)合。將MCU實(shí)踐教學(xué)與其他相關(guān)課程的實(shí)踐教學(xué)進(jìn)行有機(jī)的結(jié)合,不僅可以幫助學(xué)生建立各知識(shí)領(lǐng)域之間的聯(lián)系,還可以提高學(xué)生的興趣,也有利于鼓勵(lì)學(xué)生進(jìn)行自主創(chuàng)新開發(fā)。

結(jié) 語

在筆者的MCU教學(xué)實(shí)踐中也遇到如下一些問題和困難:

①缺乏合適教材。很多關(guān)于Cortex-M微控制器的書籍都是為MCU廠商做市場推廣而寫作的,更適合作為編程參考手冊,而不適合作為教材。由于ARM MCU比8051復(fù)雜,涉及的軟硬件內(nèi)容更豐富,已有的一些Cortex-M微控制器教材很難兼顧。各個(gè)專業(yè)的MCU教學(xué)需求也有所偏重,市面也缺乏根據(jù)專業(yè)特點(diǎn)來編寫合適的教材。

②學(xué)時(shí)少,內(nèi)容多,尤其實(shí)踐學(xué)時(shí)太少。對于這一問題,通過鼓勵(lì)學(xué)生將學(xué)習(xí)板帶回寢室學(xué)習(xí),得以適當(dāng)緩解。

③軟硬件知識(shí)如何平衡。對于不同專業(yè)的學(xué)生,需求是不同的。計(jì)算機(jī)專業(yè)的學(xué)生,偏向于軟件方面;電子專業(yè)的學(xué)生,偏向硬件方面;自動(dòng)化專業(yè)的學(xué)生,則更偏向于接口控制與通信方面。

④如何與其他相關(guān)課程的實(shí)踐課相互有機(jī)結(jié)合,在有限的學(xué)時(shí)中做到相互促進(jìn)、相互兼顧,并能完成相關(guān)知識(shí)點(diǎn)全覆蓋。

[1]ARM Limited.Cortex-M 系列[EB/OL].[2014-06].http://www.arm.com/zh/markets/embedded/mcu.php.

[2]Free/Open Cortex-M微控制器 Development Tools[EB/OL].[2014-06].http://www.coocox.org.

猜你喜歡
單片機(jī)教學(xué)學(xué)生
微課讓高中數(shù)學(xué)教學(xué)更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
趕不走的學(xué)生
“自我診斷表”在高中數(shù)學(xué)教學(xué)中的應(yīng)用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學(xué)中“想”和“要”的比較
學(xué)生寫話
學(xué)生寫的話
Microchip推出兩個(gè)全新PIC單片機(jī)系列
主站蜘蛛池模板: 永久免费av网站可以直接看的| 亚洲欧美精品一中文字幕| 狠狠综合久久| 亚洲精选高清无码| 第一区免费在线观看| 97在线免费| 精品国产自在现线看久久| 91久久精品国产| 亚洲系列无码专区偷窥无码| 午夜视频在线观看免费网站| 视频一区视频二区日韩专区| 欧美成人精品高清在线下载| 日本a级免费| 久久精品日日躁夜夜躁欧美| 精品撒尿视频一区二区三区| 亚洲制服丝袜第一页| 日本不卡免费高清视频| 国产91精品久久| 婷婷色一二三区波多野衣| 91福利免费视频| 国产高清毛片| 成人综合在线观看| 欧美有码在线| 欧美一区精品| yy6080理论大片一级久久| 久久精品娱乐亚洲领先| 国产浮力第一页永久地址| 久久影院一区二区h| 啦啦啦网站在线观看a毛片 | 久久国产av麻豆| 91尤物国产尤物福利在线| 蜜臀AVWWW国产天堂| 色香蕉网站| 97超级碰碰碰碰精品| 天天色综合4| 亚洲性影院| 国产二级毛片| 欧美一级夜夜爽| 国产精品一区不卡| 日韩无码视频网站| 色综合手机在线| 国产精品专区第1页| 国产亚洲欧美在线视频| AV老司机AV天堂| 97精品伊人久久大香线蕉| 久久激情影院| 色婷婷视频在线| 欧美国产日韩在线观看| 免费A∨中文乱码专区| 国产xx在线观看| swag国产精品| 真人高潮娇喘嗯啊在线观看| A级毛片高清免费视频就| 日韩欧美中文字幕一本| 日韩一区精品视频一区二区| 欧美激情视频二区三区| 毛片免费在线视频| 91精品情国产情侣高潮对白蜜| 国产成人在线无码免费视频| 久热这里只有精品6| 婷婷六月天激情| 亚洲欧洲国产成人综合不卡| 欧美一级高清免费a| 四虎影视库国产精品一区| 国产小视频在线高清播放| 国产在线一区视频| 国产十八禁在线观看免费| 五月婷婷精品| 亚洲三级片在线看| 色偷偷综合网| 日韩免费中文字幕| 91久久偷偷做嫩草影院电| 天天摸天天操免费播放小视频| 成·人免费午夜无码视频在线观看 | 亚洲天堂免费在线视频| 91人妻日韩人妻无码专区精品| 国产一区二区三区在线观看视频| 丝袜亚洲综合| 97se亚洲综合不卡| 国产一级毛片在线| 中文无码日韩精品| 久久免费精品琪琪|