嵌入式系统及应用——嵌入式软件设计方法_第1页
嵌入式系统及应用——嵌入式软件设计方法_第2页
嵌入式系统及应用——嵌入式软件设计方法_第3页
嵌入式系统及应用——嵌入式软件设计方法_第4页
嵌入式系统及应用——嵌入式软件设计方法_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统及应用嵌入式系统及应用第七章第七章嵌入式软件设计方法嵌入式软件设计方法 嵌入式软件工程思想嵌入式软件嵌入式软件工程思想嵌入式软件开发过程开发过程 一些基本的设计原则一些基本的设计原则 通用的设计方法通用的设计方法 专用的设计方法专用的设计方法 设计方法的发展设计方法的发展核心内容核心内容嵌入式软件的分类嵌入式软件的分类嵌入式软件的特点嵌入式软件的特点嵌入式软件生命期嵌入式软件生命期7.1 7.1 嵌入式软件工程嵌入式软件工程在传统的软件工程方法基础上,在传统的软件工程方法基础上,面向增加实时、并发等设计技术而形面向增加实时、并发等设计技术而形成的。成的。 一、嵌入式软件工程的基本思想

2、一、嵌入式软件工程的基本思想嵌入式软件嵌入式软件的生命期的生命期任务的实时性任务的实时性时间特性时间特性强调计算状态的时间边界和它们强调计算状态的时间边界和它们之间的关系之间的关系时间表达时间表达基于时间点、基于时间间歇(开基于时间点、基于时间间歇(开始、终止)始、终止)时间限制时间限制在满足了所有启动条件后,对一在满足了所有启动条件后,对一个可执行对象开始执行和必须终止的约束:个可执行对象开始执行和必须终止的约束:startstart、deadlinedeadline关注关注嵌入式实时系统嵌入式实时系统并发任务之间的协作关系并发任务之间的协作关系互斥问题互斥问题同步问题同步问题信息隐藏信息隐

3、藏任务之间、模块之间接口任务之间、模块之间接口消除全局变量消除全局变量关注关注二、二、 嵌入式软件嵌入式软件的分类的分类实时性实时性环境特定;快速启动环境特定;快速启动异步事件的并发处理异步事件的并发处理 多任务;多任务;随机性随机性应用操作系统一体化应用操作系统一体化 VxWorksVxWorks;LinuxLinux应用固化应用固化不可修改性不可修改性实用性实用性面向行业;定向开发面向行业;定向开发适用性适用性可裁减,适应应用可裁减,适应应用鲁棒性鲁棒性容错容错够用即可够用即可成本、资源成本、资源可信性可信性安全、防危、可靠等安全、防危、可靠等三、嵌入式软件三、嵌入式软件的特点的特点四、四

4、、 嵌入式软件嵌入式软件开发过程开发过程软件开发的步骤软件开发的步骤1. 确定嵌入式软件的需求确定嵌入式软件的需求2. 选择微处理器和相关硬件选择微处理器和相关硬件3. 选择操作系统选择操作系统4. 确定软件体系结构确定软件体系结构5. 嵌入式软件设计嵌入式软件设计6. 选择开发平台选择开发平台7. 编码调试编码调试8. 软件测试软件测试功能需求功能需求基本功能基本功能/ /扩展功能扩展功能对应于软件功能的硬件对应于软件功能的硬件非功能需求非功能需求外观、尺寸、功耗、成本、外观、尺寸、功耗、成本、实时、安全、可靠、实时、安全、可靠、面向开发者的需求面向开发者的需求1 1 确定嵌入式软件的需求确

5、定嵌入式软件的需求1)1)只指明外部行为,不考虑特殊实现只指明外部行为,不考虑特殊实现2)2)列出实现的限制,必须特别说明硬件接口细节列出实现的限制,必须特别说明硬件接口细节(针对嵌入式系统)(针对嵌入式系统)3)3)文档易修改文档易修改4)4)必须记录有关系统生存期的一些考虑必须记录有关系统生存期的一些考虑5)5)必须特征化针对异常事件的响应,包括必须特征化针对异常事件的响应,包括- - 资源失败资源失败临时或永久临时或永久- - 非正确输入非正确输入输入、比较、出错、输出输入、比较、出错、输出- - 非正确内部数据非正确内部数据不一致、比较、输出不一致、比较、输出需求说明的要点需求说明的要

