chap2嵌入式软件开发技术与方法.ppt

上传人:b****1 文档编号:1387015 上传时间:2022-10-21 格式:PPT 页数:38 大小:718KB
下载 相关 举报
chap2嵌入式软件开发技术与方法.ppt_第1页
第1页 / 共38页
chap2嵌入式软件开发技术与方法.ppt_第2页
第2页 / 共38页
chap2嵌入式软件开发技术与方法.ppt_第3页
第3页 / 共38页
chap2嵌入式软件开发技术与方法.ppt_第4页
第4页 / 共38页
chap2嵌入式软件开发技术与方法.ppt_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

chap2嵌入式软件开发技术与方法.ppt

《chap2嵌入式软件开发技术与方法.ppt》由会员分享,可在线阅读,更多相关《chap2嵌入式软件开发技术与方法.ppt(38页珍藏版)》请在冰豆网上搜索。

chap2嵌入式软件开发技术与方法.ppt

第二章-嵌入式软件开发技术与方法,本章目录,嵌入式软件的应用与特点嵌入式软件设计与特点开发技术、开发方法实时软件分析设计方法开发平台、开发过程,嵌入式软件的应用与特点,微处理器已嵌入到你见到的几乎所有的电器中汽车、飞机、停车场、超市、手机嵌入式软件的开发需求日益激增多线程编程风格&嵌入式软件高可靠性嵌入式软件中常使用的C语言功能和特性多数学生具有高级语言编写桌面应用程序的经验嵌入式应用程序的特点可靠性性能成本,嵌入式软件的成本,消费产品的流行性和物美价廉的需要大批量生产的需要快速生产的需要,嵌入式软件的可靠性,嵌入式软件及其系统运行时间可能是一天、一月、一年等。

运行中发生错误,无法重启。

良好的编程实践能力&充分的测试,嵌入式软件的性能指标,应用程序新技术多任务处理和调度与各类外部设备的交互方法、速度、成本、复杂度等汇编语言的使用由于数的可表示范围,程序中关于越界的处理机制,嵌入式软件设计与特点,嵌入式软件全生命周期开发工具链硬件与软件的Co-Design:

Verilog+C=?

VerilogHDL是应用广泛的硬件描述语言VerilogHDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。

适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述驱动程序的设计和生成技术(嵌入式软件开发中最令人头疼的问题)嵌入式软件的可靠性问题:

正确性验证技术、测试技术、调试技术等(可靠性问题是嵌入式软件开发的基本问题)可重构计算(ReconfigurableComputing)技术可构件化的嵌入式实时操作系统及其开发环境,开发技术、开发方法设计流程自顶向下或自底向上设计,自顶向下设计,自底向上设计,需求分析,作用使用户和设计者有效交流、沟通,明确设计目标设计者设计什么?

有哪些要求?

用户将得到的系统是什么样的?

目标形成需求文档内容功能性需求做什么?

输入,输出,功能,非功能性需求其他属性可靠性,速度,功耗,成本,大小,重量,设计时间,,GPS移动地图系统:

示例,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内核系统函数接口,创建实时任务;任务的运行从接受内核调度开始,按照自身流程设计循环执行。

直至系统运行结束。

任务模型的框架结构与构建,任务分解,任务分解是如何将一个实时应用业务逻辑,按照任务的管理和控制接口,划分为若干独立的任务,并发运行,实现应用功能。

简单地分为设计阶段、编码阶段。

任务分解的设计阶段、编码阶段,设计阶段的主要工作包括:

根据应用程序功能需求,将应用程序功能划分为若干并发任务。

首先将需要并发执行的子功能确立为任务,任务优先级按响应的迫切程度确定。

确定每个任务处理流程,确保完成任务功能。

确定任务功能实现是否与其它任务的执行有关联。

编码阶段的主要工作包括完成每个任务的程序设计。

将任务流程使用C语言编写为独立的函数。

根据应用需求,不同的任务也可共用同一个函数的代码段。

由于实时任务有确定优先级,为确保低优先级任务有机会运行。

每个任务函数中需包括睡眠、挂起、等待指定时间等一些自主放弃CPU的语句,调用内核函数实现。

技术、平台开发平台,基于嵌入式实时操作系统C/OS-II的内核及其软件开发工具BorlandC/C+V4.5,Makefile工程管理程序等,完成应用程序的设计、编码、编译、链接、运行等基本过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1