嵌入式软件开发技术与方法_第1页
嵌入式软件开发技术与方法_第2页
嵌入式软件开发技术与方法_第3页
嵌入式软件开发技术与方法_第4页
嵌入式软件开发技术与方法_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第二章-嵌入式软件开发技术与方法本章目录嵌入式软件的应用与特点嵌入式软件设计与特点开发技术、开发方法实时软件分析设计方法开发平台、开发过程嵌入式软件的应用与特点微处理器已嵌入到你见到的几乎所有的电器中汽车、飞机、停车场、超市、手机嵌入式软件的开发需求日益激增多线程编程风格&嵌入式软件高可靠性嵌入式软件中常使用的C语言功能和特性多数学生具有高级语言编写桌面应用程序的经验嵌入式应用程序的特点可靠性性能成本嵌入式软件的成本消费产品的流行性和物美价廉的需要大批量生产的需要快速生产的需要嵌入式软件的可靠性嵌入式软件及其系统运行时间可能是一天、一月、一年等。运行中发生错误,无法重启。良好的编程实践能力&充分的测试嵌入式软件的性能指标应用程序新技术多任务处理和调度与各类外部设备的交互方法、速度、成本、复杂度等汇编语言的使用由于数的可表示范围,程序中关于越界的处理机制嵌入式软件设计与特点嵌入式软件全生命周期开发工具链硬件与软件的Co-Design:Verilog+C=?VerilogHDL是应用广泛的硬件描述语言.VerilogHDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述.

驱动程序的设计和生成技术(嵌入式软件开发中最令人头疼的问题)嵌入式软件的可靠性问题:正确性验证技术、测试技术、调试技术等(可靠性问题是嵌入式软件开发的基本问题)可重构计算(ReconfigurableComputing)技术可构件化的嵌入式实时操作系统及其开发环境开发技术、开发方法——

设计流程—自顶向下或自底向上设计需求设计说明体系结构构件设计系统集成自顶向下设计自底向上设计需求分析作用使用户和设计者有效交流、沟通,明确设计目标设计者-设计什么?有哪些要求?用户-将得到的系统是什么样的?目标形成需求文档内容功能性需求做什么?输入,输出,功能,……非功能性需求其他属性可靠性,速度,功耗,……成本,大小,重量,设计时间,……GPS移动地图系统:示例项目说明名称GPS移动地图目的为司机等用户提供图形状的移动地图输入一个电源开关、两个操作按钮、GPS信号输入输出LCD显示器,分辨率为400×600功能可接5种GPS接收器;三种用户可选的地图比例;总是显示当前经纬度性能0.25秒内即可更新一次屏幕,常温下工作生产成本1500元(人民币)功耗四节电池供电应连续工作8小时,功耗约100mW尺寸重量尺寸不大于20cm×30cm,重量不大于0.25公斤GPS移动地图是一种手持设备,该设备为用户(如汽车驾驶员)显示他当前所处位置周围的地图;显示的地图内容应随用户以及该设备所处位置的改变而改变。该设备从GPS上得到其位置信息,移动地图看起来类似纸张上的地图。针对用户的初步要求的系统需求表评价标准正确性无二义性完整性可检验性一致性可修改性可追踪性

硬件单片机,X86,PowerPC,ARM,MIPS,……板级支持程序嵌入式操作系统应用软件监控程序嵌入式计算机系统基本结构嵌入式软件子系统嵌入式系统的开发——流程需求分析及规格说明选择主要芯片确定编程语言选择开发环境RTOS的使用选择开发方案设计与调试测试与集成测试工具与其他辅助设备产品开发平台、开发过程——开发环境什么是嵌入式开发环境:源程序编译器目标文件链接器可重定位程序定位器可执行文件编译器/汇编器/链接定位器调试器/仿真器主机(Host)及其工作平台实时操作系统(可选)目标评估系统(可选)测试工具(软件/硬件/协议等,可选)其他辅助设备(可选)

典型的开发环境选择实时操作系统RTOS对于复杂的嵌入式系统应考虑使用RTOSRTOS的作用:提供API(应用编程接口):操作系统为应用程序员提供可供调用的API,允许程序员致力于应用程序的开发

简化系统设计:实时嵌入式系统比非实时系统更难设计.使用实时多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同的任务,由内核去对他们协调处理实验平台如下支持ARM的实时操作系统:uC/OSLinux嵌入式系统编程语言DatafromJapanITRONsurveyfornewembeddedsystems实时内核的作用有效管理响应时间管理并发线程的CPU时间管理并发线程间内存的使用比如专门用于消费市场的典型的小型嵌入式系统内核标准化工作,确立标准,使各种嵌入式内核能够兼容。如何构建嵌入式应用程序-1桌面应用程序的构建和加载运行工具软件组件过程:编译器或汇编器产生一个或多个目标文件,与动态连接库或运行时库进行链接,生成一个可执行程序,作为文件存放在磁盘上。运行:通过操作系统的加载程序,将可执行文件从磁盘加载到内存,运行。桌面系统可运行许多程序,可快速容易地加载运行。如何构建嵌入式应用程序-2嵌入式系统软件工具软件组件过程:编译器或汇编器产生一个或多个目标文件,与实时内核或可充入函数库进行链接,经重定位后,生成一个ROM映像文件,经ROM烧录器,存入ROM只读存储器中。运行:通电后通过程序初始化,将可执行映像从磁盘加载到RAM存储器中,运行。桌面系统可运行许多程序,可快速容易地加载运行。嵌入式系统开发及其环境

