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

ARM Cortex-M微控制器的教學平臺建設

2014-07-02 08:42:54李寧庫少平付國江
單片機與嵌入式系統應用 2014年12期
關鍵詞:單片機教學學生

李寧,庫少平,付國江

(武漢理工大學 計算機科學與技術學院,武漢430070)

引 言

自從2006年ARM公司推出第一款基于ARMv7體系結構的32位微控制器內核Cortex-M3以來,各半導體廠商陸續采用該內核設計生產自己的MCU。之后,ARM公司2009年又推出了Cortex-M0和Cortex-M4內核,2012年則推出了Cortex-M0+內核。至2012年,基于Cortex-M的芯片出貨量就已經達到22億片。經過8年的發展,32位的Cortex-M處理器已經開始主導嵌入式領域中的微控制器市場[1]。

為適應技術和市場的需求,國內各高校在近幾年也開始逐漸將Cortex-M微控制器引入到本科生教學中。本文將介紹筆者所在教學團隊進行Cortex-M微控制器教學的一些實際經驗。

1 與8051單片機教學重點的差異

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

1.1 硬件教學差異

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

由于Cortex-M內核計算能力強大,很多廠商開發的Cortex-M微控制器又提供了豐富的外圍接口,使得有大量的外設可以被輕松接入。因此,筆者在教學中采用集成了仿真器,并帶有Arduino接口的Cortex-M微控制器學習板,學生可以自由地擴展各種外設板,如圖1(b)所示。

1.2 軟件教學差異

由于Cortex-M微控制器的計算能力、存儲空間都遠大于8051單片機,因此在軟件上有了更大的擴展空間,在軟件的教學上應當也有所調整。

圖1 8051教學平臺與Cortex-M微控制器教學平臺

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

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

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

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

基于以上情況,在教學實踐中可適當弱化匯編語言編程的要求,不要求學生用匯編語言完成較為復雜的程序。

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

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

目前,各個MCU廠商為了幫助使用其產品的工程師能進行快速開發,均提供了完善的外設驅動庫。在每個外設驅動庫中,均定義了相應外設的數據結構和一組API函數,這一組API函數覆蓋了該外設的所有功能。而且,這些外設驅動庫的文件結構、數據結構、函數名和參數名都進行了標準化。

基于以上情況,在教學實踐中通常可以僅介紹1~2個簡單外設的寄存器組,例如GPIO的寄存器組,讓學生了解如何通過操作寄存器來實現對外設接口的控制即可。同時,應增加對外設驅動庫的介紹,包括外設驅動庫的文件結構、數據結構、函數名和參數名定義的規范。讓學生掌握查閱處理器數據手冊和API函數手冊進行編程的能力。

(3)引入RTOS,中斷與OS任務調度并重

8051的計算能力有限,存儲空間很小,因此在實際應用中基本不會使用RTOS,通常是直接進行裸機編程。對于多任務的處理,通常是用中斷來實現,因此中斷處理是MCU教學的重點。

Cortex-M微控制器的計算能力和存儲空間的大幅提高,使得MCU能適用于更加復雜的應用。對于功能復雜的應用,如果使用裸機編程的方法進行開發,則必然會遇到編程復雜、調試困難、代碼耦合性高、移植困難等諸多問題,因此,越來越多的Cortex-M微控制器應用開始引入RTOS。基于RTOS的應用程序開發,會大大降低應用程序的復雜性和代碼的耦合度,應用的移植也變得簡單。當然,仍有大量的Cortex-M微控制器應用本身就比較簡單,無需引入RTOS。

基于以上情況,在教學實踐中可引入RTOS的知識,同時也仍保持對中斷的重點介紹。對于計算機專業的學生而言,RTOS的知識是易于理解和掌握的,但是對于自動化和電子專業的學生而言,則會存在著一些困難。基于這種情況,可將RTOS介紹的重點放在任務調度的概念上,讓學生理解RTOS可以幫助編程者實現多任務的切換和調度即可。

2 教學平臺建設

2.1 硬件平臺

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

2.2 軟件平臺

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

(1)組件化編程

圖2 CoIDE工程組件樹

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

(2)分享功能

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

同時,CoIDE也具有其他商用集成開發環境的各項功能,可以用于各種復雜的ARM MCU應用的開發。近年來,Coocox工具鏈也逐漸成為一些歐美大學的MCU教學的軟件教學平臺。

3 與物聯網、Android教學的結合

3.1 與物聯網教學結合

