- 相關(guān)推薦
試論將μC/OS-II用于單片機教學(xué)
摘要:當前,大學(xué)中的“嵌入式系統與單片機應用”及類(lèi)似課程的教學(xué)內容和實(shí)驗正處在轉型期,由單純8位機轉向8位、16位、32位并舉;開(kāi)發(fā)方式上,仿真器在逐步退出;嵌入式實(shí)時(shí)操作系統被引入教學(xué)。本文就相關(guān)課程內容與實(shí)驗平臺方案的設計提出一些看法,以引起同行的思考與討論。引 言
??在2003年天津舉行的“全國單片機及嵌入式系統學(xué)術(shù)年會(huì )”上,來(lái)自全國各地幾十所大學(xué)的教師對單片機與嵌入式系統教學(xué)展開(kāi)了熱烈的討論。這里,就我們的認識介紹如下,以達到拋磚引玉的目的。
1 單片機與嵌入式系統應用類(lèi)課程的轉型期
當前,單片機與嵌入式系統應用類(lèi)課程正處在轉型期。過(guò)去的20年中,單片機市場(chǎng)與需求都是以8位機為主的。最近幾年來(lái),16位、32位單片機的嵌入式應用呈迅速增長(cháng)的趨勢。在一兩年后,數量上雖然仍會(huì )以8位為多,但32位單片機在產(chǎn)值上會(huì )超過(guò)8位單片機,如圖1、圖2所示。今后,單片機應用將呈現8位、16位、32位單片機并舉的格局。
由于單片機系統的需求越來(lái)越復雜、集成電路技術(shù)發(fā)展又非?,片上存儲器容量不斷擴大,使得在片上系統的開(kāi)發(fā)中,使用嵌入式實(shí)時(shí)操作系統(RTOS)成為可能。計算機對于90%以上的學(xué)生都不能是他的專(zhuān)業(yè),而只是一種工具。同各行各業(yè)開(kāi)發(fā)單片機應用的工程師一樣,非計算機專(zhuān)業(yè)的學(xué)生來(lái)自各個(gè)領(lǐng)域,他們不可能將主要精力花在研究操作系統上,而是要把主要精力放在所研究的專(zhuān)業(yè)上,他們需要的是把計算機專(zhuān)家們研究的成果直接拿來(lái)使用。RTOS可以將一個(gè)復雜的應用分解成多個(gè)任務(wù),從而簡(jiǎn)化應用程序的設計;RTOS可以保證系統的實(shí)時(shí)性達到或接近理論上可以達到的最好水平。而多任務(wù)本身會(huì )帶來(lái)一系列的問(wèn)題,主要是任務(wù)間的競爭、死鎖、優(yōu)先級反轉、任務(wù)間同步與通信等。這些問(wèn)題有RTOS為用戶(hù)考慮,只要知道RTOS的原理,會(huì )使用就可以了。故單片機教學(xué)的這次轉型,引入RTOS概念是一大特點(diǎn)。
2 單片機教學(xué)史的回顧與思考
回憶過(guò)去我國單片機教學(xué)走過(guò)的路,大多數院校都是從8051走過(guò)來(lái)的。故8051在國內普及單片機應用方面功不可沒(méi)。而總結一下由8051教學(xué)模式帶來(lái)的副作用,將有利于目前的轉型。
圖1
一個(gè)副作用是,教學(xué)中以一片8051配以不同的外圍電路去適應各種不同的應用。這就忽略了單片機應用的多樣性和單片機應用的個(gè)性化定位。單片機姓“單”,世界上的單片機至少有上千種,每種單片機都有各自的定位。我們強調的是SoC,即片上系統,只有將整個(gè)系統都集成在一個(gè)集成電路芯片上,才能做到低成本、高可靠性。只有在不得已的情況下,才擴充額外的接口芯片。故應告訴學(xué)生,雖然學(xué)的是某種單片機,但針對不同的應用要選擇最適宜的單片機。單片機教學(xué)要求教師教會(huì )學(xué)生一種方法,會(huì )用這種單片機,自然也會(huì )用其它單片機。
過(guò)去8051教學(xué)引入的另一誤區是使用仿真器。如果說(shuō)過(guò)去開(kāi)發(fā)掩膜型單片機使用仿真器屬不得已,則如今單片機都采用了可以反復擦寫(xiě)十萬(wàn)次以上的Flash存儲器,實(shí)在沒(méi)有必要使用仿真器。本人在過(guò)去20年的單片機應用開(kāi)發(fā)中,就從來(lái)沒(méi)有用過(guò)仿真器,并非沒(méi)有仿真器可用,只是不主張使用仿真器,特別不主張使用仿真器教學(xué)。仿真器使單片機開(kāi)發(fā)變得不直觀(guān),高價(jià)的仿真器增加了開(kāi)發(fā)成本,也增加了教學(xué)的負擔。開(kāi)發(fā)者不可能為每一類(lèi)單片機買(mǎi)一種仿真器,只好以自己有仿真器的那種單片機去適應所有的應用,從而誤入歧途。
3 是教學(xué)還是培訓
我們這里講的是教學(xué),不是培訓,教學(xué)不同于培訓。俗話(huà)說(shuō),“授之以魚(yú)不如授之以漁”。教學(xué)是“授之以漁”,授之以解決問(wèn)題的方法,培養解決問(wèn)題的能力,是引導學(xué)生入門(mén)。通過(guò)授課與實(shí)驗,要求學(xué)生能做到三個(gè)看懂,看懂原文手冊、看懂硬件原理圖、看懂別人寫(xiě)的程序。在此基礎上學(xué)會(huì )如何掌握一種自己不熟悉的單片機。我們講CPU硬件結構,講匯編指令集,教學(xué)生如何初始化串行口,從而實(shí)現與單片機的CPU“對話(huà)”,進(jìn)而學(xué)會(huì )寫(xiě)監控程序,然后將如何與C語(yǔ)言接口,以μC/OS-II為例,講RTOS基本概念,進(jìn)而移植μC/OS-II。
培訓的目的是讓用戶(hù)盡快上手,一周乃至三天后就可以開(kāi)始寫(xiě)應用程序。培訓是“授之以魚(yú)”,培訓的典型例子是教學(xué)生如何使用某單片機的仿真器。
教學(xué),強調的是引導學(xué)生入門(mén),只要我們能正確地引導學(xué)生入門(mén),告訴他們什么是正確的方法,后面的路他們會(huì )自己走。
4 將μC/OS用于RTOS教學(xué)
1995年以后,我們逐漸將μC/OS、μC/OS-II引進(jìn)單片機應用的科研與教學(xué),證明是成功的。μC/OS、 μC/OS-II是專(zhuān)門(mén)為嵌入式應用設計的實(shí)時(shí)內核,適用于幾乎所有8位、16位、32位單片機;90%以上與硬件無(wú)關(guān)的代碼用C語(yǔ)言寫(xiě)成,用匯編語(yǔ)言寫(xiě)的與硬件相關(guān)的代碼不足200行;有PC機上可運行的范例;有針對數十種知名CPU的移植范例可直接從網(wǎng)上下載;有注解清晰、書(shū)寫(xiě)規范的全部源代碼。有一部600頁(yè)的書(shū)對RTOS基本概念、內核原理做了詳盡的描述,隨書(shū)所附光盤(pán)上的μC/OS-II V2.52通過(guò)了美國航空航天管理局的安全認證,可用在與人性命攸關(guān)的控制系統中,是一部科學(xué)、實(shí)用的好教材。該內核的前身是μC/OS,最早的版本是為Motorola 增強型8位單片機68HC11 CPU寫(xiě)的。68HC11曾經(jīng)是世界上產(chǎn)量排名第三的(第一是68HC05,第二是8051)著(zhù)名單片機CPU。1995年前后,我們曾以68HC11作為單片機應用的教材,并出過(guò)一本《MC68HC11單片機開(kāi)發(fā)技術(shù)》的教材,清華大學(xué)出版社出版。目前,68HC11逐漸被與之指令集在源碼級兼容的 CPU12 替代,故我們的研究生教學(xué)也將順勢轉向采用16位的CPU12 單片機。
我不主張將嵌入式Linux、μClinux等用于教學(xué)。它缺乏適當的定位,雖然有源碼,但并沒(méi)有一本適于做教材的書(shū)籍,對于非計算機專(zhuān)業(yè)的學(xué)生來(lái)說(shuō)太難了,也沒(méi)有必要花那么多的時(shí)間去摳懂。將μClinux移植到不同32位系統上是計算機專(zhuān)家的事,非計算機專(zhuān)業(yè)的人士,僅僅是使用而已。對于計算機專(zhuān)業(yè)的學(xué)生,操作系統是必修課,有一部很好的教材,Andrew S. Tanenbaum等著(zhù),王鵬等譯 《操作系統設計與實(shí)現》(第2版),電子工業(yè)出版社出版。這本書(shū)講的是Minix,實(shí)際上是簡(jiǎn)化了的Unix、Linux。學(xué)過(guò)這部教材,進(jìn)而掌握Linux原理就不難了。μClinux等嵌入式Linux不是實(shí)時(shí)的,僅對Linux做了簡(jiǎn)化,使之可用于嵌入式應用,但作不到SoC。學(xué)習簡(jiǎn)化的Linux,不如選用Minix。當然,μClinux可用于針對某特定應用的培訓。運行μClinux至少需要512KB的 SDR
【試論將μC/OS-II用于單片機教學(xué)】相關(guān)文章:
μC/OS-II在凌陽(yáng)單片機SPCE061A上的移植03-18
新課程下將英語(yǔ)報刊用于寫(xiě)作教學(xué)的嘗試12-01
基于μC/OS-II的光盤(pán)伺服控制系統的設計03-18
μC/OS-II的多任務(wù)信息流與CAN總線(xiàn)驅動(dòng)03-18
一種用于單片機的紅外串行通信接口03-18