嵌入式系统实习报告_第1页
嵌入式系统实习报告_第2页
嵌入式系统实习报告_第3页
嵌入式系统实习报告_第4页
嵌入式系统实习报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

08级自动化一班姓名:曾涛学号:33号-12-15 目录1嵌入式系统简介1.1嵌入式系统的概念在目前日益信息化的社会中,计算机和网络已经全面渗透到平常生活的每一种角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机;多种各样的新型嵌入式系统设备在应用数量上已经远远超过通用算机,任何一种一般人也许拥有从大到小的多种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐变化老式的工业和服务方式。目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。不过对于何为嵌入式系统,什么样的技术又可以称之为嵌入式技术,仍在讨论之中。

广义上讲,可以认为但凡带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统关键的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器(MPU)。因此有人简朴的说:“嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。”尚有人认为嵌入式系统就是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可*性、成本、体积、功耗严格规定的专用计算机系统”。应当说后者从功能应用特性上比很好的给出了嵌入式系统的定义,嵌入式的概念的分析主线上应当从应用上加以切入。

狭义上讲,人们愈加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,经典的嵌入式系统有使用x86的小型嵌入式工控主板,在多种自动化设备,数字机械产品中有非常广阔的应用空间;此外一大类是使用Intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,并且甚至有趋势取代老式的工控机。目前大家愈加清晰的看到:嵌入式技术的春天已经来了。因此也就难怪嵌入式系统成为目前最热门的技术之一。1.2嵌入式系统发展历史

虽然嵌入式系统是近几年才开始真正风行起来的,但实际上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天多种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大体经历了如下四个阶段:

1.2.1无操作系统阶段

嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,一般应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具有了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行某些单线程的程序,因此严格地说还谈不上"系统"的概念。

这一阶段嵌入式系统的重要特点是:系统构造和功能相对单一,处理效率较低,存储容量较小,几乎没有顾客接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量均有较高规定的信息家电等场所的需要。1.2.2简朴操作系统阶段

20世纪80年代,伴随微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同步,嵌入式系统的程序员也开始基于某些简朴的"操作系统"开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。

这一阶段嵌入式系统的重要特点是:出现了大量高可*、低功耗的嵌入式CPU(如PowerPC等),多种简朴的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简朴,但已经初步具有了一定的兼容性和扩展性,内核精致且效率高,重要用来控制系统负载以及监控应用程序的运行。1.2.3实时操作系统阶段

20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统深入飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。伴随硬件实时性规定的提高,嵌入式系统的软件规模也不停扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。

这一阶段嵌入式系统的重要特点是:操作系统的实时性得到了很大改善,已经可以运行在多种不一样类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具有了文献和目录管理、设备管理、多任务、网络、图形顾客界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得愈加简朴。1.2.4面向Internet阶段

二十一世纪无疑将是一种网络的时代,将嵌入式系统应用到多种网络环境中去的呼声自然也越来越高。目前大多数嵌入式系统还孤立于Internet之外,伴随Internet的深入发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。1.3嵌入式系统的特点

用于嵌入式设备的计算机几乎和计算机自身的历史同样长期,并且伴随计算机技术的发展,嵌入式系统已成为计算机领域的一种重要构成部分。嵌入式设备几乎包括了我们周围的所有电器设备:小至掌上PDA、电视机顶盒,大至汽车、电梯,安全系统等等。据记录,每年只有10%-20%的计算机芯片是为台式或便携式电脑而设计的,这也意味着每年有10至20亿个CPU是为嵌入式设备而设计制造的。嵌入式计算机系统同通用型计算机系统相比具有如下特点:嵌入式系统一般是面向特定应用的。嵌入式CPU与通用型的最大不一样就是嵌入式CPU大多工作在为特定顾客群设计的系统中,它一般都具有低功耗、体积小、集成度高等特点,可以把通用CPU中许多由板卡完毕的任务集成在芯片内部,从而有助于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。

嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的详细应用相结合后的产物。这一点就决定了它必然是一种技术密集、资金密集、高度分散、不停创新的知识集成系统。嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、清除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在详细应用中对处理器的选择更具有竞争力。

嵌入式系统和详细应用有机地结合在一起,它的升级换代也是和详细产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

为了提高执行速度和系统可*性,嵌入式系统中的软件一般都固化在存储器芯片或单片机自身中,而不是存贮于磁盘等载体中。

嵌入式系统自身不具有自举开发能力,虽然设计完毕后来顾客一般也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。

1.4嵌入式操作系统比较

伴随Internet技术的发展、信息家电的普及应用及嵌入式操作系统EOS(EmbeddedOperatingSystem)的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的有关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而方的,它除具有了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文献处理等外,尚有如下特点:

1.可装卸性。开放性、可伸缩性的体系构造。

2.强实时性。EOS实时性一般较强,可用于多种设备控制当中。

3.统一的接口。提供多种设备驱动接口。

4.操作以便、简朴、提供友好的图形GUI,图形界面,追求易学易用。

5.提供强大的网络功能,支持TCP/IP协议及其他协议

6.更好的硬件适应性,也就是良好的移植性。

国际上用于信息电器的嵌入式操作系统有40种左右。目前,市场上非常流行的EOS产品,包括3Com企业下属子企业的PalmOS,Microsoft企业的WindowsCE、开放源代码的Linux。三种常用的嵌入式操作系统

1.PalmOS

Palm是3Com企业的产品,其操作系统为PalmOS。PalmOS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传播接口,运用它可以以便地与其他外部设备通信、传播数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。PalmOS是一套具有很强开放性的系统,目前有大概数千种专用为PalmOS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业处理方案,PalmOS无所不包。在丰富的软件支持下,基于PalmOS的掌上电脑功能得以不停扩展。