6、点1)1)与所委派事件相关,可以是绝对时间与所委派事件相关,可以是绝对时间- - 给定时间达到后,事件发生给定时间达到后,事件发生- - 超过限定时间,事件不允许发生超过限定时间,事件不允许发生- - 在事件发生前可以产生哪些计算活动在事件发生前可以产生哪些计算活动2)2)根据优先级响应某种事件根据优先级响应某种事件时间限制时间限制最重要说明最重要说明1)1)硬件硬件接口接口必要特征、任意细节、输必要特征、任意细节、输入输出入输出2)2)软件功能软件功能功能结构,条件事件,功能结构,条件事件,所用模型,特殊处理所用模型,特殊处理3)3)状态图状态图一种可视化的形式化方法,一种可视化的形式化方法

7、,用于说明复杂系统的行为,所有行为由用于说明复杂系统的行为,所有行为由外部刺激产生。外部刺激产生。- - 状态、事件、条件、变迁状态、事件、条件、变迁需求说明需求说明必须包含的内容必须包含的内容状态图状态图示例示例1)1)所有与设计相关的需求(所有与设计相关的需求(功能、非功能)功能、非功能)必必须明确说明须明确说明例:若无例:若无deadlinedeadline,就不考,就不考虑硬实时虑硬实时2)2)在许可条件下,尽可能提高速度(计算机、在许可条件下,尽可能提高速度(计算机、网络)网络)确保采样率、资源使用、确保采样率、资源使用、DeadlineDeadline等等3)3)指定软件组件之间的

8、接口需求指定软件组件之间的接口需求标识消息标识消息传递。传递。4)4)需要指定系统正常运行对需要指定系统正常运行对CPUCPU的使用率的使用率便便于管理共享资源。于管理共享资源。需求考虑需求考虑嵌入式处理器嵌入式处理器应用规模、领域应用规模、领域功能硬件功能硬件处理器相关、应用功能确定处理器相关、应用功能确定目标板设计需求目标板设计需求配套芯片、配套芯片、外观、尺寸、功外观、尺寸、功耗、成本耗、成本2. 选择微处理器和相关硬件选择微处理器和相关硬件来源来源专用专用(自己写)(自己写)、COTSCOTS( (商用成品)、商用成品)、选择选择1.1.应用领域应用领域2.2.实时性实时性3.3.微处

9、理器支持微处理器支持4.4.功能性功能性5.5.成本成本6.6.资源占用情况资源占用情况7.7.语言支持语言支持3. 选择操作系统选择操作系统4. 确定软件体系结构确定软件体系结构5. 嵌入式软件设计嵌入式软件设计确定嵌入式软件实现需求所使用的具体结构框架、模块、模块间关系、模块内过程处理、系统相关接口等。6. 选择开发平台选择开发平台开发平台的工具组成:开发平台的工具组成:1.操作系统操作系统2.编码工具编码工具3.仿真工具仿真工具4.调试工具调试工具5.测试工具测试工具6.其他工具其他工具系统配置剪裁工具系统配置剪裁工具项目管理工具项目管理工具系统分析设计工作系统分析设计工作7. 编码调试

10、编码调试清除无用代码清除无用代码避免使用递归避免使用递归资源资源减少浮点运算减少浮点运算速度速度精简库函数精简库函数清除调试代码清除调试代码精炼精炼基本的编码原则基本的编码原则基本方法基本方法类似于一般软件测试类似于一般软件测试特殊性特殊性可靠性测试可靠性测试实时性测试实时性测试并发性测试并发性测试资源占用测试资源占用测试8. 软件测试软件测试通用软件设计通用软件设计方法在嵌入式软件方法在嵌入式软件开发领域的应用开发领域的应用7.2 7.2 常规设计方法常规设计方法一、一、语言描述语言描述必不可少的分析设计方法,优缺点突出必不可少的分析设计方法,优缺点突出对其他方法的补充对其他方法的补充 交叉

11、调试器的调试流程交叉调试器的调试流程(1)连接宿主机与目标机)连接宿主机与目标机(2)将目标程序从宿主机下载到目标机)将目标程序从宿主机下载到目标机(3)在源程序中设置调试开发位置和断点)在源程序中设置调试开发位置和断点(4)启动目标程序,运行到准备调试位置,等待下一调试)启动目标程序,运行到准备调试位置,等待下一调试命令命令(5)返回当前信息)返回当前信息(6)单步调试或断点调试)单步调试或断点调试(7)反复执行()反复执行(5)和()和(6),直到收到停止调试命令,或),直到收到停止调试命令,或程序执行完成程序执行完成二、二、形式化描述形式化描述形式化分析,是一种精确而有效的方法形式化分析

