【摘要】本文分析了嵌入式系统开发与应用课程教学内容的内涵,阐述了在嵌入式系统教学中开展μC/OS-II教学的必然性。从μC/OS-II的内核和在Cortex-M3上的移植及实例开发角度,分析了嵌入式系统开发与应用教学的难点。对电子信息类本科专业开展嵌入式系统开发与应用教学内容的安排、教学难点,教学和实验方法进行了探讨。从实践的效果来看,本文方法对嵌入式系统开发与应用课程的教学内容、教学方法及实验安排具有一定的指导意义。
【关键词】Cortex-M3;?C/OS-II;嵌入式系统开发与应用;本科教学
1.引言
ARM是目前嵌入式领域应用最广泛的RISC微处理器,它以低成本、低功耗、高性能等优点占据了嵌入式系统应用领域的领先地位。当前ARM系列的处理器有ARM7、ARM9、ARM9E、ARM10、ARM11等多个产品。Cortex-M3内核是ARM公司于2006年推出的一款高性能处理器内核,是ARM新型V7指令集结构系列的微控制器版本,可用于企业应用、汽车系统、家庭网络和无线技术等领域。其主要特点是:
(1)功耗低;
(2)内核的门数少,具有优异的性价比;
(3)中断延时短;
(4)调试成本低;
(5)具有嵌套向量中断控制器(NVIC),与处理器内核紧密结合实现低延迟的中断处理;
(6)具有可裁减的存储器保护单元(MPU),用于对存储器进行保护。
Cortex-M3内核的处理器本身的资源不是特别复杂,特别适合高等院校本科生对ARM的体系结构学习,可移植小型开源操作系统UCOS-II,能加深学生对嵌入式操作系统认识。
2.Cortex-M3+?C/OS-II嵌入式系统开发与应用教学内容
《Cortex-M3+?C/OS-II嵌入式系统开发与应用》课程是电子信息类的一门专业课。该课程的主要任务是:通过本课程的学习,使学生对嵌入式系统原理与技术有系统的、全面的了解;掌握嵌入式处理器的概念、组成和体系结构特点;通过对?C/OS-II详细剖析,掌握RTOS实时操作的原理,对其内核结构、任务调度等有深入的了解,培养嵌入式系统的设计和开发应用能力。
通过学习本课程后,应达到下列基本要求:
(1)具有一定的计算机体系结构、操作系统、接口与通信等专业基础理论知识;
(2)熟悉基于Cortex-M3架构的微处理器体系结构及应用特点,用?C/OS-II进行应用开发的技术点;
(3)了解LCD、UART、IIS、I2C等常用外设的设计和开发,为实际应用开发打下基础。
3.Cortex-M3+?C/OS-II嵌入式系统开发与应用教学的难点
学习嵌入式的重点和难点关键在操作系统,如果没有掌握操作系统,笔者认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,那是浮在表面的,很难深入和提高自己的层次。选择μc/os-II这样的小型操作系统,对本科教学最为合适。本课程教学的难点在于:
(1)Cortex-M3指令集
ARM7、ARM9内核都支持有ARM指令集和Thumb指令集,目前的Cortex-M3内核是Thumb-2指令集。了解Thumb-2指令集,可以更深层次的理解Cortex-M3的启动过程。
(2)μc/os-II操作系统
实时操作系统μC/OS-II是一个基于优先级的抢占式实时内核,程序可读性强,移植性好,代码固定,可裁剪,非常灵活。至今,从8位到64位,μC/OS-II已在超过40种不同架构的微处理器上运行。μC/OS-II的主要特点有:是优先级可剥夺的实时多任务操作系统;可处理和调度56个用户任务,任务的优先级可以动态调整;提供任务间通信、同步使用的信号量、邮箱和消息队列;具有良好的可裁剪性,可尽量减小系统的ROM和RAM大小。
(3)寄存器配置
Cortex-M3系列微处理器,可以有众多的片内外设。不同的需求有不同的配置,它的寄存器配置是学习中的重点与难点。
4.Cortex-M3+?C/OS-II嵌入式系统开发与应用教学与实验方法
首先改善教学方法。考虑到目前的本科课程门类已大为增加,任何一门非公共课的学时都不会很多。显然,突出要点才能更有效。建议这门课可安排32学时理论课,另加16学时实验课。这就要求主要以引导性教学为主。例如对嵌入式系统的教学就不能像C或汇编语言那样逐条语句讲授,而是应结合具体实例讲解寄存器配置与片内外设接口。
其次是注重教学实践性。本课程具有很强的实践性。针对性强的实验应该是教学的重要环节,嵌入式系统实验更应注重实验质量,而决非仅使用ARM开发软件。先熟悉开发环境,但这并非嵌入式系统实验的关键。因为ST公司对Cortex-M3的大力开发,有很多库文件,给开发者带来很大的便利。如全国大学生电子设计竞赛时间短,编程量大,程序结构让参赛者陷入困境,选择Cortex-M3的系统可以加快开发速度。因此,嵌入式系统课程的实验,除了必须完成的基础性项目外,引导学生完成一些传统单片机不能实现的内容,从而突出Cortex-M3系统设计的优势。例如TFT LCD显示+触摸屏,重点在人机界面;UART、PS/2或USB接口,关注通信协议与寄存器配置;μC/OS-II应用突出了实时操作系统的多任务操作实现等。在这些实践过程中,会使学生发现,诸如ISP下载方式、ARM指令与寄存器等本身都成了配角,而唯有更高质地完成实验项目而不懈追求的设计能动性和创造性成了主角,从而有效提高这门以培养工程实践能力为主的教学效果。
再次就是注重实用。教学内容上,在讲清内容的同时,对每部分内容均需安排有针对性的教学实验。对设置的大部分的实验除给出详细的实验目的、实验原理、实验思考题和实验报告要求外,还应包含3种实验项目,即:基础实验项目是与该部分内容相关的接口实验,对于该部分实验,学生只须将提供的程序输入到计算机,并按要求进行编译通过,并在实验系统上实现即可;功能实验项目是在上一实验基础上进一步发挥性实验;系统实验项目属于自主设计或创新性质的实验。这样,学生就可以循序渐进进行多层次的实验项目。
最后,注重系统调试。一般认为嵌入式系统技术难点和学习费时的根源在于存储器配置。对此,根据电子类专业的特点,教师需放弃流行的ARM的教学模式,放弃常规的教学思路,以ARM体系结构为基点,从实例介绍中引出寄存器配置内容,通过少数几个简单、直观、典型的实例将寄存器配置中最核心、最基本的内容解释清楚,使学生在很短的时间内就能有效地把握片上外设的配置,而不必花费大量的时间去“系统地”学习ARM指令与接口内容。要求教师从时间中抓效益,从效益中提高学生学习与研究能力的培养。
总之,高校教师需力争在不增加课时的情况下,保持嵌入式系统教学内容的系统性和完整性,使学生通过大量寄存器配置,掌握嵌入式系统开发方法。通过接口实验,初步掌握ARM技术最基本的内容。同时通过向几个典型实用示例的设计练习,使学生在只有微处理器基础知识的条件下即能迅速学会使用Cortex-M3库文件编程的设计方法和学会利用μc/os-II完成较复杂系统的多任务设计实验真正达到培养创新型人才培养的目的。
参考文献
[1]陈瑶等.Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用[M].人民邮电出版社,2010.
[2]李宁.基于MDK的STM32处理器开发与应用[M].北京航空航天大学出版社,2008.
[3]李宁.ARM开发工具RealView MDK使用入门编著[M].北京航空航天大学出版社,2008.
[4]ARM Limited.Cortex-M3 Technical Reference Manual.2005.
本文获2012年上海理工大学重点课程建设基金资助(NO:20090702)。
作者简介:张会林(1971—),男,安徽宿松人,博士,副教授,主要从事嵌入式系统开发与应用方面的教学与科研。