嵌入式系统课程

2024-06-16

嵌入式系统课程(精选8篇)

篇1:嵌入式系统课程

《嵌入式系统设计》课程感想 班级:电气99姓名:王正杰学号:09095018 虽然上完了整门课,但是还是对嵌入式和嵌入式系统等最基本的概念不是很了解。于是自己动手查阅了一些资料,其中IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”(Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。国内比较认可的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、对可靠性、成本、体积、功耗有严格要求的专用计算机系统。

“嵌入式”反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。而且,嵌入的系统中可以共存多个嵌入式系统。

一个简单的嵌入式系统一般包含以下几部分:嵌入式微处理器外围硬件设备、嵌入式操作系统、特定的应用程序。可见,其实嵌入式系统就是含有微处理器和硬件接口的一个根据应用可裁剪的非标准计算机系统。

嵌入式系统的发展历史:

 嵌入式系统的出现最初是基于单片机的。

 70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。

 80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入

式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。

 目前,嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包

括工业自动化、国防、运输和航天领域。例如:神州飞船和长征火箭中肯定有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统,但未必知道它们。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑、电饭煲„)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场所甚至健身设备中都有嵌入式系统的身影。

嵌入式系统的特点:

 专用性:嵌入式系统面向用户、面向产品、面向应用,它必须与具体应用相结合才会具有生命力、才更具有优势。也正是这个原因,必须结合实际系统需求进行合理的裁减。

 嵌入性:也就是说系统和被控制的对象是紧密连接的,一般不需要人为干预,从这点上讲,也就对嵌入式系统的环境适应性、稳定性、可靠性等提出了一些要求,在进行软件和硬件设计时必须考虑这些要求。

 智能性:1.嵌入式系统需要有一个中央处理器单元(CPU),来实现对对象的智能控制。

2.嵌入式系统首先是计算机系统,其次是专用的计算机系统,这种系统有别于通用的个人电脑(PC),最后由于其专用的特点决定了其软硬件必须能够进行定制,必须能够进行裁减。

3.单片机也是属于嵌入式系统的范畴。但是由于历史的原因,单片机和嵌入式系统被许多人区分开来对待,嵌入式系统更多地被理解为使用ARM等32位嵌入式微处理器的计算机系统。4.单片机系统一般采用单任务程序或简单的多任务内核,如uC/OS-II操作系统,一般应用于一些小型应用系统中;而ARM嵌入式系统还能很轻松的运行Linux、Windows CE、VxWorks等复杂的操作系统,比较适合于设计大型应用系统。

嵌入式系统开发的分工:

1.芯片制造商:负责制造包括CPU、网卡、RAM、及Flash等芯片的厂商。

2.设备制造商:负责制造硬件开发板和产品板。3.操作系统提供者:负责提供嵌入式操作系统。4.软件开发商:负责在操作系统之上开发具有独

立功能的应用程序。

5.系统集成商:负责向最终用户提供产品解决方

案。

嵌入式开发的一般方法:

嵌入式系统的软件开发通常采用 “宿主机/目标机”方式 :

首先,利用宿主机上的丰富的资 源及良好的开发环境开发和仿真调试 目标机上的软件。

然后,通过串行口或网络将交叉 编译生成的目标代码传输并装载到目 标机上。

最后,目标机在特定的环境下运行。

几种常见的嵌入式系统:

试目标机上的软件

生成的目标代码传输并装载到目标机上

目标机在特定的环境下运行

 嵌入式Linux:

uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。