12、,是一种精确而有效的方法最好的验证方式最好的验证方式缺点突出缺点突出应用应用大型系统中的关键部件设计大型系统中的关键部件设计软件性能优化软件性能优化科学计算科学计算三、三、流程图流程图 最早之一最早之一四、结构图四、结构图 体系结构体系结构五、伪代码五、伪代码 类编码类编码它以一种类似于真正的编写代码的方式来说明它以一种类似于真正的编写代码的方式来说明系统。系统。比直接应用语言来描述系统需求更抽象,而同时比直接应用语言来描述系统需求更抽象,而同时比前述所有方法都更接近实际的编程语言。比前述所有方法都更接近实际的编程语言。最大的缺点是易出错、难查错。最大的缺点是易出错、难查错。x :=y :=0

13、;for i=1.20 beginx:=x+1if x 10 then y:+x*3; else y :=y*2; endprint x,y;六六有有限限状状态态机机描述控描述控制特性制特性 一种使用图形方式对系统进行需求规格一种使用图形方式对系统进行需求规格说明的技术,用来定义多进程、多任务系说明的技术,用来定义多进程、多任务系统的数学模型,易于描述系统的并发、竞统的数学模型,易于描述系统的并发、竞争、同步等特征,并可用于评价和改进系争、同步等特征,并可用于评价和改进系统。统。七、七、PetriPetri网网 构成 一个有限的库所(一个有限的库所(placeplace)集合,表示系统的状态)

14、集合,表示系统的状态一个有限的变迁(一个有限的变迁(transitiontransition)集合,表示系统中的)集合,表示系统中的事件事件库所:一个有限的连接库所到变迁或者反向的有向箭库所:一个有限的连接库所到变迁或者反向的有向箭头的集合,又分输入和输出头的集合,又分输入和输出令牌(令牌(TokenToken)是库所中的动态对象,可以从一个库所)是库所中的动态对象,可以从一个库所移动到另一个库所移动到另一个库所 定义多进程多任务关系:同定义多进程多任务关系:同步、竞争、并发、评价步、竞争、并发、评价PetriPetri网演化过程网演化过程优缺点优缺点 优点在于简单易用,状态间的关系能够直观看

15、到。优点在于简单易用,状态间的关系能够直观看到。 最大的缺点是:任何时刻系统只能有一个状态,最大的缺点是:任何时刻系统只能有一个状态,无法表示并发性,不能描述异步并发的系统。无法表示并发性,不能描述异步并发的系统。 系统部件较多时,状态数随之增加,导致复杂性系统部件较多时,状态数随之增加,导致复杂性显著增长。显著增长。八、数据流图八、数据流图DFDDFD,描述数据转换和流动情,描述数据转换和流动情况,确定功能关联况,确定功能关联7.37.3 实时多任务设计实时多任务设计 起因:起因:常规方法的不足常规方法的不足重点:重点:并发性、实时性设计并发性、实时性设计方式:方式:传统方法的实时性改造传统

16、方法的实时性改造要点:要点:多任务划分多任务划分 基于事件、基于结构基于事件、基于结构1. RTSAD1. RTSAD方法方法 Real time Structured Analysis and DesignReal time Structured Analysis and DesignRTSARTSA阶段:阶段:实时系统需求模型实时系统需求模型RTSDRTSD阶段:阶段:实时系统设计实时系统设计基本概念:基本概念:模块内聚模块内聚 模块耦合模块耦合 数据流、控制流数据流、控制流RTSARTSA主要活动及其结果主要活动及其结果RTSDRTSD主要活动及其结果主要活动及其结果功能、转换、过程功能

17、RTSADRTSAD示例示例 汽车行驶监控汽车行驶监控车速数据流车速数据流 汽车行驶监控汽车行驶监控车速状态转换车速状态转换汽车行驶监控汽车行驶监控任务划分任务划分优先级设置2. DARTS2. DARTS方法方法 Design Approach Design Approach for Real-Time for Real-Time system system (实时系统(实时系统设计方法)设计方法)将系统将系统结构化成并发任务结构化成并发任务并定义任务间接口并定义任务间接口DARTSDARTS设计过程设计过程需求分析需求分析分析数据流,确定主要功能;分析数据流,确定主要功能;划分进程划分进程