嵌入式系统开发需要宿主机(Host)和目标机(Target)的支持。宿主机属于嵌入式软件的开发平台,宿主机用于嵌入式软件的设计、实现、调试和运行等;目标机属于最终系统的运行平台,目标机作为可执行程序的最终运行平台,目标机是嵌入式系统的硬件部分,运行程序属于嵌入式系统的软件部分。交叉开发环境是指用于嵌入式软件开发中使用的所有工具软件的集合一般包括文本编辑器、交叉编译器、交叉调试器、仿真器、下载器等工具。交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。使得嵌入式软件可在两个平台上得以运行,什么是交叉编译技术?把在宿主机上编写的高级语言程序,编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。采用交叉编译技术的原因在于,嵌入式软件必须在开发过程中,进行反复调试才能产生正确的运行结果。此时才有必要将可执行程序移植到目标机上,移植技术关键在于在宿主机上可以生成目标机上运行的可执行程序。具有交叉编译技术的编译程序,实现了这一目标。采用宿主机和目标机支持嵌入式系统开发的原因宿主机是用于开发嵌入式系统的计算机,一般为PC机或者工作站,具备丰富的软硬件资源,为嵌入式软件的开发提供方便易行的全过程支持。目标机即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的,一般由处理器、装入嵌入式系统的ROM映像的ROM内存芯片、堆栈、中间变量、缓冲区、外设和接口组成。嵌入式软件开发的实现阶段可分为三个步骤:生成、调试和固化运行。软件生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。软件调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。软件固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。采用交叉调试方法的嵌入式软件开发存在一定的缺陷。比如:依赖硬件支持,必须有目标机或评估板;普通编程人员不易熟悉;开发成本高;可移植性、可扩展性不强;较难进行团队开发;开发周期较长等。采用非交叉调试方式的优点即仿真开发方式,这几点理由在某种程度上,解决了交叉调试开发方法的缺陷。嵌入式应用的开发经常会遭遇这样的问题,由于经费和构建条件所限,缺少目标机环境、缺乏目标机芯片等资源。而开发过程又不可能停止,因此自然就提出了根据不同的应用需要,利用较易构建的仿真器件及仿真环境进行开发的方法。软件仿真开发软件仿真开发(Simulator)的基本思路是,在宿主机机器上安装一种软件仿真器,即仿真程序,利用该仿真程序的运行,在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚拟目标机上运行、调试。软件仿真开发环境嵌入式软件开发人员只需要了解所使用的编程语言、编译器及其使用方法、操作系统系统API接口及系统函数,就可以实施并完成嵌入式软件的程序设计,生成虚拟机环境下可运行的可执行程序。可以在宿主机环境下查看到运行的结果,进行运行结果的分析,并反复进行软件的调试,最终生成一个认可的可执行软件。待时机条件具备时安装到目标机上运行。实时软件分析设计方法

嵌入式实时软件系统的生命周期分为以下几个阶段:需求分析与详细说明:对系统功能及性能的需求进行描述。系统设计:任务分解,定义任务间接口关系。任务设计:按模块方式设计每个任务,定义模块间接口。模块设计与实现:完成每个模块的详细设计、编码和单元测试。任务与系统集成:任务单独运行及并发运行调试,查看每个任务的运行结果。系统测试:针对需求分析结果,对系统功能性能进行测试和验证。一个基于实时操作系统内核的实时软件开发模型下图表示实时软件设计编程和运行层次结构。该图对实现实时应用程序功能设计接口和运行机制进行层次划分。指明基于操作系统内核进行应用开发的编程层次和接口。从而形成实时应用程序内部结构。调用调度RTOS内核任务调度管理具体业务逻辑功能硬件系统RTOS内核系统函数接口实时软件结构图实现具体实时应用业务逻辑一般采用分解任务的方法将一个实时应用功能划分为多个并发执行的任务。分配任务不同的优先级,赋予任务自主延迟功能,进行必要的任务通信,设置关键任务的中断响应。明确任务的执行条件、中断条件和挂起条件等因素。每个任务是系统中一个独立的执行调度单位和资源分配单位。调用RTOS内核系统函数接口,创建实时任务;任务的运行从接受内核调度开始,按照自身流程设计循环执行。直至系统运行结束。实时应用软件功能运行界面实时操作系统内核系统硬件平台实时应用任务2实时应用任务1实时应用任务n……任务模型的框架结构与构建

任务分解任务通信任务创建任务响应任务与内核连接任务分解任务分解是如何将一个实时应用业务逻辑,按照任务的管理和控制接口,划分为若干独立的任务,并发运行,实现应用功能。简单地分为设计阶段、编码阶段。任务分解的设计阶段、编码阶段设计阶段的主要工作包括:根据应用程序功能需求,将应用程序功能划分为若干并发任务。首先将需要并发执行的子功能确立为任务,任务优先级按响应的迫切程度确定。确定每个任务处理流程,确保完成任务功能。确定任务功能实现是否与其它任务的执行有关联。编码阶段的主要工作包括完成每

温馨提示

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

评论

0/150

提交评论