基于软硬件互补的嵌入式系统课程教学

2015-03-11 06:40何如海王永梅范国华马慧敏
关键词:嵌入式系统教学改革

焦 俊,何如海,王永梅,范国华,马慧敏

(安徽农业大学 1.信息与计算机学院2.经济技术学院,安徽 合肥 230036)



基于软硬件互补的嵌入式系统课程教学

焦俊1,何如海2,王永梅1,范国华1,马慧敏1

(安徽农业大学 1.信息与计算机学院2.经济技术学院,安徽 合肥 230036)

摘要:本文分析了当前嵌入式系统课程教学方面存在的问题。围绕嵌入式系统课程的教学内容,提出了嵌入式软硬件互补的教学方法。在嵌入式系统互补教学、疑难问题解决和实验设计几方面,以具体实例阐述了软硬件互补教学的具体措施。教学实践表明,软硬件互补教学方法能够有效解决课程中的难点,提高学生对课程的掌握程度。

关键词:软硬件互补;嵌入式系统;教学改革

嵌入式系统(Embedded Systems)是指“嵌入到对象体系中的、用于执行独立功能的专用计算机系统”。嵌入式是目前最活跃、最具有创造力的技术之一,在智能仪器仪表、消费电子、国防和工业控制等方面都有着广泛的应用[1-2]。

国内大部分高等院校都将嵌入式系统作为计算机、信息技术、电子、通信等专业的必修课程。在2004年,IEEE(Institute of Electrical and Electronics Engineers)认为嵌入式系统包括嵌入式微处理器、实时操作系统和嵌入式软件设计等课程。国内开设嵌人式系统课程的高校是通过增设一门或几门嵌入式相关的课程来弥补基础的不足,显然这是不够的[2]。因此,如何充实学生在嵌入式系统课程上的薄弱环节,提高嵌入式系统课程的教学质量,培养出满足社会需求的创新型嵌入式系统开发人才,是各个开设嵌入式系统课程高校面临的实际问题。本文以农林院校电子信息专业学生开设嵌入式系统设计课程的教学进行研究和探讨,寻求一套行之有效的教学方法。

1嵌入式系统课程教学中存在的问题

学习“嵌入式系统”课程前,需要先修“数字电子技术”,“计算机程序设计”,“计算机组成原理”,“微机接口”等基础课程。“嵌入式系统”的教学主要分为两类:一类是硬件,以嵌入式处理器为核心;一类是操作系统,以嵌入式操作系统(比如:Linux或wince)为主[3]。由于学时数以及专业方向要求的限制,该课程的教学只能属于其中的一类。

随着嵌入式技术的不断发展,嵌入式系统的内容更新很快,而且具有高度的学科交叉特点。因此,“嵌入式系统”的教学要紧跟产业和技术的发展,更新教学内容,培养学生感受和理解技术进步的过程以及自主学习的基本能力。然而,目前的“嵌入式系统”的教学还没有做到根据应用的发展和需求的变化来调整授课内容、授课思路和授课方式。主要体现在以下几方面:①部分高校对嵌人式技术的概念理解模糊,对教学内容了解不深入,难以将嵌入式内容与前期课程的内容结合起来,缺乏全局观念。②教材在章节的安排上将硬件和软件分裂开来,教材缺乏具有可操作性的实例,使学生感到抽象和难以理解,学习效果有限;③由于学生没有实际工作经验,而且现行的实验教学大都是利用实验箱的验证性基础实验,学生缺乏综合设计的思路和体验,实验体会不深,无法掌握嵌人式系统软硬结合的设计方法[4]。鉴于上述嵌入式系统课程教学中存在的问题,本文结合实际教学实践,采用软硬件互补的方法对该课程教学。

2软硬件互补教学

在嵌入式系统软硬件互补教学过程中,强调软件知识与硬件知识的互补性[5],对于难以理解的硬件或软件知识点,通过结合相应的软件或硬件知识来阐述,由此来激发学生的学习兴趣,引导学生深层次思考,举一反三,提高教师教学和学生学习效果。

2.1软硬件互补教学

现有的嵌入式系统教材,大都将嵌入式系统的硬件和软件知识在教材的章节编排上分开,产生软硬件脱节现象,使学生觉得嵌入式系统难学难用,教学效果不理想。软硬件互补教学是在硬件学习中增加软件实现,软件学习中添加硬件分析内容,使学生同步获得嵌入式系统的软硬件知识。例如,在讲解有关ARM处理器结构中指令流水线知识时,“三级流水线结构的R15保存的不是当前指令地址,而是当前指令地址+8”[5],很多学生对此难以理解。为此,实验时,在ARM的IDE(Integrated Develo- pment Environment)中写一条指令:MoV R0,PC,执行到该语句时记下当前PC值(假设为0x2000),然后单步执行该语句后观察R0的值为0x2008,此时“[PC]=当前指令地址+8”。

图1 ARM的三级流水线

从图1的ARM的三级流水线结构可知,流水线使用3个阶段,指令分3个阶段执行,其中,

取指:从存储器装载一条指令。

译码:识别将要被执行的指令。