18、根据数据流中的进程变迁标根据数据流中的进程变迁标识划分进程:变迁是一个独立的进程,或识划分进程:变迁是一个独立的进程,或与其他变迁组成一个进程;与其他变迁组成一个进程;进程间通信进程间通信支持同步传输,有两种方支持同步传输,有两种方式:消息通信和共享数据;式:消息通信和共享数据;DARTSDARTS任务划分原则任务划分原则 I/OI/O依赖性依赖性直接操作直接操作I/OI/O设备设备 时间关键性时间关键性对时间有很强要求,必须具对时间有很强要求,必须具有高优先级有高优先级 周期执行周期执行 时间内聚时间内聚多个,同一时段,重复多个,同一时段,重复 功能内聚功能内聚多个,功能紧密,交互多多个,功

19、能紧密,交互多 计算需求计算需求大量、低优先级大量、低优先级DARTSDARTS任务接口任务接口DARTSDARTS任务接口(续)任务接口(续)DARTSDARTS示例示例机器人控制机器人控制控制执行过程控制执行过程 按下按下“上电上电”按钮,系统进入了上电状态。按钮,系统进入了上电状态。 上电成功后,系统进入了手动状态。此时,操作者上电成功后,系统进入了手动状态。此时,操作者可以通过程序选择开关选择程序可以通过程序选择开关选择程序 按下按下“运行运行”按钮,则选定的程序开始运行,系统按钮,则选定的程序开始运行,系统转为运行态。转为运行态。 程序运行中如果按下程序运行中如果按下“停止停止”键,

20、程序被挂起。之键,程序被挂起。之后,操作者可以按下后,操作者可以按下“运行运行”键,使程序恢复执行,键,使程序恢复执行,也可按下也可按下“结束结束”键,结束程序。键,结束程序。 按下按下“结束结束”键后,系统进入终止态。当程序最终键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。终止执行时,系统返回手动状态。 系统状态变迁图系统状态变迁图执行流程执行流程数数据据流流图图任任务务划划分分任任务务界界面面方法比较方法比较 RTSASDRTSASD通过应用控制转换和规范状态转换图通过应用控制转换和规范状态转换图表可与功能分解很好地结合,处理了系统行为方表可与功能分解很好地结合,处理了系统

21、行为方面的问题;但在任务结构和信息隐藏方面不足;面的问题;但在任务结构和信息隐藏方面不足; DARTSDARTS通过引入应用任务结构化准则和定义任通过引入应用任务结构化准则和定义任务接口来解决务接口来解决RTSADRTSAD在任务结构化方面的弱点,但在任务结构化方面的弱点,但它并没有广泛地应用信息隐藏,只是应用它并没有广泛地应用信息隐藏,只是应用SDSD方法方法把过程化模块进行结构化;它引入了有限状态机把过程化模块进行结构化;它引入了有限状态机7.4 7.4 设计方法的发展设计方法的发展复杂性复杂性单机单机 网络网络应用领域应用领域广泛;差异大广泛;差异大集成度集成度软硬件协同软硬件协同更新速

22、度更新速度重用重用通用方法通用方法多种起因:多种起因:1. 1. 软硬件协同设计软硬件协同设计2. 2. 构件化设计构件化设计3. 3. 基于中间件的设计基于中间件的设计7.5 7.5 基本设计原则基本设计原则 l尽量简单尽量简单l使用静态表使用静态表l尽量减少动态性尽量减少动态性l恰当的任务数目恰当的任务数目l使用有限状态自动机辅助设计使用有限状态自动机辅助设计l面向对象设计面向对象设计l减少预留接口减少预留接口尽量简单尽量简单l不存在完善方法不存在完善方法任何的设计都只任何的设计都只能尽量好,不可能最优。能尽量好,不可能最优。l以成本为基准以成本为基准开发计划易实现,开发计划易实现,成本费

