嵌入式软件实验教学系统建设

时间:2022-07-07 10:12:06

嵌入式软件实验教学系统建设

摘要:本文以培养适应社会需求的嵌入式软件开发人才为目标,分析了嵌入式软件系统结构及开发内容、嵌入式软件开发方式的特殊性以及业界对嵌入式软件开发人才的知识体系结构需求,描述了嵌入式软件实验教学系统的多种配置方案、多层次实验项目的构成,并总结了如何开展好实验教学、提高教学质量。

关键词:嵌入式软件;实验教学系统

中图分类号:G64 文献标识码:A

文章编号:1672-5913 (2007) 15-0027-04

Experimental Teaching System Construction for Embedded Software

Abstract:To train up a good deal of embedded software development talents adaptable to the society requirements, the embedded software system’s architecture and development contents are analysed in this paper, as well as the particular fashion of embedded software development and the developers’ knowledge system structure required by the community.

Several configuration schemes for embedded software experimental teaching system are also described in this paper, as well as the construct of multiple levels’ experimental projects. In the end, how to doing experimental teaching well and raise the teaching quality are summarized. This paper is a summarization for the many years’ embedded software practical teaching work by the authors. We hope that it could bring some enlightening reference to the community, and establish a basis for our next improvement.

Key words:embedded software; experimental teaching system

“嵌入式软件开发”是一门实践性相当强的课程,学生在学习了相关理论知识之后,如何能从实践的角度掌握更实用的开发方法和技能,是我们在规划、完善嵌入式软件教学体系中重点关注的问题。为此,我们以培养适应社会需求的嵌入式软件开发人才为目标,充分研究了嵌入式软件系统结构及开发内容、嵌入式软件开发方式的特殊性以及业界对嵌入式软件开发人才的知识体系结构需求,开发了以多种配置方案、多层次实验项目为主要内容的嵌入式软件实验教学系统。

1嵌入式软件系统结构及开发内容

嵌入式软件系统的典型结构如图1所示。

因此,嵌入式软件的开发自下而上可分为以下几种层次:

编写简单的板级测试软件,主要目的是辅助硬件的调试

(1) 开发基本的驱动程序(不针对特定的嵌入式操作系统)

(2) 开发特定嵌入式操作系统的驱动程序(即板级支持包BSP――Board Support Package,包括目标板的初始化、中断管理以及一些简单的驱动程序单元)

(3) 开发嵌入式系统软件,如嵌入式操作系统

(4) 开发嵌入式中间件,如嵌入式CORBA、嵌入式JAVA等

(5) 开发嵌入式应用软件

2嵌入式软件开发方式的特殊性

嵌入式软件开发方式有其特殊性,具体体现在如下几个方面:

(1) 开发方式:采用交叉开发的方式。这是与桌面软件开发不同的地方,其开发环境的建立相对复杂,不仅要安装开发工具软件,还需配置特定的目标硬件平台,并在开发平台与目标平台之间建立有效的物理连接和逻辑连接,相关概念易产生混淆。

(2) 对开发工具的要求比较高:一则需要有功能强大的集成环境提升开发过程的便捷性,二则不管是进行调试还是测试,均要求在目标端有相应的模块,以支持宿主端功能的实现,模块可以是用软件实现的,也可以是由硬件实现的。

(3) 硬件平台丰富多样,有共性,也有较大的差异性。据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种体系,主流的体系有ARM、MIPS、PowerPC、SH、X86,广泛应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表、办公自动化等领域。教学中应考虑采用各种典型的硬件平台,让学生学到的知识更能接近社会的需求。

3嵌入式软件开发的知识体系结构

嵌入式软件开发的范围和内容涉及很多方面,与桌面软件开发不同,业界对嵌入式软件开发人才有更多的要求:不仅要懂软件,还要具备基本的硬件知识。具体来讲,除具备计算机基础理论知识如计算机组成原理、操作系统、汇编语言、C语言、程序设计思想和方法等外,嵌入式软件开发的知识体系结构中还要求如图2所示的内容:

4实验系统构成及配置

嵌入式软件开发实验系统一般由下列元素组成:

(1) 嵌入式系统芯片及开发板(或评估板)

(2) 嵌入式软件开发工具(或集成开发环境)

(3) 嵌入式操作系统(可选)

(4) 其他监测仪器(硬件相关,可选)

(5) 实验项目

(6) 配套资料,如实验教学大纲、参考实验程序、参考实验报告、实验课件、实验教材。

