- 相关推荐
试论将μ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