23、用可控制,软件质量有保障成本费用可控制,软件质量有保障l不能过于强调精简不能过于强调精简软件具有可读软件具有可读性、可移植性、易维护性、可移植性、易维护l常用模型和方法常用模型和方法原型模型、增量原型模型、增量模型、组件构件方法模型、组件构件方法使用静态表使用静态表l系统运行前,根据各任务的实时要求系统运行前,根据各任务的实时要求生成一张任务的运行时间表,指明各生成一张任务的运行时间表,指明各任务的起始运行时间以及运行长度任务的起始运行时间以及运行长度l运行时间表生成后,在系统运行过程运行时间表生成后,在系统运行过程中不再变化中不再变化l系统运行时,调度器只需根据这张表系统运行时,调度器只需根

24、据这张表在指定的时刻启动相应的实时任务在指定的时刻启动相应的实时任务减少动态性减少动态性l特点决定特点决定嵌入式系统中,时间资嵌入式系统中,时间资源非常宝贵,往往需要以空间换时间源非常宝贵,往往需要以空间换时间l采用静态数据结构采用静态数据结构如如静态数组静态数组l不能绝对禁止动态不能绝对禁止动态消息队列、资消息队列、资源丰富系统、动态更新源丰富系统、动态更新减少任务数减少任务数l任务队列变长,任务调度管理复杂任务队列变长,任务调度管理复杂化,调度延迟增加,从而降低整个化,调度延迟增加,从而降低整个系统的实时性能系统的实时性能l任务数目的增多,任务间通信几何任务数目的增多,任务间通信几何级数增

25、长,影响系统的实时性能级数增长,影响系统的实时性能l原则原则在实时性允许的范围内定在实时性允许的范围内定义适当的任务数目义适当的任务数目例:增量开发方法例:增量开发方法 描述描述融合了线性顺序模型的基本成分和原型融合了线性顺序模型的基本成分和原型模型的迭代模型的迭代. .采用随日程时间的进展而交错的线性序列采用随日程时间的进展而交错的线性序列每个线性序列产生软件的一个可发布增量每个线性序列产生软件的一个可发布增量任何增量的处理流程均可结合进原型规范任何增量的处理流程均可结合进原型规范开发过程开发过程用户对需求不清楚用户对需求不清楚开发者从部分需求开始,建立一个不完全开发者从部分需求开始,建立一

26、个不完全系统系统通过测试和运行该系统,取得经验和反馈,通过测试和运行该系统,取得经验和反馈,加深对需求的认识加深对需求的认识进一步扩展和完善系统进一步扩展和完善系统反复进行,直到满意反复进行,直到满意特点特点 增量模型中,第一个增量往往是增量模型中,第一个增量往往是系统(产品)的核心功能系统(产品)的核心功能 对上一个增量的发布版本的使用对上一个增量的发布版本的使用评估,导致下一个增量开发过程评估,导致下一个增量开发过程 增量模型强调每个增量都是一个增量模型强调每个增量都是一个可运行版本可运行版本 不同于原型不同于原型 增量开发可以有计划地管理技术增量开发可以有计划地管理技术风险,使产品尽早投

27、入市场风险,使产品尽早投入市场示例示例1 1设计字处理软件设计字处理软件 第一个增量发布基本的文件第一个增量发布基本的文件管理、编辑、文档生成功能管理、编辑、文档生成功能 第二个增量发布完善的文件第二个增量发布完善的文件管理、编辑、文档生成功能管理、编辑、文档生成功能 第三个增量实现拼写和语法第三个增量实现拼写和语法检查功能检查功能 第四个增量完成高级的页面第四个增量完成高级的页面布局功能布局功能示例示例2 2一个编辑器软件一个编辑器软件电子阅读器项目整体要求电子阅读器项目整体要求a) 以扩展闪存卡的方式获取资料,可以阅读制定以扩展闪存卡的方式获取资料,可以阅读制定格式的电子文档,并且可以把资料保存在扩展格式的电子文档,并且可以把资料保存在扩展闪存卡上随身携带闪存卡上随身携带b) 特点特点充分利用友好的人机互动界面激发学充分利用友好的人机互动界面激发学生学习英语的兴趣,达到寓教于乐的目的生学习英语的兴趣,达到寓教于乐的目的c) 功能功能支持图片和动画显示及声音播放功能;支持图片和动画显示及声音播放功能;提供了复读功能提供了复读功能示例示例2 2续一续一开发运行平台开发运行平台a)a)开发平台开发

温馨提示

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

评论

0/150

提交评论