实 习 报 告
学 院
专业班级 学生姓名 指导教师
2011-2012 学年第 二 学期
一、嵌入式系统简介
根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格
要求的专用计算机系统。
虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段和面向Internet阶段。
嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括开源的u C / O S 、3Com公司下属子公司的Palm OS,Microsoft公司的Windows CE、开放源代码的Linux。
u C / O S 是一种公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统,商业应用需要付费。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌人到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。
Palm OS是3Com公司的产品,其操作系统为Palm OS。Palm OS是一种32位的
嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有很强开放性的系统,现在有大约数千种专用为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。
Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内建有对中断的响应功能。
Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。
二、实习目的
实习是一种实践。是理论联系实际,应用和巩固所学专业知识的一项重要环节,是培养我们能力和技能的一个重要手段。通过实习,我们可以更广泛的直接接触社会,了解社会需要,加深对社会的认识,增强对社会的适应性,将自己融合到社会中去,培养自己的实践能力,缩短我们从一名大学生到一名工作人员之间的思想与业务距离,为我们毕业后社会角色的转变打下基础。同时通过运用所学的专业知识进行观察,也锻炼了提出、分析并解决问题的能力。此次嵌入式实习,让我们了解了嵌入式系统和嵌入式技术,以及嵌入式系统的应用领域和近年来在国内外的发展。华中科技大学工程实训中心自主研发的ARM9开发板,以及他们自己总结的经验让我们获益良多,使我们在短时间内进入了嵌入式的精彩世界。
具体如下:
① 了解嵌入式操作系统
② 学会用uC/OS-II级编写调试
三、实习内容
通过指导老师的安排,我们首先听取了嵌入式系统专业工程师的精彩讲座,通过老师的讲解,我们对嵌入式系统的实践有了整体的了解,然后指导老师安排了实习内容,具体如下:
① 建立三个任务:其中任务一和任务二分别显示专业、班级、姓名和学号 信息
等
② 专业班级和姓名学号显示切换时间间隔0.5s
③ 任务三统计其他两个任务的运行次数并显示
④ 任务一和任务二不得同时显示
在uC/OS-II系统上主要程序如下:
#define TASK_STK_SIZE 512
#define N_TASKS 10
OS_STK TaskStk[N_TASKS] char TaskData[N_TASKS];
OS_STK TaskStartStk3[TASK_STK_SIZE];
OS_STK TaskStartStk1[TASK_STK_SIZE];
OS_STK TaskStartStk2[TASK_STK_SIZE];
void TaskStart3(void *data);
void TaskStart1(void *data);
void TaskStart2(void *data);
[TASK_STK_SIZE];
long int hold1=0, //任务一次数
hold2=0; //任务二次数
void main (void)
{
PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); OS_ENTER_CRITICAL();
PC_VectSet(0x08, OSTickISR);
PC_SetTickRate(OS_TICKS_PER_SEC);
OS_EXIT_CRITICAL();
OSInit();
PC_DOSSaveReturn();
PC_VectSet(uCOS, OSCtxSw);
OSTaskCreate(TaskStart3, (void *)0, &TaskStartStk3[TASK_STK_SIZE - 1], 0); OSTaskCreate(TaskStart1, (void *)0, &TaskStartStk1[TASK_STK_SIZE - 1], 1); OSTaskCreate(TaskStart2, (void *)0, &TaskStartStk2[TASK_STK_SIZE - 1], 2);
OSStart();
}
void TaskStart1 (void *pdata)
{
pdata = pdata; /* 无任何意义,防止编译器报警 */
for(;;)
{
PC_DispStr(0,0,\"\
PC_DispStr(0,1,\"\
PC_DispStr(0,2,\"************************************************
\
PC_DispStr(0,3,\"TASKONE\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,4,\"\
PC_DispStr(0,5,\"\
PC_DispStr(0,6,\"\
PC_DispStr(0,7,\"************************************************
\
PC_DispStr(0,8,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,9,\"**\
PC_DispStr(0,10,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,11,\"***name: * \
DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,12,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,13,\"***age:23*\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,14,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,15,\"***location *\
DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,16,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,17,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,18,\"***********************************************
\
PC_DispStr(0,19,\"\
PC_DispStr(0,20,\"\
PC_DispStr(0,21,\" **********************************************
\
PC_DispStr(0,22,\"\
PC_DispStr(0,23,\"\
PC_DispStr(0,24,\"\
hold1++;
OSTimeDlyHMSM(0, 0, 1, 0);
}
}
void TaskStart2(void *pdata)
{
pdata = pdata;
for(;;)
{
PC_DispStr(0,0,\"\
PC_DispStr(0,1,\"\
PC_DispStr(0,2,\"************************************************
\
PC_DispStr(0,3,\"TASK TWO\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,4,\"\
PC_DispStr(0,5,\"\
PC_DispStr(0,6,\"\
PC_DispStr(0,7,\"************************************************
\
PC_DispStr(0,8,\"**\ + DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,9,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,10,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,11,\"***major:
DISP_BGND_LIGHT_GRAY);
*\+
PC_DispStr(0,12,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,13,\"***class:08-5*\
DISP_BGND_LIGHT_GRAY);
+
PC_DispStr(0,14,\"**\
PC_DispStr(0,15,\"***xue hao: DISP_BGND_LIGHT_GRAY);
*\+
PC_DispStr(0,16,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,17,\"**\ DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,18,\"***********************************************
\
PC_DispStr(0,19,\"\
PC_DispStr(0,20,\"\
PC_DispStr(0,21,\"***********************************************
\
PC_DispStr(0,22,\"TASK1:TASK2:\
DISP_BGND_LIGHT_GRAY);
PC_DispStr(0,23,\"\
PC_DispStr(0,24,\"\
hold2++;
OSTimeDlyHMSM(0, 0, 2, 0);
}
}
void TaskStart3 (void *pdata)
{
char s[80];
pdata = pdata;
for(;;)
{
sprintf(s, \"%5d\
PC_DispStr(18,22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
sprintf(s, \"%5d\
PC_DispStr(50, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
OSTimeDlyHMSM(0, 0, 0, 3);
}
}
四、实习心得
在为期三周的实习过程中,我学到了许多书本上学不到的知识,本以为十分枯燥的设计过程却让我得到了很多乐趣,同时也为我今后的进一步学习奠定了基础。
在实习的过程中,遇到问题的时候,一定要按下心来,思考专业课中所学到的知识,逐渐应用到对实际问题的解决中,比如说在编程中出现的不符合期望的结果,通过调试来发现问题的所在,变更编程思路来达到预期目标。
本次实习使我把学到的理论知识和实际的硬件相结合,对嵌入式系统这门课程有了新的理解和认识,这对于我今后的学习会有事半功倍的效果。非常感谢本次实习给了我这样一个锻炼我的机会,在此也感谢老师对我的指导!
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务