针对嵌入式系统芯片及开发板、嵌入式操作系统及嵌入式软件开发工具多样性的特点,我们通过与嵌入式硬件厂商、软件供应商的广泛交流与合作,利用多方资源建设与丰富实验系统,规划和实现了多种配置的实验系统,可以配套具有不同教学侧重点的嵌入式软件课程,灵活性大。在配置实验系统时我们基于如下的一些考虑:

硬件平台方面:主要考虑选择属于不同系列的嵌入式微处理器构建目标平台,目前有如下几种配置:

(1) 嵌入式仿真PC平台

用软件仿真的方式在PC机上模拟一个嵌入式目标平台,学生利用PC机就可以自己动手搭建嵌入式系统的开发环境,熟悉应用开发,更快捷方便地学习和理解嵌入式系统的基础知识。基于这样的基础,再在真实的嵌入式目标硬件平台上进行开发,经历从纯软件到软硬件结合、从“纸”上谈兵到“板”上谈兵的一个学习实践过程,逐步递进,由浅入深,就能更加系统、透彻地掌握嵌入式软件开发的知识和技能。

(2) 基于ARM7的嵌入式硬件平台

ARM(Advanced RISC Machine)是目前业内主流的嵌入式微处理器系列,在众多的嵌入式领域中得到应用,已成为业界公认的嵌入式微处理器标准。ARM7在整个ARM系列中位于中低端的位置,采用ARM7为核心的嵌入式硬件板作为目标平台,既能让学生从一开始就了解和熟悉业内主流和先进的嵌入式微处理器的知识,又能降低实验系统构建的成本,便于普及。

(3) 基于SH3的嵌入式硬件平台

SuperH(简称SH)是由renesas(瑞萨)公司开发的用于高性能价格比、小型化和高性能功耗比的嵌入式RISC处理器。Renesas也是目前位居业界前列的微控制器供应厂商,其SH系列的嵌入式微处理器在汽车电子、网络设备、办公自动化设备、家用电器、工业设备等领域被广泛应用。

软件平台方面:

(1) 嵌入式操作系统:一种方案是采用开源的嵌入式操作系统作为学习和使用对象,例如uC/OS-II。由于开放源代码,学生能够看到嵌入式实时操作系统尤其是内核的典型实现,能够更好地激发他们的学习兴趣,可自己尝试修改如调度算法之类的内部机制,对于他们掌握好相关理论知识和提高实践水平很有好处。另一种方案是选择商用嵌入式操作系统,这些操作系统厂商可提供针对教育的版本,比如北京科银京成技术有限公司推出的国产自主品牌嵌入式实时操作系统DeltaOS。主流的商用嵌入式操作系统经过了市场应用的考验,在功能、性能、稳定性和可靠性方面都有较大优势,让学生学习了解它们也是有好处的。

(2) 嵌入式软件开发工具:尽量采用集成化程度高的、使用方便、易学习掌握的工具。因为在教学中工具不是重点,但又是实现开发所必需的。选择好的工具能让学生尽快熟悉嵌入式软件开发的过程尤其是交叉开发的方式,尽快跨越工具关,建立起开发环境,以便在有限的课时中把精力集中在嵌入式操作系统、嵌入式微处理器编程、驱动开发、应用软件开发等重点内容上。

基于上述考虑,我们规划的不同方案的实验系统配置如表1所示。

5实验项目体系设计

实验项目的设计遵循下面的一些原则:

(a) 由浅入深,由易到难

(b) 由硬件到软件、自下而上

(c) 由基础到综合、由验证到创新

基于这样的原则,我们设计的实验项目可分为以下类型:

(1) 嵌入式开发环境的建立:包括仿真开发环境的建立、交叉开发环境的建立,让学生体会不同开发方式的要点和差异(包括宿主平台及目标平台的软硬件配置、软件工具的安装及配置、硬件线路的制作及连接、物理连接的验证、逻辑连接的验证等),掌握开发工具的基本使用,熟悉嵌入式软件运行的载体――嵌入式目标平台;

(2) 嵌入式微处理器编程基础实验:包括汇编指令实验、处理器工作模式实验、存储器实验、I/O接口实验、中断实验等;

(3) BSP及硬件驱动开发实验:包括板级初始化、系统自举程序(boot loader)、实时时钟和定时器驱动、网络接口驱动、键盘驱动、显示(如LCD)驱动、串行总线(包括UART/USB/I2C等)驱动、多媒体接口设备(比如音频)驱动、可编程I/O端口操作等;