执行:处理指令并将结果写回寄存器。

上述每一操作都需要一个时钟周期,因此一条正常的指令需要3个时钟周期才能完成。由于流水线分为3段,在每个时钟周期内可以完成一条指令。从图1可见,当第一条指令执行时,CPU开始对第三条指令取指,即在三级流水线中,R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令,因此“[PC]=当前指令地址+8”。

图2 ARM的五级流水线

这样使学生对三级流水线的指令执行有一个感性认识,那么学生会问五级流水线的[PC]=当前指令地址+16?七级流水线的[PC]=当前指令地址+24?答案是否定的。ARM9的五级流水线分为:取指、译码、执行、访存、写回,流水线深度是五段,其中,取指、译码和执行的功能与三级流水线的功能一致。

缓冲/数据:如果需要,则访问数据存储器,否则ALU只是简单地缓冲一个时钟周期,以便实现所有的指令具有同样的流水线流程。

回写:将指令产生的结果回写到寄存器堆栈,包括任何从存储器读取的数据。

当第一条指令执行时,第三条指令正在取指,所以ARM9与ARM7一样:[PC]=当前指令地址+8。

那么,流水线级数是多好还是少好呢?流水线级数越多,对硬件的要求会更高,增大指令的吞吐量,每一段所做工作会减少,处理器可以以高频率运行,提高运算性能,但是带来了增加流水线延迟的问题,所以流水线深度并不是越深越好。从ARM9开始,流水线就变成了哈弗结构,而ARM7还是冯·诺依曼结构。冯·诺依曼结构的指令和数据单一存储,统一编址,指令和数据不能同时存取,所以储存器访存指令(LDR、STR)会严重阻塞流水线,造成效率下降;哈弗结构的指令和数据分开存储,独立编址,流水线上的“取指”和“访存”可以并行,执行效率更高。

这样,可以使学生加深理解R15中保存当前指令的地址与硬件关系。

2.2软硬件互补解决课程难点

嵌入式系统涉及很多的概念理论,学生难以在短时间内全面掌握完整的基础理论知识,所以学生普遍认为该课程较难,若能将这些理论通过软硬件互补教学法进行阐述,可以使复杂问题简单化,抽象概念具体化,从而有效地化解教学中的疑点和难点。比如,在ARM处理器的汇编语言中,为什么会对指令语法格式中的的常数表达式做出如下规定:该常数必须对应8位位图[7],即常数是由一个8位的常数循环移偶数位得到。要理解这个问题,首先要让学生理解ARM指令系统的语法格式。ARM体系结构主要采用了RISC处理器设计中的若干特征,固定32位指令,指令的语法格式分为如下几个部分:

〈opcode〉{}{S}

〈Rd〉,〈Rn〉{,〈op2 〉}

其中,Opcode指令助记符;Cond指令执行条件;S是否影响CPSR寄存器的值,书写时影响CPSR,否则不影响;Rd目标寄存器;Rn第一个操作数的寄存器;op2第二个操作数。

指令编码格式为:

31-2827-2524-212019-1615-1211-0cond001opcodesRnRdop2

当第op2的形式为#immed_8r常数表达式时,该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到。因为ARM处理#immed_8r这个32位数时,它是由一个8位数(比如01011010,即0x5A)通过循环移位偶数位得到(1000 0000 0000 0000 0000 0000 0001 0110),就是0x5A通过循环右移2位(偶数位)得到的。而1010 0000 0000 0000 0000 0000 0001 0110,就不符合这样的规定,编译时会出错。因为这个数不能通过将1011 0101循环右移位偶数位得到。

从指令编码格式中的op2所占的12位数可以发现,要用一个12位的编码来表示任意的32位数是不可能的。因为12位数有2^12种数,而32位数有2^32种数,要用12位的编码来表示32位数,只有在表示数的数量上做限制。通过编码来表示32位数,在12位的op2中8位存数据,4位存移位的次数。其中:

8位存数据:表示该常数必须对应8位位图。

4位存移位的次数:表明只能移偶数位。

4位只有16种可能值,而32位数可以循环移位32次(32种可能),那就只能限制移偶数位。

这样解决了能表示的数据是实际数据一半的矛盾。#immed_8r常数表达式的限制,是解决指令编码的第二个操作数位数不足以表示32位操作数的有效方法。

从软件调试上理解这个概念,在ARM的IDE中输入指令:MOV R0,#0x0000F200

在反汇编的窗口发现该指令的机器码为E3A00CF2,再查阅ARM的硬件数据表,可以发现0x0000F200是由0x000000F2循环右移24(0xC×2=24)位得到。

通过这样分析,学生对8位位图的含义有了深刻的理解,掌握了ARM指令格式及编码格式,同时教会学生对难点问题的分析和解决方法。

2.3软硬件互补实验培养学生动手能力