PalmOS是一套专门为掌上电脑开发的OS。在编写程序时,PalmOS充足考虑了掌上电脑内存相对较小的状况,因此它只占有非常小的内存。由于基于PalmOS编写的应用程序占用的空间也非常小(一般只有几十KB),因此,基于PalmOS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。2.WindowsCE

WindowsCE是微软开发的一种开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的Windows95。WindowsCE的图形顾客界面相称杰出。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows95/98、WindowsNT不一样的是,WindowsCE是所有源代码所有由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows95/98,但WindowsCE是基于Win32API重新开发的、新型的信息设备平台。WindowsCE具有模块化、构造化和基于Win32应用程序接口以及与处理器无关等特点。WindowsCE不仅继承了老式的Windows图形界面,并且在WindowsCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、VisualC++等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简朴的修改和移植就可以在WindowsCE平台上继续使用。

WindowsCE的设计目的是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,尚有像摄影机、电话和家用娱乐器材之类的消费产品。一种经典的基于WindowsCE的嵌入系统一般为某个特定用途而设计,并在不联机的状况下工作。它规定所使用的操作系统体积较小,内建有对中断的响应功能。3.Linux

Linux是一种类似于Unix的操作系统。它来源于芬兰一种名为LinusTorvalds的业余爱好,不过目前已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到目前,短短的时间内已发展成为一种功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的LinuxOS已成为Microsoft企业的DOS和Windows95/98的强劲对手。Linux系统不仅可以运行于PC平台,还在嵌入式系统方面大放光辉,在多种嵌入式LinuxOS迅速发展的状况下,LinuxOS逐渐形成了可与WindowsCE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。2嵌入式系统实习的目的1. 理解嵌入式操作系统2. 学会用uc/os-Ⅱ级编写调试3嵌入式系统实习的内容a.建立三个任务:其中任务一和任务二分别显示专业、班级、姓名和学号等信息b.专业班级和姓名学号显示切换时间间隔0.5sc.任务三记录其他两个任务的运行次数并显示d.任务一和任务二不得同步显示4嵌入式系统的实习程序4.1实习程序 /***********************************************************************************************************uC/OS-II*TheReal-TimeKernel**(c)Copyright1992-,JeanJ.Labrosse,Weston*AllRightsReserved**EXAMPLE#1**********************************************************************************************************///#include"includes.h"#include<stdio.h>#include<string.h>#include<ctype.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<setjmp.h>#include<\SOFTWARE\uCOS-II\ix86l\bc45\os_cpu.h>#include"\SOFTWARE\uCOS-II\EX1_x86L\BC45\SOURCE\OS_CFG.H"#include"\SOFTWARE\uCOS-II\source\ucos_ii.h"#include"\SOFTWARE\blocks\pc\bc45\pc.h"/***********************************************************************************************************CONSTANTS**********************************************************************************************************/#defineTASK_STK_SIZE512/*Sizeofeachtask'sstacks(#ofWORDs)*/#defineN_TASKS10/*Numberofidenticaltasks*//***********************************************************************************************************VARIABLES**********************************************************************************************************/OS_STKTaskStk[N_TASKS][TASK_STK_SIZE];/*Tasksstacks*/////OS_STKTaskStartStk[TASK_STK_SIZE];charTaskData[N_TASKS];/*Parameterstopasstoeachtask*/OS_STKTaskStartStk3[TASK_STK_SIZE];OS_STKTaskStartStk1[TASK_STK_SIZE];OS_STKTaskStartStk2[TASK_STK_SIZE];voidTaskStart3(void*data);voidTaskStart1(void*data);voidTaskStart2(void*data);longinthold1=0,//任务一次数 hold2=0;//任务二次数//OS_EVENT*SEMpevent;//*********************************************************************************************************//主函数//*********************************************************************************************************voidmain(void){ PC_DispClrScr(DISP_FGND_WHITE+DISP_BGND_BLACK);/*Clearthescreen*/OS_ENTER_CRITICAL(); PC_VectSet(0x08,OSTickISR);/*InstalluC/OS-II'sclocktickISR*/ PC_SetTickRate(OS_TICKS_PER_SEC);/*Reprogramtickrate*/ OS_EXIT_CRITICAL(); OSInit();/*InitializeuC/OS-II*/ PC_DOSSaveReturn();/*SaveenvironmenttoreturntoDOS*/ PC_VectSet(uCOS,OSCtxSw);/*InstalluC/OS-II'scontextswitchvector*/ 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();/*Startmultitasking*/}//*****************************************************************************//TASK1//*****************************************************************************voidTaskStart1(void*pdata){pdata=pdata;/*无任何意义,防止编译器报警*/for(;;){ PC_DispStr(0,0,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,1,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,2,"*****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,3,"TASKONE",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,4,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,5,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,6,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,7,"****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,8,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,9,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,10,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,11,"***name:zengtao*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,12,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,13,"***age:24*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,14,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,15,"***locationJiLinProvince.BeiHuauniversity*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,16,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,17,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,18,"****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,19,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,20,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,21,"*****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,22,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,23,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,24,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); hold1++; OSTimeDlyHMSM(0,0,1,0); }}//*****************************************************************************//TASK2//*****************************************************************************voidTaskStart2(void*pdata){ pdata=pdata; for(;;){ PC_DispStr(0,0,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,1,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,2,"*****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,3,"TASKTWO",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,4,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,5,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,6,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,7,"****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,8,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,9,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,10,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,11,"***zhuanye:zidonghua*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,12,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,13,"***class:08-1*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,14,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,15,"***xuehao:2603*",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,16,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,17,"**",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,18,"****************************************************************",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,19,"",DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY); PC_DispStr(0,20,"",

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论