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