嵌入式系统是一门注重实践的课程,通过实验学生掌握嵌入式系统开发环境、理解嵌入式基础理论、操作系统的裁剪以及程序的设计开发。实验内容不仅涉及课本内容,还涉及嵌人式领域当前的最新技术。实验内容从基础验证型实验向综合设计型过渡。通过基础验证型实验让学生掌握实验平台、开发环境和流程,掌握开发工具的使用方法,结合实验指导书对实验进行演示调试。通过综合设计型实验来综合运用嵌入式知识培养学生的实际应用能力和创新能力。

例如,在做Web服务器实验时,老师要求学生熟悉PXA270RP嵌入式实验箱,安装Redhat9在宿主PC机,并且配置好ARM Linux的开发环境[8-9],学习使用socket进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计,阅读HTTP 协议的相关内容,学习重要网络函数的使用方法。读懂HTTPD.C源代码。在宿主PC 机上使用浏览器测试嵌入式WEB 服务器的功能。

在宿主PC机端,打开一个终端Terminal,启动终端窗口。输入下列5条命令:

①给PXA270-RP目标板上电,并进入其操作界面,输入minicom。

②以root 身份登陆PXA270-RP目标板。

③将宿主PC机的根目录挂载到PXA270-RP目标板的mnt目录下,输入mount -o soft,timeo=100,rsize=1024 192.168.0.100://mnt命令。

④进入 cd /mnt/pxa270_linux/Experiment_Key/ Web文件夹

⑤运行测试程序的目标程序httpd,结果如图3。再在宿主PC 机端,打开IE 浏览器。输入:http://192.168.0.50 可以看到打开的百度首页如图4。

图3目标程序图4百度首页

经过多次修改和调试,学生看到百度首页时,就有种成就感和满足感,只有亲身经历者才能深切体会。

3结语

针对嵌入式系统概念多、难点多和实践性强的特点,提出软硬件互补的教学方法,通过软硬件互补实现教、学一体,解决课程中的难点问题,提高学生的动手能力。这种教学方法是对嵌人式教学的有益探索。依据该教学方法,对本校电子信息工程专业的学生讲授嵌人式系统课程的内容,教学实践证明,该教学方法有效地提高了教学质量和学习效果。

参考文献:

[1] 仲伟波, 包亚萍, 付跃文, 等.关于嵌人式系统教学的几点思考[J].实验室研究与探索, 2006, 12(25): 1565-1568.

[2] 孙国栋, 田萱, 张海燕. 面向物联网的“嵌入式系统”课程教学改革的探索[J]. 中国林业教育, 2014, 32(2): 69-71.

[3] 杨俊成.基于ARM的嵌入式系统教学[J].电子科技, 2012,25(9):146-147.

[4] 闻绍飞, 张石, 鲍喜荣,等.浅谈ARM7嵌入式系统的实验教学[J].实验室科学, 2009 (5):53-55.

[5] 谭会生. 基于ARM嵌入式系统的研究性教学探讨[J]. 中国电力教育, 2012 (10): 70-71.

[6] 陈志国, 傅毅, 孙俊.软硬协同在嵌入式系统教学中的探讨[J].无锡职业技术学院学报,2013,12(5): 63-66.

[7] 蒋书波, 王晓荣.嵌人式系统平台课程体系方法探析[J].中国电力教育, 2013(2): 116-117.

[8] 周立功.ARM嵌入式系统实验教程(二)[M].北京:北京航空航天大学出版社, 2005.

[9] 陈侃松, 刘洪波, 熊攀.基于ARM9的嵌入Web服务器数据动态显示的实现[J].物联网技术,2014(3): 18- 23.

Teaching of Embedded Systems Course Based on Hardware and Software in Complementary

JIAO Jun1,HE Ru-hai2,WANG Yong-mei1,FAN Guo-hua1,MA Hui-min1

(1.Information and Computer College;2.Economic and technical College,Anhui Agricultural University,Hefei 230036, China)

Abstract:This article analyzes the current existed problems for embedded systems teaching, puts forward the teaching method of embedded software and hardware complementary around the teaching content of embedded systems, expounds the concrete measures of software and hardware of complementary teaching with concrete examples in teaching, solving the problems and experimental design. The result of teaching practice indicates that the teaching method of software and hardware of complementary can solve the difficulty in the course. At the same time, student’s comprehension of course is improved.

Key words:software and hardware complementary,embedded systems, reform in education

文章编号:1007-4260(2015)03-0125-04

中图分类号:G642

文献标识码:A

DOI:10.13757/j.cnki.cn34-1150/n.2015.03.033

通讯作者:何如海,男,安徽潜山县人,博士,安徽农业大学经济技术学院副教授,主要从事教学研究工作。

作者简介:焦俊,男,江苏南京市人,博士,安徽农业大学信息与计算机学院副教授,主要从事单片机及嵌入式系统的教学研究。

基金项目:安徽教育厅省质量工程项目(2014jyxm091)和(2014tszy090)。

收稿日期:2015-02-11

网络出版时间:2015-8-25 15:40网络出版地址:http://www.cnki.net/kcms/detail/34.1150.N.20150825.1540.033.html

猜你喜欢
嵌入式系统教学改革
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
中职学校“生本课堂”的调查研究与实践
高校三维动画课程教学方法研究
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究
微课时代高等数学教学改革的实践与探索