隨著物聯網的快速發展,許多高校都開設了物聯網專業,計算機、電子、自動化等專業也開設了物聯網的相關課程。物聯網感知層中的各種傳感器節點,其實就是MCU加上相關傳感器,如果能將MCU的教學與物聯網教學進行結合,會有助于學生建立完整的物聯網系統概念。

在實踐教學中,在Arduino學習板上擴展ZigBee模塊和傳感器模塊,可實現一個傳感器節點;或者擴展ZigBee模塊和一個步進電機模塊,實現一個控制節點。一組學生即可構建一個小的物聯網,例如實現簡單的智能家居系統原型。

3.2 與Android教學結合

移動終端、可穿戴設備的迅速普及,使得Android應用開發成為了計算機專業學生的熱門選修課程。在Android應用開發實踐教學中,也可以與MCU教學相結合。將MCU實踐教學與其他相關課程的實踐教學進行有機的結合,不僅可以幫助學生建立各知識領域之間的聯系,還可以提高學生的興趣,也有利于鼓勵學生進行自主創新開發。

結 語

在筆者的MCU教學實踐中也遇到如下一些問題和困難:

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

②學時少,內容多,尤其實踐學時太少。對于這一問題,通過鼓勵學生將學習板帶回寢室學習,得以適當緩解。

③軟硬件知識如何平衡。對于不同專業的學生,需求是不同的。計算機專業的學生,偏向于軟件方面;電子專業的學生,偏向硬件方面;自動化專業的學生,則更偏向于接口控制與通信方面。

④如何與其他相關課程的實踐課相互有機結合,在有限的學時中做到相互促進、相互兼顧,并能完成相關知識點全覆蓋。

[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.

猜你喜歡
單片機教學學生
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
趕不走的學生
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
學生寫話
學生寫的話
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: 欧美啪啪网| 亚洲第一成年免费网站| 国产综合另类小说色区色噜噜| 97久久超碰极品视觉盛宴| 亚洲热线99精品视频| 亚洲毛片一级带毛片基地| 国产在线专区| 色网站在线免费观看| 国产亚洲精久久久久久无码AV| 日韩中文字幕免费在线观看| 青青青国产免费线在| 无码国内精品人妻少妇蜜桃视频| 特级毛片8级毛片免费观看| 免费一级无码在线网站| 亚洲经典在线中文字幕| 国产成人一区在线播放| 欧美在线伊人| 天堂亚洲网| 欧美色视频日本| 国产拍揄自揄精品视频网站| 青青草原国产一区二区| 重口调教一区二区视频| 国产SUV精品一区二区6| 刘亦菲一区二区在线观看| 免费在线a视频| 欧美亚洲第一页| 四虎免费视频网站| 日韩欧美中文在线| 亚洲最大福利视频网| 中文无码精品a∨在线观看| 97人人模人人爽人人喊小说| 中文字幕无码中文字幕有码在线| a天堂视频| 97国产在线观看| 熟女成人国产精品视频| 国产激爽大片在线播放| 综合色在线| 亚洲中文在线视频| AV老司机AV天堂| 久久精品视频一| 久久精品视频亚洲| 亚洲一区国色天香| 亚洲中文字幕97久久精品少妇| 伊人激情综合网| 手机精品视频在线观看免费| 亚欧美国产综合| 久久黄色一级视频| 日本午夜精品一本在线观看| 永久免费AⅤ无码网站在线观看| 在线观看国产精美视频| 欧美成人手机在线视频| 久久久久国产精品熟女影院| 成人国产三级在线播放| 日韩欧美91| 亚洲色精品国产一区二区三区| 亚洲欧美日韩天堂| 国产精欧美一区二区三区| 欧美日韩中文国产| 国产日韩欧美黄色片免费观看| 天天躁夜夜躁狠狠躁躁88| 麻豆AV网站免费进入| 亚洲欧美日韩久久精品| 国产成人a毛片在线| 日韩在线视频网| 亚洲有码在线播放| 久久综合结合久久狠狠狠97色| 中国国产一级毛片| 国产欧美日韩精品综合在线| 美女黄网十八禁免费看| 一本久道久久综合多人| 99无码熟妇丰满人妻啪啪| 中文字幕色站| 丁香五月激情图片| 99re免费视频| 丁香婷婷综合激情| a级毛片在线免费| 日韩在线欧美在线| 亚瑟天堂久久一区二区影院| 最新无码专区超级碰碰碰| 色网站在线视频| 欧美视频在线不卡| 日韩国产黄色网站|