嵌入式软件的编程与优化.ppt

嵌入式软件的编程与优化.ppt

ID:52387266

大小:2.23 MB

页数:45页

时间:2020-04-05

嵌入式软件的编程与优化.ppt_第1页
嵌入式软件的编程与优化.ppt_第2页
嵌入式软件的编程与优化.ppt_第3页
嵌入式软件的编程与优化.ppt_第4页
嵌入式软件的编程与优化.ppt_第5页
资源描述:

《嵌入式软件的编程与优化.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多任务编程技术第10章嵌入式软件的编程与优化10.2多任务编程技术任务划分原则任务间通讯机制的选择任务的细节设计多任务软件系统设计实例10.2.1任务划分原则嵌入式多任务软件系统的设计阶段:系统功能框图多任务流程图例:数据采集系统的功能框图转化为传感器1传感器2数据处理显示处理功能子处理功能数据图10-2数据采集系统功能框图10.2.1任务划分原则任务划分存在以下一对矛盾如果划分的任务数太多,必然增加系统任务切换的开销如果任务数太少,系统的并行度和实时性将降低10.2.1任务划分原则任务划分的H.Gomma原则(1)I/O依赖性原则(DependencyonInput/OutputDevic

2、e)(2)时间关键性的功能原则(Time-CriticalFunctions-HardDeadline)(3)大计算量的功能原则(HeavyComputationFunction)10.2.1任务划分原则(4)功能内聚性原则(FunctionalRelations)(5)时间内聚性原则(TemporalRelations)(6)周期执行的功能原则(CyclicExecutingFunction)核心思想:系统内功能的异步性10.2.1任务划分原则1.I/O依赖性原则如果变换依赖于I/O,则变换运行的速度常常受限于与它互操作的I/O设备的速度。在这种情况下,变换应该成为一个独立的任务图10-3

3、按照I/O依赖性原则进行任务划分10.2.1任务划分原则按照I/O依赖性原则进行任务划分的方法(1)在系统中创建与I/O设备类型数目相当的I/O任务,一个任务管理一类I/O设备(非一个任务管理一个I/O设备)例:3个RS232、4个USB、2个以太网(2)I/O任务只实现与设备相关的功能代码,任务中分离设备相关性(3)I/O任务的执行只受限于I/O设备的速度,而不是处理器的速度10.2.1任务划分原则2.时间关键性的功能原则按照该原则进行任务划分的方法是:(1)将有时间关键性(即最后时间期限Deadline)的功能分离出来,组成独立运行的任务(2)赋予这些任务高的优先级,以满足Deadlin

4、e的要求例:刀具切割机10.2.1任务划分原则图10-4按照时间关键性的功能原则进行任务划分10.2.1任务划分原则3.大计算量的功能原则按照该原则进行任务划分的方法是:(1)当计算功能占用CPU的时间较多时,捆绑计算功能成任务,赋予它们较低优先级运行,这样一方面消耗CPU的剩余时间,另一方面能被高优先级的任务抢占(2)保持高优先级的任务是轻量级的(3)多个计算任务可安排成相同优先级,按照时间片循环轮转10.2.1任务划分原则图10-5按照大计算量的功能原则进行任务划分10.2.1任务划分原则4.功能内聚性原则按照该原则进行任务划分的方法是:(1)各紧密相关的功能,不要分别对应不同的任务(2

5、)将这些紧密相关的功能组,组成一个任务,使各功能共享资源或相同事件的驱动10.2.1任务划分原则图10-6按照功能内聚性原则进行任务划分意义:减少系统的通讯开销保证了任务级的功能内聚性10.2.1任务划分原则5.时间内聚性原则按照该原则进行任务划分的方法是:(1)将在同一时间内完成的各功能(即使是不相关的)组成功能组,形成一个任务(2)功能组内的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件时,它们都可以同时执行例:早晨起床以后刷牙、洗脸、吃早饭几项事情10.2.1任务划分原则图10-7按照时间内聚性原则进行任务划分意义:减少系统用于任务间同步的资源开销达到了任务级的

6、时间内聚性10.2.1任务划分原则6.周期执行的功能原则按照该原则进行任务划分的方法是:(1)将在相同时间周期内执行的各项功能组织成一个任务(2)频率高的任务赋予高的任务优先级例:采集任务与显示任务10.2.1任务划分原则图10-8按照周期执行的功能原则进行任务划分10.2.2任务间通讯机制的选择详见7.2节10.2.3任务的细节设计1.正确性(1)函数的可重入性如果一个函数能被多个任务同时调用且不发生冲突,那么该函数是可重入的要求用户编写的自定义函数+嵌入式操作系统提供的库函数均具有可重入性详见7.1.10节10.2.3任务的细节设计(2)ISR的编程规范基本限制:不能调用可能阻塞中断的系

7、统服务基本要求要求短小、精简详见7.3.6节10.2.3任务的细节设计(3)生存性在多任务系统中要避免死锁、活锁、饥饿、优先级倒置的出现10.2.3任务的细节设计死锁(Deadlock)死锁是指任务相互占有其它任务所需资源而形成的“链”状结构例:三角债避免死锁:认真规划是关键在开始编码之前,通过图解多线程应用程序,通常可以预测死锁CBA甲丙乙10.2.3任务的细节设计活锁(Lockout)活锁是指一个任务所需

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。