适用于没有虚拟内存或内存管理单元(MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统。

它保留了Linux的大部分优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。

 Win CE:

Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows 95。Windows CE的图形用户界面相当出色。Win CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。

 VxWorks :

VxWorks操作系统是美国公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

 Nucleus:

Nucleus PLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。Nucleus PLUS采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。由于采用了软件组件的方法,使Nucleus PLUS 的各个组件非常易于替换和复用

嵌入式系统发展趋势:

我们有理由相信计算机还将继续快速发展并进一步改变我们的生活,让计算变得“无所不能”、“无处不在”。其中“无所不能”将是人工智能技术和超级计算机的结合,而“无所不在”则是嵌入式技术应用的广阔天地,现在普通消费者已经可以从市场中买到数码相机、移动电话、打印机等众多的数码产品、航空设备、ATM机、计算机网络设备等电子产品中都用到了嵌入式技术。

通用计算机的发展变为功能电脑,普遍进入社会,嵌入式计算机发展的目标是专用电脑,实现“普遍化计算”,因此可以称嵌入式智能芯片是构成未来世界的“数字基因”。正如我国资深嵌入式系统专家——沈绪榜院士的预言,“未来十年将会产生同大小、具有超过一亿次运算能力的嵌入式智能芯片,将为我们提供无限的创造空间“。

总之,“嵌入式微控制器或者说单片机好象是一个黑洞,会把当今很多技术和成果吸引进来”。

篇2:嵌入式系统课程

设计题目:用键盘控制LED显示不同图形

中央民族大学 二零零八年十月三十一日

一、设计目的

了解LED点阵和矩阵键盘的工作原理。

二、设计内容

编写程序控制用矩阵键盘控制LED点亮,产生不同的图形。

三、设计方案

功能概述:

本设计要实现的功能是通过键盘控制LED点阵图形显示,如果键盘输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。

1、程序设计思路

本设计要实现键盘控制LED点阵图形显示,就必须要编写键盘和LED点阵的程序。先通过扫描矩阵键盘,得到键盘值,然后再调用点阵显示子函数,根据扫描的键盘值,在LED点阵上显示不同的图形。

2、主程序设计

主程序要实现的功能是矩阵键盘扫描,得到键盘值,然后把值传给LED显示函数。

程序流程图如下:

3、LED点阵显示函数设计

本函数要实现的功能是根据键盘的值,在LED点阵上显示不同的图形。如果键盘的输入值为0-9则显示相应的数字,如果输入的是其他值,则显示“+”。本程序采用二维数组存放要显示的图形的字模,然后再通过逐行扫描LED点阵,把要显示的图形分8次显示,一次显示一行,利用人眼的视觉暂留效应,是人看到的是一个图形一次显示出来,通过一个循环控制图形显示的时间。程序流程图如下:

4、点阵图形设计

根据8*8 LED点阵的原理,8X8 点阵共需要64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0 电平,则相应的二极管就亮;

先绘制出要显示的图形如下:

根据图形中点亮的LED灯的位置,得到相应图形的16进制数,存放在二维数组Buf1[11][8]中。

所以要显示的图形的字模如下:

buf1[11][8]={ {0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0

{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1

{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2

{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3

{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4

{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5

{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6

{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7

{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8

{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9

{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}

//+

};

四、程序源代码

//*************************************************************** #include #include #include #include // open()close()#include // read()write()#include

#define DEVICE_NAME “/dev/led_ary_ctl” #define DEVICE_NAME1 “/dev/keypad”

void Key(unsigned char b[]);

//------main----int main(void){

int fd;

int ret;

unsigned char buf[2];

double x;

char pre_scancode = 0xff;

printf(“n start keypad_driver test nn”);

fd = open(DEVICE_NAME1, O_RDWR);

printf(“fd = %dn”,fd);

if(fd ==-1){

printf(“open device %s errorn”,DEVICE_NAME1);}

else {

buf[0]=0x22;

while(1)

{

read(fd,buf,1);

if(buf[0]!= pre_scancode)

{

if(buf[0]!=0xff)

{

printf(“key =%xn”,buf[0]);

Key(buf);

}

}

pre_scancode = buf[0];

usleep(50000);

}

// close

ret = close(fd);

printf(“ret=%dn”,ret);

printf(“close keypad_driver testn”);}

return 0;}// end main //***************************************************************************** //---------------void Key(unsigned char b[]){ int fd;

int ret;

int i,j,k;

unsigned char buf[2];

unsigned char buf2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char buf1[11][8]={{0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0

{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1

{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2

{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3

{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4

{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5

{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6

{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7

{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8

{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9

{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}

//+

};

// begin of led ary

buf[0]= 1;

buf[1]= 0;

if(b[0]<=9)i=b[0];else

i=10;

fd = open(DEVICE_NAME, O_RDWR);

printf(“fd = %dn”,fd);

if(fd ==-1)

printf(“open device %s errorn”,DEVICE_NAME);

else {

for(j=0;j<=5;j++)

{

for(k=0;k<8;k++)

{

buf[0]=buf1[i][k];buf[1]=buf2[k];

write(fd,buf,2);

}

usleep(1);

}

// close

ret = close(fd);

printf(“ret=%dn”,ret);

printf(“close led_driver testn”);} } //-

五、设计结果

实现键盘控制LED点阵显示,输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。

六、心得体会

通过本次实验,我们对linux下的实验更加熟悉了,对LED点阵显示和矩阵键盘的原理有了深入的了解,掌握了点阵图形的设计方法和键盘的输入的读取,并把二者结合起来,实现了键盘控制点阵图形现实。

篇3:嵌入式系统课程

随着社会的发展, 社会对毕业生要求越来越高, 要想提高毕业生的就业率, 并使之能更好地适应社会对人才的需求, 高校的部分课程的教学模式与教学方法必须有所改变。嵌入式系统是一门理论性与实践都很强的学科, 它不仅需要前面一些课程理论知识的铺垫, 而且还要求同学们在课余时间加强动手练习, 所以仅凭教师在理论课讲理论, 学生在实验课完成指定实验是不够的。针对我院学生的特点, 课题组结合校园网和信息化技术开发了嵌入式系统课程辅助教学平台, 该平台通过提供与本门课程相关知识的资料、每节课需要预习的知识点, 每节实验课基本实验的演示视频, 并提供预习情况的监督功能来保证同学的预习质量。通过提供嵌入式课程设计管理功能来保证同学课余时间的动手能力, 通过提供交流论坛来为同学提供一个经验交流环境。

2. 系统设计

2.1 系统功能

根据课程建设、学院和学生的要求, 本系统需要完成功能如下:

(1) 课程要求:系统应能显示本门课的课程大纲、教学日历、课程表和相关的上课规定等文件, 让同学在上课之前对本门课的相关要求有一定的了解, 并能在系统内发布相应的公告信息。

(2) 资料共享:可以上传教师上课课件、相关辅导材料和工具软件。上传的资源不要求多, 但必须精, 因为一门课在一个学期学习内学习时间有限, 繁多的教学资料会使得同学抓不住重点。

(3) 预习管理:任课教师在课程开课前按照教学大纲和教学日历, 将上课内容按章划分好知识点, 发布在网上供学生阅读, 实验课应将实验指导书, 相关工具介绍、实验的基本操作视频放在网上, 以便学生能提前预习。学生通过用户名登录后, 对于课前预习知识点来说, 学生每次浏览知识点后, 系统就会记录下来其是否浏览过。对于实验视频演示系统, 每次学生观看, 系统会记录下来其是否浏览过, 浏览了多长时间, 并可以将此作为评判平时成绩因素之一。

(4) 交流论坛:为学生提供一个相关交流学习的一个空间, 老师也可利用解答版块解决学生提出的问题, 交流论坛不但可以回答学生在学习过程当中遇到的问题, 也可以将被解答过答案留给以后学习本门课学生的作为参考。

2.2 系统框架

本系统共五个功能模块, 分别为:公告管理模块、资源管理模块、大作业管理模块、交流论坛模块和用户管理模块。系统框图如图1所示。

3. 系统实现

本系统是在Windows XP操作系统下, Adobe Dreamweaver CS6软件环境下, 以PHP为编程语言开发完成的, 数据库采用My Sql 5.0, 系统采用通用B/S结构。

3.1 公告管理模块

该系统包括发布公告、公告管理等子功能模块。该模块可以由任课教师和管理员进行操作。

(1) 公告管理子模块

主要发布上课相关公告, 交作业时间。为了保证是学生亲自动手完成的, 每次学生交作业后, 进行答辩, 答辩的时间、地点在公告里进行通知, 每次答辩成绩和实课成绩通过公告进行发布。

(2) 公告管理子模块

主要完成公告的删除与修改功能。

3.2 资源管理模块

该系统包括上传资料、管理资料、课前预习等子功能模块。

(1) 上传资料子模块

主要完成教师上传课件、课程相关资源、实验视频等相关资料, 此子模块的功能可以由任课教师和管理员进行操作, 本子模块对资料的大小没有限制。

(2) 管理资料子模块

主要完成对上传资料的管理, 包括修改资料名称、修改资料分类、删除上传资料等。本子模块可以由管理员和任课教师进行操作。

(3) 课前预习子模块

该子模块主要完成对学生预习情况记录的功能, 如果学生下载过理论课预习资料视其阅读过, 如果学生在上实验课前浏览过教学视频且浏览时间为视频最后时间, 视为浏览过。

3.3 大作业管理模块

该模块包括教师出题子模块、学生选题子模块、学生分组子模块和上传大作业资料子模块。

(1) 教师出题子模块

教师在此子模块里出大作业的题目, 学生根据自己的兴趣选择大作业题目。

(2) 学生选题子模块

学生通过在本模块里选择自己的大作业题目。

(3) 学生分组子模块

学生选择题目之后按照教师规定的功能模块进行分组, 学生分组之后将组信息填在本子模块里。

(4) 上传大作业资料子模块

学生完成大作业后, 将答辩用PPT、相关程序和课程论文传至本模块。

3.4 交流论坛模块

该模块采用Discuz X2.5论坛模版, 主要包括前沿技术、问题讨论、老师答疑和资源共享等版块。

在这个模块里, 学生们可以讨论问题, 也可以给任课教师留言, 由任课教师回答相关问题。

3.5 用户管理模块

本系统不能用户自己注册, 所有注册均由管理员进行添加, 该子模块包括学生用户管理子模块、教师用户管理管理子模块和管理员用户管理子模块。

4. 结束语

本系统在本学期开发完成, 目前正在使用, 系统操作比较稳定, 基本上能满足辅导要求, 但是还存在如上传的资料不够精简、预习知识点不够全面等问题。

参考文献

[1]孙宝军.课程建设与大学生毕业设计互溶性的思考[J].现代计算机, 2013, 13:38-40.

[2]林祥果.基于“项目导向, 任务驱动”的高职嵌入式系统课程开发实践[J].顺德职业技术学院学报, 2012, 3:50-53.

[3]郑广海, 曲英伟.“嵌入式Linux操作系统及实践”课程改革[J].计算机教育, 2012, 4:37-40.

[4]潘巧书.计算机教学辅助系统的应用研究[J].中国电子商情:科技创新, 2013, 17:26-26.

篇4:《嵌入式系统》课程教学初探

【关键词】嵌入式系统;嵌入式技术;ARM微处理器;开发板;软件

一、目前嵌入式系统教学概况

嵌入式系统概念的提出已经有相当长的时间,其历史几乎和计算机的历史一样长。但在以前,它主要用于军事和工业控制领域,所以很少被人们关注和了解。随着数字技术、大规模及超大规模集成电路的发展和功能更强的操作系统的出现,它才被广泛应用于航天、航空、工业控制、智能手机、消费类电子产品、信息家电、安防监控、医疗仪器、汽车电子等领域。目前,嵌入式系统产品正不断渗透各个行业,并以其应用领域广、人才需求大等优势,获得更大的关注,特别是将来3G和物联网的普及与推广,应用前景非常好。基于此,我国一些高校的信息类专业相继开设了有关《嵌入式系统》的课程,但大多数是以选修课的形式开设的,课时量少,学校、教师和学生也没有对该课程的教学和学习给于足够的重视,导致教学效果不理想。尽管社会对嵌入式人才需求大,但因为我们的不重视,使得学生在激烈的就业竞争中失去了很多机会。

二、嵌入式系统教学现状分析及对策

《嵌入式系统》课程一般作为选修课开设且一般在大四开设,学生接触嵌入式技术时间较晚,对其没有基本的认识,在有限的课时内也只能对其有一个大致的了解,相比大三、大四学生们学习JAVA、C++的热情,嵌入式的学习气氛就显得很冷清。加之嵌入式系统课程要求的知识面广,涉及基础课程多(与电子类专业相关的基础课程有数字电子技术、电子设计自动化(EDA)、单片机原理、可编程逻辑器件、DSP原理及应用等,与计算机类专业相关的课程有C语言程序设计、计算机组成原理、计算机系统结构、微机原理、数据结构、操作系统等,如果要进行嵌入式应用软件开发的还应掌握计算机网络、网络编程、数据库原理及软件工程等课程),所以,学生学习嵌入式系统课程就存在一定的难度,学习热情也不高。对此,我们应该给与足够的重视,积极帮助学生能在嵌入式领域占有自己一席之地。首先,在对学生进行入学教育专业介绍时,要强调嵌入式方面的就业前景,目前国内外这方面的人都很稀缺,与应用软件开发的行业不同,嵌入式领域人才的工作强度通常低一些,但收入却高一些,利用这样的好的就业前景刺激同学们好好学习。再者,要强调嵌入式系统课程涉及的先行课程多,一定要打好基础;还有,学生在学校学习期间,老师们可以多开展期嵌入式技术的讲座及嵌入式产品的展示,比如无线点餐系统、车载GPS定位、智能家居等;最后,在学生大一、大二学习期间,各科任课教师要督促学生扎扎实实的学好每一门课程,以便为后续课程打好基础。在竞争如意激烈的今天,学生们也该从进入大学就逐步规划自己的职业生涯。

三、《嵌入式系统》课程教学的内容、教学方法的改进

嵌入式系统融合了电子、计算机、微电子等多种学科和技术。对于什么是嵌入式系统,还没有一个明确的定义。嵌入式系统一般定义为以应用为中心,以计算机技术为基础,软硬件可裁减,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。

1.《嵌入式系统》课程教学的内容

《嵌入式系统》的教学通常以32位微处理器为平台,32位的微处理器主要有ARM、MIPS、POWER PC,目前国内的大多数高校都是以介绍ARM微处理器为主,教学的内容主要包括ARM微处理器内核的介绍、ARM的汇编指令和汇编程序设计、嵌入式系统的C语言设计和嵌入式操作系统、嵌入式Linux开发环境及其在ARM上的移植、设备驱动程序和用户图形界面GUI等内容。在试验内容的安排上,通常包括ARM汇编语言的程序设计、BootLoader的移植、嵌入式操作系统内核的移植、UCOS II、LINUX、WINCE等嵌入式操作系统下的C语言驱动程序设计和应用程序设计等。

2.教学方法的改进

对于嵌入式课程的学习,很多同学都认为很难,除了前面提及到的它涉及的基础学科较多以外,一个很重要的原因是以传统的教学模式讲述的内容学生完全不理解,比如宿主机、目标板、交叉开发环境、GCC交叉编译器arm-Linux-gcc、引导装载程序BOOTLOADER、Linux内核裁减等。这就需要教师在上课时将嵌入式Linux开发流程给学生作演示,包括建立开发环境,下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-μclibc-gcc),或者安装产品厂家提供的交叉编译器;配置开发主机;建立引导装载程序BOOTLOADER;下载针对所使用的CPU的Linux操作系统内核、再添加自己的特定硬件的驱动程序;建立根文件系統;开发应用程序;烧写内核、根文件系统、应用程序;发布产品。学校还可聘请企业讲师讲述部分课程以使学生们可以了解到嵌入式的最新的技术。关于嵌入式系统的实验部分,需要有相应的开发板,有的学校实验条件还不成熟或实验设备不足,那么可以在主机上安装模拟器来模拟开发板,使学生了解将嵌入式的开发流程即可。

四、教学保障

前面已提及,嵌入式的教学过程及实验环节都离不开计算机及开发板,这就需要学校投入一定的资金来改善教学和实验条件。因为嵌入式这方面的人才较少,高校教师中也有很多人从未接触过嵌入式相关技术,所以,对于高校要积极寻求与嵌入式相关的企业的合作,以进行师资的培训,从企业吸收最新的嵌入式的技术和成果用于教学过程中。

五、就业及培训

嵌入式系统是一个软件与硬件紧密结合的学科,从事嵌入式开发的人员主要有两类。一类是电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系密切的最底层软件,如BootLoader、Board Support Package,最初级的硬件驱动程序等。另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

从事嵌入式开发的好处是:(1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高;另一方面,是因为这一领域较新,目前发展太快,掌握这些新技术的人当然很难找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。(2)与应用软件开发领域不同,嵌入式领域人才的工作强度通常低一些,但收入却高于普通的应用软件开发人员。搞嵌入式系统的公司,所开发的产品通常是通用的,不会因客户的不同而修改。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围基本上固定,时间越长越有经验。

如果以后想从事嵌入式技术方面的工作,那就需要进行这方面的培训,因为教学计划中的很少的课时量只是让学生们对嵌入式系统有一个大致的认识,而自学的话又不知道该从哪里下手。现在很多培训机构都有脱产的嵌入式就业班,大概学习四五个月的时间就可推荐就业,对于想从事嵌入式开发的学生来说,无疑是一个比较好的途径。

六、总结

嵌入式是一个有很大发展潜力的学科,各个高校也相继开设了嵌入式系统的课程,笔者仅从自己多年的嵌入式教学的角度上提出自己的一些看法,希望能够抛砖引玉,听到同行们更精彩的见解。

参考文献:

[1]刘艺,许大琴,万福编著.嵌入式系统设计大学教程[M].人民邮电出版社,2008(11).

篇5:嵌入式操作系统课程报告

North China University of Water Resources and Electric Power

嵌入式操作系统课程报告

题目 嵌入式系统课程综和论述

学 院 物理与电子学院

专 业 电子信息工程

姓 名 李天泽

学 号 201816516

组 员

完成时间 2020.12.22

目 录

一、嵌入式系统的介绍

(1)、嵌入式系统的概念……………………………………3

(2)、嵌入式系统的特点……………………………………4

二、嵌入式系统的发展和应用……………………………5

三、总结和心得……………………………………………7

参考文献……………………………………………7

附录…………………………………………………8

摘要:

如今,嵌入式系统经过半个多实际的发展和革新,在各个产业都可以看见它的身影。在电子消费领域,它已经广泛应用于手机、VCD、数字电视和路由器等常见家用电器和电子产品,或许在你的家里有着几十甚至几百个微型嵌入式计算机无时无刻地不在为你服务。

在工业控制方面,一辆豪华轿车的控制系统就包含着至少50个嵌入式微处理器,它们分布于火花塞、传动轴和安全气囊等等。而一架先进的飞机,一台人造卫星就可能包含着几十套嵌入式系统和上百台微型嵌入式计算机,没有这些装载,飞机和卫星的控制系统就不能有效地工作,它们的导航系统就不能满足严格的要求。

在通信领域也有着数不胜数的嵌入式系统的应用,由于带宽网络的发展,交换机、路由器和各种传输设备等都逐渐需要更多的嵌入式系统来满足它们互联的需求,而这些基于32位的嵌入式系统品种多样,绝大多数都价格低廉,能够为企业和家庭的网络选择提供更加廉价而多样的方案。

一、嵌入式系统的介绍

1、嵌入式系统的概念:

上世纪的40年代人类社会诞生了当时最伟大的发明之一——计算机。1946年宾夕法尼亚大学研制出了世界上第一台计算机“ENIAC”,吹响了人类向信息时代进发的号角。如今半个多世纪过去了,总体来看,计算机已经经历了两个大的发展阶段:大型计算机阶段和个人中小型计算机阶段。而今后,计算机技术将迈入下一个充满机遇和挑战的新阶段—— “无处不在的计算机”阶段,即“后PC发展阶段”。“无处不在的计算机”是指在数以千计乃至万计的计算机之间彼此相互关联,其与使用者的比例高达100%,这些计算机中包括有传统的通用式计算机和嵌入式计算机,而后者占绝大多数,可以达到95%的比例。

施乐公司研究中心的主任Mark Weiser 认为:“以长远的发展来看,PC和计算机工作站将逐渐衰落,因为计算机将会变得无处不在,它们会在墙上,在手腕上,在口袋里等等,计算机将会像手写纸一样,随用随取,伸手可得。”

目前全世界范围的计算机研究者都在逐步形成一种共识,那就是在计算机将来的发展中,它必然不会成为像科幻电影中的那种会背叛人类,伤害人类的机械怪物,恰恰相反它们将变得小巧玲珑而且无处不在。它们会出现在任何你能看的见、听得到、摸得着的地方,功能强大而且随处可用,这就是“无处不在的计算机”。

嵌入式计算机系统就是所谓的“看不见的计算机”,一般情况下它只是运行平台,并不能作为独立的开发平台来使用。而且它不能够被用户编程,对用户的I/O接口是专用的。所以不严谨地说:任意包含可编程计算机的设备而且这种设备不是作为通用计算机而设计的都可以称作嵌入式系统。

时至今日嵌入式系统已经逐渐渗透到人们的日常生活中,但因为其不同的应用形式和相异的名称,目前对嵌入式系统还没有一个统一的定义。但一般认为,它有以下概念:

(1)嵌入式系统的中心是应用功能,基础是计算机技术,其软件和硬件可以裁剪,对应用系统的功能、可靠性、成本、体积大小和功率损耗都有十分严格的要求和指标。

(2)国际电气和电子工程师协会认为嵌入式系统的定义是“Device used to control, monitor, or assist the operation of equipment , machinery or plants.”

(3)嵌入式系统是计算机技术、半导体技术、电子技术等与各个行业的具体应用相结合后的产物,是一个技术集中、资源集中、应用高度分散、技术不断革新的集成系统。

2、嵌入式系统的特点:

1)嵌入式系统通常都是多样的有特定应用功能的软硬件综合体,用于特定的任务,其硬件和软件设计都是高效而简洁的。其中嵌入式软件的应用程序和操作程序是一体化的,不同于传统的通用计算机操作系统和应用程序有着分明的界限。

2)嵌入式系统能够受到多个处理器和体系结构的支持,不同于通用的计算机只能够使用少数的处理器类型和体系结构。目前已经生产有上千种嵌人式微处理器和几十种微处理器的体系结构,其中比较主流常见的有ARM,MIPS, PowerPC,X86和SuperH等。

4)嵌入式系统有实时性和可靠性的特点,其主要表现在:目前绝大多数实时操作系统都是嵌人式系统;嵌人式系统都有实时性的要求,其软件通常都是固化或直接加载到内存中运行的,启动十分快速

另外,嵌人式系统通常都有处错能力和自动复位的功能,目前在绝大多数嵌式系统中都包含着用于保证系统运行可靠性的软硬件处理机制,比如看门狗定时器和内存保护重启机制等。

5)嵌入式系统通常都使用可以适应多种类型处理器、可裁剪量轻、实时性和可靠性高以及可以固化的。同嵌入式微处理器,嵌入式的操作系统也是多种多样的,不仅可以支持多种处理器,还可以进行裁剪量轻来匹配应用的功能,而且规模较小,能够节省资源等等。

二、嵌入式系统的发展和应用

第一代电子计算机体积大,耗电快,而且可靠性和实时性都无法满足嵌入式计算的要求。到了20世纪60年代,由晶体管、磁芯存储制造的第二代计算机开始用于航海航空等领域,它的CPU能够处理从电子系统传来的信号,具有了数据总线的一些基本特性。而与此同时,嵌人式计算机也逐步应用于工业和制造等方面。

至60年代末,采用集成电路的第三代计算机问世,1965年发射Gemini3号是人们第一次使用机载数字计算机。而后的阿波罗探测飞船则使用了嵌人式计算机系统来提供和保障人机的交互功能来用于引导飞行。1963年DEC公司推广了第一台商用小型机,它具有嵌入式系统的结构,具备单总线结构、高速寄存器和实时性、可靠性强的中断系统以及交叉存取功能,标志着嵌入式系统的兴起。

1971 年,英特尔公司成功推出了世界上第一片微处理器Intel 4004。它的体积小、质量轻、价格实惠、使用方便,在当时销量很好,Intel公司将它进一步改进后推出了4位的微处理器4040和8位的8008。

1973-1977 年短短四年之间全球许多厂家推出了各种各样的8位微处理器,其中比较流行的有英特尔公司的8080/ 8085系列,摩托罗拉公司的6800/6802系列,齐洛格公司的Z80和罗克韦尔公司的6502等。这些微处理器的广泛应用为嵌入式系统开辟了广阔的市场,促成了嵌入式系统的快速发展。计算机厂商开始以插件的形式为用户提供所需的OEM产品,并构成符合用户要求的微型控制计算机,嵌入到系统设备中。

嵌入式系统的大发展还要归功于20世纪80年代软件技术的进步。最初的嵌入式计算机的软件都是十分专用的,其程序也只能用汇编语言来编写,因此嵌入式系统的开发周期过长,效率太低,不利于广泛地推广和应用。得益于微电子技术的进步,嵌入式计算机的软件开发不再局限于汇编语言,可以使用C或PL等高级语言,是编程更加多样和简洁化,加快了嵌入式系统的开发效率。时间步入20世纪90年代,当时对分布控制、柔性制造和数字通信电等技术有着巨大需求,而这种需求也刺激着嵌人式系统的软硬技术的革新和发展,促进了嵌入式系统的应用扩大化。

如今,嵌入式系统经过半个多实际的发展和革新,在各个产业都可以看见它的身影。在电子消费领域,它已经广泛应用于手机、VCD、数字电视和路由器等常见家用电器和电子产品,或许在你的家里有着几十甚至几百个微型嵌入式计算机无时无刻地不在为你服务。

在工业控制方面,一辆豪华轿车的控制系统就包含着至少50个嵌入式微处理器,它们分布于火花塞、传动轴和安全气囊等等。而一架先进的飞机,一台人造卫星就可能包含着几十套嵌入式系统和上百台微型嵌入式计算机,没有这些装载,飞机和卫星的控制系统就不能有效地工作,它们的导航系统就不能满足严格的要求。

在通信领域也有着数不胜数的嵌入式系统的应用,由于带宽网络的发展,交换机、路由器和各种传输设备等都逐渐需要更多的嵌入式系统来满足它们互联的需求,而这些基于32位的嵌入式系统品种多样,绝大多数都价格低廉,能够为企业和家庭的网络选择提供更加廉价而多样的方案。

时至今日,嵌入式系统的应用已经从微至著,广泛分布。但它还在不断地更新发展,其构成的计算机也会变得更小巧,更灵敏,更高效,更智能,相信在未来的某一天,会如Mark Weiser所说的那样:“它们会在墙上,在手腕上,在口袋里,就像手写纸一样,随用随取,伸手可得。”

三、总结和心得

嵌入式系统作为一门计算机开发的学科,有着不同于传统通用计算机系统的特点和概念,具有独特长处。同时它的应用遍布于电子消费、通信工程、工业控制和军事国防等多种领域,其发展前景是非常广阔的,是一门十分值得深入学习和研究的学科。

通过一个学期的学习,我了解了许多嵌入式实时操作系统的应用知识,比如“任务的管理和调度”、“同步、互斥与通信”以及“中断和时间管理”等全新的理论知识,同时也通过多次的实验操作理解了对嵌入式系统软硬件工作方式和应用。所谓温故而知新,通过撰写课程报告,我对嵌入式系统的各个方面有了新的了解,大大提高了对这门学科的兴趣,在今后的学习中,我也会更加深入地去学习这门课程的相关内容,丰富自己的知识领域,开阔眼界,掌握更多的技能,为自己将来的发展做好铺垫。

参考文献:

甄鹏------《嵌入式实时Linux的移植及应用技术的研究》2008,(02)

郭军------《基于Petri网的嵌入式系统高层级设计方法与技术研究》2007,(04)

吴敏------《基于嵌入式的家庭网关控制平台的研究与设计》2007,(05)

刘青云;焦铬-------《嵌入式Web Service模型实现及应用》2019,(01)

田婧---------《嵌入式μCOSⅡ在DSP中的移植与应用研究》2007,(04)

附录

附查重报告:

篇6:嵌入式系统课程设计教学大纲

课程名称:嵌入式系统A课程(Embedded Systems)课程编号:1310778236 设计时数:1周 学

分:1 开课单位:信息电子技术学院通信工程教研室 适用专业:通信工程 适用对象:本科

一、课程的性质、类型、目的和任务

作为电子信息工程、通信工程专业本科生的必修实践环节,嵌入式系统课程设计要求学生有扎实的理论基础并具备一定动手能力。进入课程设计前要认真复习微处理器类课程中的相关知识和汇编语言、C语言的编程方法。课程设计采用课堂讲述、自学、分组实践相结合的方式,通过分析典型的例子,使学生熟悉并掌握嵌入式系统的开发流程和基本的编程方法。课程设计要求2—3人组成课设小组,在指定范围内选定题目,每组选一题,题目应侧重一个嵌入式系统的具体应用方面。题目选定后,在教师的指导下,学生理解设计原理,分析重要电路单元,计算必要的参数并在此基础上编写程序,最后,在课程设计结束时独立写出理论分析完善、文理通顺、字迹工整的课程设计报告并上交软件程序。教师可根据作品的难易程度、参数指标、编程水平等进行评分。

二、本课程与其它课程的联系与分工

学习该课程之前,学生应学习过《C语言程序设计》、《数字电子技术》,《单片机原理与应用》基础知识。嵌入式系统是它们的总结和提高。

三、课程内容及教学基本要求

[1]表示“了解”;[2]表示“理解”或“熟悉”;[3]表示“掌握”;

学生可从下列题目中任选一个作为嵌入式课程设计题目,也可以根据个人兴趣及实验室现有条件,自己确定题目经教师审核后作为课程设计题目。

(一)单片机控制数码管显示系统的设计

AVR单片机的工作原理[1],嵌入式系统实际开发过程[2],单片机控制数码管的方法[3],师编写程序[3],实现单片机控制数码管显示系统的设计[3]。

(二)矩阵式按键控制LED显示系统

AVR单片机的工作原理[1],嵌入式系统实际开发过程[2],矩阵式按键输入控制信号[3]、通过单片机控制LED显示的过程[3]。单片机定时/计数器的工作原理及使用[3],汇编程序的下载及固化的过程[3],(三)汉字显示系统设计

了解AVR单片机的工作原理[1],液晶驱动芯片的工作原理[1],嵌入式系统实际开发过程[2],单片机控制液晶显示模块的方法[3],编写程序,单片机控制汉字显示系统的设计[3]。

(四)交通灯控制

AVR单片机的工作原理,嵌入式系统实际开发过程[2],ARM7核的LPC2106的管脚功能和特点[1],I/O控制寄存器的设置方法[3];ARM7应用系统编程开发方法[3],能用C语言编写应用程

序[3]; ADS1.2软件的使用以及PROTEUS仿真调试的方法[3];

(五)交通灯设计

ARM芯片[1]; ARM芯片各个引脚的功能[2],工作方式[2],计数/定时[2],I/O口[2],中断[2];利用ARM芯片模拟实现交通灯控制[3]。,工作方式,计数/定时,I/O口,中断等相关原理,通过软硬件设计实现利用ARM芯片完成交通灯的模拟控制[3]

(六)温度采集系统

ARM芯片各个引脚功能[1],工作方式[1],计数/定时[1],I/O口[1],中断[1]。通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示[3] 其他课题见附录:

四、考核方式及要求

1.考核方式:考查;

2.考核方法:平时考勤+设计报告+ 设计答辩; 3.成绩评定:

平时成绩:应根据学习纪律、出勤、等方面综合评定,占10%;

设计报告:根据学生设计报告各部分的完整性和优劣情况评定,占70%; 设计答辩:应根据答辩结果评定,占20%.按优、良、中、及格、不及格五级分制记分。设计报告内容:

1.封面;2.摘要;3.目录;4.总体方案设计分析 ;5.软件框图及程序设计(汇编语言源程序必须加注释说明);6.硬件原理图设计(最好使用电子设计CAD软件绘制);7.设计总结和心得体会。

五、实验教材(指导书)及参考书(资料)

篇7:嵌入式系统课程

关键词:嵌入式系统;教学内容;教学质量;实践教学;Linux

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)28-6733-02 概述

嵌入式系统是面向软件、计算机、通信、电子等专业本科生和研究生的一门普及型技术基础课程。它是一门交叉学科,既与计算机专业课程有关,又与电子电气、通信、自动化、化工、材料等诸多专业课程有关,并且还与具体的应用背景相关联。涉及到的基本知识有:硬件知识(如嵌入式微处理器及其基本的接口知识、扩展的人机接口、网络通信接口等)、Linux操作系统(至少了解Linux操作系统的中断、优先级、任务间通信、同步等知识)、程序设计知识(C、C++、尤其需要精通C语言);同时,还需涉及一定的数字电路知识[1-2]。

嵌入式系统学科的特点决定了学生需要学习大量相关课程方能做出优秀的作品,其成果见效周期长,学生在系统学习过程中会普遍因为缺少相应成绩而丧失学习兴趣。针对这种情况,我院在传统嵌入式系统教学中加入了一些新颖的、能够有效激发学生学习动力的相关课程,以此提高对嵌入式系统学习的兴趣,并且取得了显著的成绩。

嵌入式系统教学课程改革措施

C语言作为学习其他编程语言的基础,同时也是传统嵌入式系统基础学科之一,需要重点强化学生实际动手能力。在嵌入式的高级应用部分我院将其与新兴的智能手机操作系统—Android相结合,取得了良好的教学效果。

2.1 基础课程改造

我院嵌入式系统教学对学生采用“厚基础,宽口径”的教学特色,着重强调学生对基础知识的掌握。为强化学生的实际动手能力,我院将C语言的课时设置为80课时,并辅以大量的实践内容。针对嵌入式系统偏重于Linux编程的特色,在C语言讲授时直接开展基于Linux下编写C语言的教学。通过实践教学表明,学生只需两周即可掌握相应方法;而且学生由于没有Windows下VS编程经历,反而更加容易掌握接受。

在后续课程中重点加强Linux下高级C语言编程学习,如内存问题、宏问题、调试与优化等,部分学生在大二即可做出优秀作品。在刚刚结束的2012年NOC网络与信息安全技术大赛中,我院嵌入式系统学生获得了全国二等奖的好成绩。

2.2 Android课程教学

Android作为一个新兴的智能手机操作系统,在国内外广受欢迎,学生范围内也有大量从事Android学习。Android学习起点低,只需学完Java课程即可从事开发,针对嵌入式传统教学内容容易使学生丢失学习兴趣的现象,将其加入到嵌入式教学体系当中,作为学生实践技能的有益补充。学生很容易通过Android做出优秀的作品,从而激发其自信心和兴趣,再以此为基础,指引其从事跟嵌入式系统方面相结合的研究,比如完成Android系统的裁剪,功能的定制及将其移植到ARM板中,甚至还可以同物联网等新兴领域相结合。

其他措施

除了嵌入式系统课程改革外,我院还广泛开展校企合作,建立开放实验室和鼓励学生参加全国大赛。

3.1 与CSDN,GOOGLE开展校企合作

为了激发学生的创造思维,发扬团队精神,锻炼学生编程能力,我院与CSDN合作建设了《嵌入式相关资料》 CSDN高校俱乐部,并举办了多场Android开发交流会。同时还积极与GOOGLE开展深入合作,成立了南阳GTUG,每月举办GOOGLE Android开发者技术交流活动。通过校企合作,不仅提高了学生学习的积极性,也极大扩展了视野,为今后嵌入式系统教学进一步拓展创造条件。

3.2 建立开放实验室

为了提高嵌入式系统学生学习嵌入式技术的兴趣,我院开设了Android、嵌入式开放实验室,鼓励学生踊跃参加。开放实验室是一个以“自由、促进、创新”为理念,为对Android、嵌入式技术感兴趣的学生提供了一个沟通交流、学习提高的良好环境。开放实验室以Android技术和嵌入式技术为研究主体,实验题目具有应用性、先进性和趣味性,通过开放实验室,为学生提供学习、实践、交流、承担项目、就业对接等机会。为此,定期举办术开发技术讲座,促进不同水平和层次小组成员之间的沟通交流、实践锻炼机会、努力拓宽学生毕业时就业机会[3]。现在,开放实验室作为开设嵌入式系统课程的实验基地,从带领实验室的经验中总结出学生培养模式,并且通过“学生带学生”的模式,不仅使学生能力进一步提高,也为我院嵌入式系统教育培养计划课程的执行进行前期探索。

3.3 积极鼓励学生参加大赛和做项目

我院为锻炼学生实际动手能力,积极鼓励学生参加各种竞赛,在全国信息技术大赛(Android方向)和河南省移动MM大赛中都取得了优异的成绩。经过实践证明,竞赛模式能够将对Android感兴趣的学生集中起来培养,这样学生之间能够方便的学习交流沟通,形成良好的互动氛围。通过做项目和积极参加各种比赛,不仅可以快速提高学生的知识水平,还可以使学生的组织能力和团队协作能力得到很大提升。

需进一步加强的地方

虽然我院在嵌入式系统教学方面取得了不小的成就,但是仍然有一些问题需要进一步加强。

4.1 教材建设

Android诞生没有太长时间,目前国内研究大多都是从国外借鉴而来,市场上的很多书籍存在相互抄袭甚至通篇代码的情况,而且也不太符合嵌入式系统学生的自身特色。可以集中力量,从实践教学出发,以工程实践为核心,根据嵌入式系统自身特点,编写几本优秀高质的、适合本教学特色的Android教材,将其与传统嵌入式教学体系有机结合起来。

4.2 师资建设

由于嵌入式系统教学的特殊性,需要教学人员具有教育教学能力和工作经验兼备的复合型人才,但目前高校嵌入式教学领域普遍缺少“双师型”人才,这需要以后学院加强对青年骨干教师的外出培训力度和政策支持。

4.3 转变教学手段

在传统教学中,教师普遍采用以“PPT为中心”的教学模式,授课时使用大量PPT,这种做法容易使学生产生上课不认真听讲的心理,而且也会容易引起课堂枯燥等问题,不利于激发学生的兴趣。教师在授课时应转变思路,将PPT作为一种补充手段,采用多种教学模式[4],“以学生为核心”,将学生作为授课时的主体,从而激发学生学习兴趣。

结论

该文针对嵌入式系统传统课程存在的在教学过程中学生容易丢失学习兴趣的问题,针对嵌入式学科特点和学生学习的特点提出了一些实践教学改革方法,以此努力构建嵌入式系统教学课程新模式。

参考文献:

[1] 章民融,徐亚锋.嵌入式教学关键点的研究和嵌入式实验教学平台的设计[J].计算机应用与软件,2009,26(3):160-162.[2] 邓昀.关于嵌入式系统课程教学改革的探讨[J].中国校外教育(理论),2011(z1):《嵌入式相关资料》 566.[3] 吴磊.嵌入式教学与实验的研究[J].实验室研究与探索,2011,30(11):103-104.[4] 胡沛.JavaScript课程教学改革探索[J].电脑知识与技术,2011,7(32):7944-7945.转载请注明来源。原文地址:

篇8:嵌入式系统课程教学体系研究

1. 嵌入式系统体系结构

IEEE (国际电气和电子工程师协会) 所定义的嵌入式系统是:“用于控制、监视或者辅助操作机器和设备的装置” (其原文是:devices used to control, monitor, or assist the operation of equipment, machinery or plants) 。通俗地讲, 嵌入式系统就是将普通计算机系统的硬件和软件嵌入到其他机、电设备或应用系统中去, 构成的一种新的系统。目前, 国内普遍认同的定义是:以应用为中心, 以计算机技术为基础, 软件硬件可裁剪, 适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统[2]。根据嵌入式系统的定义及其特点, 可以分析出其体系结构 (如图1所示) [3]。在教学方面, 也要追本溯源, 依据嵌入式系统的体系结构, 由上至下地进行层次化分类教学, 最终形成嵌入式系统教学体系。

2. 层次化的理论教学

嵌入式系统技术涉及的专业知识较为广泛。在硬件层面, 学生要熟悉计算机组成原理、微机原理、单片机原理、电路设计等;在中间层, 需要学习Bootloader的相关知识;在软件层, 需要学习操作系统相关知识;在功能层, 需要学习各种编程语言, 如C语言、C++语言、汇编语言等。可以将这些专业知识形成一个嵌入式系统课程体系架构, 如图2所示。

对于各门课程教学内容的选择, 应遵循广而有精的原则。在信息化时代, 知识体量越来越大, 大学生的精力有限, 不能要求他们对每方面都精通, 应该做到面面俱到、一面精通, 达到举一反三的目的。尽量教授一些经典的、容易掌握的知识。如在操作系统知识方面, 可以对u C/OS-II和嵌入式Linux进行较为深入地讲解;在Bootloader知识方面, 可以对U-boot进行主要分析;在嵌入式芯片方面, 可以选择目前应用十分广泛的ARM芯片。

3. 理论与实践的相结合

嵌入式系统是应用性很强的课程。在整个教学过程中, 实践教学应占到50%甚至更多, 这样才能真正达到理论与实践相结合的目的。一方面, 学生只有亲自动手完成一系列操作之后才能培养出学习兴趣;另一方面, 实践过程必然会遇到问题, 当学生带着具体问题返回来查找理论知识时, 则对理论知识的理解进一步加深。

(1) 实验教学。

实验教学应该与理论教学紧密结合起来。在课程将要进入实验阶段的时候, 应该考虑将课堂放在实验室, 这样就做到了教师边讲课, 学生边操作, 发现问题时教师即刻进行辅导解决问题。这种教学模式既解决了理论与实验相脱节的问题, 又使得学生在动手过程中有了一定的成就感, 在上这样一门相对较难的课程时不再感到枯燥无味。克服了绝对的先课堂、后实验的许多弊端[4]。由于嵌入式系统分为应用层、操作系统层、中间层和硬件层, 所以一个相对完整的实验教学在这些层面上应该全部涉及, 还应在实验项目中设立一些自主创新的实验, 让学生在做实验过程中有所思考[5]。

一个相对完整的基于ARM平台的嵌入式系统实验项目, 应该包含以下六个部分:

(1) 汇编程序设计。

该类实验帮助学生熟悉ADS集成开发环境的使用;掌握如何使用ARM汇编指令实现结构化程序编程。

(2) C语言程序设计。

该类实验使学生掌握如何在C程序中调用汇编程序, 并了解ATPCS基本规则。

(3) I/O端口与各部件的编程。

该类实验帮助学生理解GPIO、中断、串口、定时器、ADC及RTC等器件的工作原理。

(4) 操作系统移植实验。

该类实验可基于u C/OS-II和嵌入式Linux两个部分, 通过构建嵌入式系统开发平台, 学生可以将基于操作系统的开发和裸机开发进行对比理解, 进一步把操作系统的理论应用到实践当中。

(5) 应用程序实验。

该类实验可以设置多进程、多线程、文件和目录等操作实验, 使学生掌握网络编程方法。

(6) 设备驱动实验。

该类实验对字符设备、块设备的驱动编写方法进行分析, 使学生熟悉底层开发。

有条件的学校可以开设嵌入式图形用户界面开发实验。在教学过程中, 应该将u C/OS-II或嵌入式Linux操作系统的移植以及设备驱动两类实验当做大型项目设置, 教师为学生提供相应的参考资料, 让学生主动地去查阅。力争做到让学生自己动手搭建一个完整的嵌入式系统开发平台。

(2) 课程设计。

在嵌入式系统课程设计的教学过程中, 应该采取引导式教学模式。由于有了前期理论知识所建立的分析问题的能力, 以及实验操作所建立的动手能力, 在课程设计阶段就应该采取开放式教学模式, 如问答形式。

通过总结各届学生完成课程设计的效果, 以下一些项目不论从难易程度还是从知识点的涵盖上均较为合适的。

(1) 电子菜单系统。

该类设计使学生熟悉如何利用Qt开发客户端和服务器端的图形界面, 如何进行基于嵌入式数据库的软件开发, 如何使嵌入式开发平台与无线通信模块进行通信, 如何实现多线程等。

(2) 短信群发系统。

该类设计主要使学生熟悉如何进行GPRS无线模块驱动移植, 如何实现嵌入式网络编程等。涉及较多的移动通信相关专业知识。

(3) 图像采集系统。

该类设计主要使学生熟悉如何设置基于USB的摄像头驱动程序, 如何进行图像与视频的压缩处理等。涉及较多的信息处理相关的专业知识。

上述课程设计项目比较适合以团队的形式参与, 教师除了针对项目实现本身进行指导之外, 还需要引导学生如何进行项目的分模块实现。如果以单个学生来完成某个课程设计项目, 则应该设置相对简单一些的题目, 如基于触摸屏的五子棋游戏的实现、MP3播放器的实现、基于Web Service的嵌入式计算器等。

总之, 在课程设计过程中, 教师应该采取相对灵活的方式, 教师给出多个可供选择的项目, 学生依据自身的特长, 选择自己感兴趣的项目。

(3) 科技创新。

经过理论知识的学习, 经过实验和课程设计的动手操作, 可以让学生初步认识了嵌入式系统, 从而迈进嵌入式系统的开发之门。但现实中的嵌入式系统项目开发与之还有一定的差异, 可以通过科技创新让学生深入到实际项目的开发过程中去。

科技创新课题可以来自于教师的自研项目, 可以是研究所的开放课题, 也可以是与企业相结合的科研项目。这些项目不仅要求学生进行软件的设计和编制, 而且还要进行一部分硬件电路的设计和制作, 甚至可能会涉及到系统方案的制定。利用现有的开发设备和条件进行科技创新活动, 可以为全国性的嵌入式系统设计大赛培养后备力量, 并且使学生进入嵌入式系统科学的研究领域, 为创新型、创造型人才的培养奠定坚实的基础。

4. 结束语

嵌入式系统是物联网发展的关键, 物联的基础就是嵌入式运算。对当代大学生而言, 后PC时代带来的是机遇也是挑战。如果大学教育能够建立起一个健全而合理的嵌入式人才培养模式, 将加快我国物联网的发展速度, 为后续智能化社会培养更多更优秀的人才。

参考文献

[1]邵贝贝.关于嵌人式系统教学的思考:第三届全国高等院校嵌人式系统教学研讨会论文集[C].北京:清华大学出版社, 2005.3-7.

[2]何立民.嵌入式系统的定义与发展历史[J].单片机与嵌入式系统应用, 2004 (1) .

[3]符意德.嵌入式系统设计原理及应用.2版[M].北京:清华大学出版社, 2010.

[4]王建萍, 费跃农, 王燕瑜.嵌入式系统“边干边学”教学模式探究[J].电气电子教学学报, 2007 (10) .

上一篇:武装部先进事迹材料下一篇:中职生数学教学中的“习题教学”初探