HUBEINORMALUNIVERSITY《嵌入式系统开发》课程设计论文Course’sThesis课程名称嵌入式系统开发论文题目具体嵌入式系统及其开发学生姓名何刚学号2012115020342指导教师熊旭辉所在院系计算机科学与技术学院专业名称通信工程完成时间2015/12/29具体嵌入式系统及其开发一、嵌入式系统简介嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。嵌入式系统主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等4个部分组成,它是集软硬件于一体的可独立工作的器件。嵌入式系统的软件部分包括操作系统软件(要求实时和多任务操作)和应用程序编程。操作系统控制着应用程序编程与硬件的交互作用,而应用程序控制着系统的运作和行为。嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。1.嵌入式开发环境:一个嵌入式系统的开发环境一般包括嵌入式目标板、开发用的宿主PC机和硬件调试器,他们之间通过串口、JTAG或BDM等调试接口和网络等接口互相连接。其中,嵌入式软件系统运行于嵌入式目标板上,这些软件所对应的程序开发和编译在宿主机上运行,程序的调试则由宿主机通过硬件调试器控制目标机执行相应的操作实现。在运行嵌入式Linux的系统时,硬件调试器只在Bootloader程序开发以及Linux内核移植时有可能需要使用。应用程序的开发通常是Linux操作系统在嵌入式目标机上运行起来之后进行。此时,更多的是在宿主机上使用GDB通过网络与目标板通信,进行程序的调试。也就是硬件调试器多在底层软件开发调试时使用,对于应用程序的开发调试通常使用其他手段。嵌入式Linux操作系统开发的第一步就是在宿主机上建立交叉开发所需的交叉编译环境。交叉编译环境的建立主要是在宿主机上安装交叉编译工具Cross-gcc。Cross-gcc工具链通常是使用别人已经编译好的交叉编译的GCC工具链。在交叉编译环境建立好之后,就可以在宿主机上利用交叉编译环境构造一个嵌入式Linux系统。Linux操作系统是由Linux内核和应用程序两大部分组成。Linux内核的开发主要是根据实际的需要进行内核裁剪和配置,然后用交叉编译器编译生成内核的二进制文件映像。对于许多自行设计的嵌入式系统,内核的开发还包括根据实际的硬件系统进行内核和外设驱动程序的移植开发。应用程序通常都放在Linux的根文件系统中。根文件系统主要存放了嵌入式的配置文件、设备文件、应用程序、动态链接库以及其他一些相关的程序和文件。通常最初的根文件系统只是一个基本的根文件系统,只包含了一些必要的系统支撑程序。在宿主机PC机上完成嵌入式Linux软件系统的构建之后,就在嵌入式硬件系统上测试、运行构造好的嵌入式Linux软件系统。其中,测试工作需要在宿主机上通过远程终端操控嵌入式开发板完成。通常在嵌入式开发板上存在一个内核的引导加载程序,它用于硬件的初始化,给用户提供一个操作界面,将嵌入式Linux加载到内存中运行。除此之外,它对于嵌入式Linux系统的开发调试也起到很大的作用。一个基本的嵌入式Linux系统在目标板上运行起来之后,就要进行程序移植开发和调试。(1)嵌入式Linux操作系统的应用由于Linux具有对各种设备的广泛支持性,因此,能方便地应用在机顶盒、IA设备、PDA、掌上电脑、WAP手机、寻呼机、车载盒以及工业控制等智能信息产品中。(2)嵌入式工业控制网络的实现方案基于嵌入式Linux的工控系统以嵌入式微处理器为核心来运行嵌入式Linux操作系统。应用程序可通过网络进行更新,并可通过键盘进行人机对话,数据可通过LCD现场显示,重要数据可用文件形式保存在Flash等闪存存储器中;数据和报警信息可通过串口向上位机传输,也可以通过以太网向工业以太网或Internet发布,用户还可通过网络实现远程监控和远程维护。更为关键的是,可充分利用Internet上已有的软件和协议应用程序迅速搭建前台数据采集系统,以实现测控系统和后台管理系统的通讯。2.实时多任务操作系统RTOS(RealTimemulti-taskingOperationSystem),即实时多任务操作系统是嵌入式应用软件的基础和开发平台。目前在中国大多数嵌入式软件开发还是基于处理器直接编写,没有采用商品化的RTOS,不能将系统软件和应用软件分开处理。RTOS是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在RTOS之上。不但如此,RTOS还是一个可靠性和可信性很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。TOS是针对不同处理器优化设计的高效率实时多任务内核,优秀商品化的RTOS可以面对几十个系列的嵌入式处理器MPU、MCU、DSP、SOC等提供类同的API接口,这是RTOS基于设备独立的应用程序开发基础。因此基于RTOS上的C语言程序具有极大的可移植性。据专家测算,优秀RTOS上跨处理器平台的程序移植只需要修改1~5%的内容。在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此RTOS又是一个软件开发平台。RTOS是嵌入式系统的软件开发平台。RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的API。RTOS的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理成为一个大的课题。引入RTOS相当于引入了一-种新的管理模式,对于开发单位和开发人员都是一个提高。基于RTOS开发出的程序,具有较高的可移植性,实现90%以上设备独立,一些成熟的通用程序可以作为专家库函数产品推向社会。嵌入式软件的函数化、产品化能够促进行业交流以及社会分工专业化,减少重复劳动,提高知识创新的效率。嵌入式工业的基础是以应用为中心的芯片设计和面向应用的软件开发。实时多任务操作系统(RTOS)进入嵌入式工业的意义不亚于历史上机械工业采用三视图的(网学)贡献,对嵌入式软件的标准化和加速知识创新是一个里程碑。3.嵌入式系统软件的特点嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有所不同。(1)软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。(2)尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。(3)系统软件(OS)的高实时性是基本要求。在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。(4)多任务操作系统是知识集成的平台和走向工业标准化道路的基础。二、嵌入式开发概述1.嵌入式系统开发需要开发工具和环境通用计算机具有完善的人机接口界面,在上面增加一些开发应用程序和环境即可进行对自身的开发。而嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。2.嵌入式系统软件需要RTOS开发平台通用计算机具有完善的操作系统和应用程序接口(API),是计算机基本组成不可分离的一部分,应用程序的开发以及完成后的软件都在OS平台上面运行,但一般不是实时的。嵌入式系统则不同,应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。3.嵌入式Linux系统的开发流程嵌入式系统的开发与通常PC机上的软件开发有很大的区别,原有的PC机的软件开发过程从编写程序、编译和运行等过程全在同一个PC机平台上完成;嵌入式开发的程序编写和编译还在PC机上完成,但编译产生的结果要在嵌入式目标平台上运行。通常将这种在主机上开发编译,在目标平台上调试运行的开发模式称为交叉开发。运行在主机上的编译器(如GCC)编译程序产生目标机上运行的可执行程序的编译过程称为交易编译。嵌入式系统采用这种交叉开发、交叉编译的开发模式主要是因为嵌入式系统是种专用的计算机系统,采用量体裁衣、量身定制的方法制造,它的这种特点使其与通用PC机的开发与使用特点有很大的不同。一个嵌入式系统的开发环境一般包括嵌入式目标板、开发用的宿主PC机和硬件调试器,他们之间通过串口、JTAG或BDM等调试接口和网络等接口互相连接。其中,嵌入式软件系统运行于嵌入式目标板上,这些软件所对应的程序开发和编译在宿主机上运行,程序的调试则由宿主机通过硬件调试器控制目标机执行相应的操作实现。在运行嵌入式Linux的系统时,硬件调试器只在Bootloader程序开发以及Linux内核移植时有可能需要使用。应用程序的开发通常是Linux操作系统在嵌入式目标机上运行起来之后进行。此时,更多的是在宿主机上使用GDB通过网络与目标板通信,进行程序的调试。也就是硬件调试器多在底层软件开发调试时使用,对于应用程序的开发调试通常使用其他手段。在交叉编译环境建立好之后,就可以在宿主机上利用交叉编译环境构造一个嵌入式Linux系统。Linux操作系统是由Linux内核和应用程序两大部分组成。Linux内核的开发主要是根据实际的需要进行内核裁剪和配置,然后用交叉编译器编译生成内核的二进制文件映像。对于许多自行设计的嵌入式系统,内核的开发还包括根据实际的硬件系统进行内核和外设驱动程序的移植开发。应用程序通常都放在Linux的根文件系统中。根文件系统主要存放了嵌入式的配置文件、设备文件、应用程序、动态链接库以及其他一些相关的程序和文件。通常最初的根文件系统只是一个基本的根文件系统,只包含了一些必要的系统支撑程序。三、嵌入式Linux操作系统的应用由于Linux具有对各种设备的广泛支持性,因此,能方便地应用在机顶盒、IA设备、PDA、掌上电脑、WAP手机、寻呼机、车载盒以及工业控制等智能信息产品中。四、结束语嵌入式系统是一个很有发展空间的领域,以嵌入式系统为标志的后PC时代已经到来。但嵌入式系统是一个软硬件结合很紧密的课题,使得我对硬件要有一个较深的了解。参考文献:[1]《ColdFire嵌入式系统设计》———曹建安,陶慧斌。西安电子科技大学出版社[2]《嵌入式操作系统开发与应用程序设计》——迟文丽,王金龙。清华大学出版社[3]何加铭主编.嵌入式32位微处理器系统设计与应用.电子工业出版社.2006[4]张义磊,丁:涛,安吉宇.三星S3C2410在嵌入式工业控制系统中的应用.长春理工大学