(4) 嵌入式系统软件开发实验:比如嵌入式操作系统内核移植、嵌入式操作系统组件(如GUI等)移植、开放源代码的嵌入式内核机制改造等;

(5) 嵌入式操作系统应用基础实验:对嵌入式操作系统尤其是内核的基本管理功能的验证性实验,包括任务管理、信号量机制、消息传送机制、优先级反转及解决策略、内存管理等,帮助学生掌握嵌入式操作系统的基本原理和使用。这类实验比较简单,只突出某一方面的主题;

(6) 嵌入式操作系统应用综合实验:学生在全面掌握基础理论知识和具备一定动手能力后,掌握嵌入式软件开发的过程和方法,将所有的基础软件部件贯穿起来,比如将嵌入式实时内核、文件系统和TCP/IP网络协议栈、嵌入式GUI进行综合应用;

(7) 嵌入式中间件应用实验:比如嵌入式JAVA程序设计、手机Java应用开发等;

(8) 嵌入式系统应用综合设计实验:从底层硬件的扩展和设计,到驱动开发,再到上层应用软件的设计,完成复杂应用开发。帮助学生了解真实的应用,并锻炼自己分析和解决问题的综合能力,掌握系统分析、设计及编程、调试和固化等多方面的技能。

6如何提高实验教学质量

(1) 积累、完善相关素材和配套资料(包括实验教学大纲、参考实验程序、参考实验报告、实验课件、实验教材等),进行充分的准备。

(2) 规划好实验步骤,规范化实验课程程序,完善相关管理制度,比如:将实验步骤以实验指导书的形式体现;实验前由老师讲解,并演示操作步骤;学生开始实验操作前教师明确实验项目的目标和要求,在实验过程中适时提供指导;实验结束后要求学生按标准格式书写实验报告,教师及时批改和总结。

(3) 根据所配套的理论课程,将实验项目合理组合搭配:在实验教学课时有限以及实验设备资源不是很充足的情况下,为了尽量多地让学生掌握嵌入式软件开发的知识和能力,对上述不同硬件平台和软件版本的实验系统进行选择,对不同类型的实验项目进行组合搭配,以取得更好的教学效果。

(4) 根据实验内容的难易程度和工作量大小,改变实验小组的构成形式。对于简单的和工作量小的实验项目,可要求学生独立完成。而对于综合性和创新性的实验,一般不是能由单个人独立完成的,需要学生们组成设计小组,协同分工,共同完成。

(5) 创新实验考核方式。针对不同类别的实验,采取不同的考核方式。对于一些简单的验证性实验,由教师直接在实验课上考核,在学生完成实验项目后检查其完成情况,酌情打分;另一方面,对学生提交的实验报告进行评价,关注他们是否能提出一些心得体会,以及对实验的建议。对于综合性的设计实验和创新性实验,关注学生个体或团队开展实验的过程,要求他们提交更为详细的实验报告,以及在实验过程中产生的其他工作产品(除了软件程序本身外,还要求有完善的设计文档),评价他们是否掌握了提出问题、分析问题和解决问题的基本方法,是否具备将相关理论和实践知识融汇贯通、举一反三的能力。

7结语

在现今计算机技术迅速发展和纵深应用的后PC时代,嵌入式系统的应用无处不在,业界对于嵌入式系统开发人才的需求与日俱增。这种人才需求不仅是数量上的,更是品质上的。国内各高校、职业技术学院及培训机构的嵌入式相关理论与实践课程的开设也从客观上证明了这种需求。本文是对作者多年嵌入式软件实践教学工作的总结,希望能给同业者带来一些启示和参考,也作为自身下一步工作改进的基础。

参考文献

[1] 罗蕾. 嵌入式实时操作系统及应用开发[M]. 北京:北京航空航天大学出版社,2005.

[2] 陈天洲. “嵌入式系统概论”课程设计[J]. 北京:计算机教育,2006,4.

[3] 王志军. 解构北京大学嵌入式系统课程建设[J]. 北京:计算机教育,2006,5.

[4] 侯晓峰. 嵌入式系统邀请赛――不仅仅对学生有益[J]. 北京:计算机教育,2006,5.

收稿日期:2007-04-11

作者简介:陈丽蓉(1972-),女,四川双流人,讲师,工学硕士,研究方向:嵌入式操作系统及应用开发;罗蕾(1967-),女,四川丹棱人,教授/博导,工学硕士,研究方向:嵌入式基础软件。

上一篇:理性思维在动画设计中的教学意义 下一篇:高校毕业生就业困难的原因与对策探析