第8章 基于ucos-ii的程序设计实例

第8章 基于ucos-ii的程序设计实例

ID:10986069

大小:401.50 KB

页数:22页

时间:2018-07-09

第8章 基于ucos-ii的程序设计实例_第1页
第8章 基于ucos-ii的程序设计实例_第2页
第8章 基于ucos-ii的程序设计实例_第3页
第8章 基于ucos-ii的程序设计实例_第4页
第8章 基于ucos-ii的程序设计实例_第5页
资源描述:

《第8章 基于ucos-ii的程序设计实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第2章可编程控制器的硬件结构第八章基于μCOS-II的程序设计实例8.1实例介绍为了使读者对μCOS-II操作系统有更深的理解,本章将介绍一个在STM32F103处理器平台上使用μCOS-II实时操作系统的程序设计实例。此实例使用英倍特公司提供的STM103V100评估板来实现一个简易温度计。该实例使用STM103V100评估板自带的高灵敏度数字温度传感器来传送温度数据,根据实际采样周期的需要,安排了四种不同的采样方式。采样的条件和周期可以通过键盘输入进行调节,采样得到的结果可以在评估板的液晶屏上同

2、步显示,并通过串口将采样所得的结果送到上位机。关于STM103V100评估板的更多内容超出本书范围,请读者参阅其它相关资料。8.2实例分析本节主要分析如何通过基于实时操作系统编程的方法实现整个系统的所有功能。下面的内容将从任务划分开始,详细说明任务分析的过程。8.2.1实例任务划分为了更合理的将整个系统划分为不同任务,首先要明确一个好的实时系统应具备那些特点,即任务划分的基本原则是什么。一般说来,任务划分的基本原则有以下几点:·满足系统“实时性”:一般使用μCOS-II的嵌入式应用系统,对于响应时间

3、要求很高,如果实时性得不到满足,系统会出现错误甚至导致难以挽回的故障。因此在任务划分时,保证系统实时性是首要原则。·较少资源需求:多个任务协同运转,依靠操作系统的调度策略。任务之间的同步,任务之间的通信,内存管理都需要消耗系统资源。所以在任务划分时,尽量将使用同类资源的应用归入同一任务中,以减少操作系统调度时所消耗的资源。·合理的任务数:同一系统,任务划分的数目越多,每个任务的功能越简单,实现越容易,但任务数目的增多,加大了操作系统的调度负担,资源开销也随之加大;相反,如果任务划分的数目太少,会增加

4、每个任务的复杂性,使任务设计难度加大。最极端的情况,当系统任务数目减少到1时,也就失去了使用多任务操作系统的意义。对一个具体的嵌入式应用系统进行任务划分时,可以有不同的任务划分方案。·31·第2章可编程控制器的硬件结构常用的任务划分方法有:以硬件模块为对象划分任务、以实时性优先原则划分任务和切分耗时任务等。所谓“以硬件模块为对象划分任务”就是根据系统需求,以硬件模块相关驱动为基础,根据硬件驱动在系统中的关键性设定优先级的任务划分方法;“实现性优先原则划分任务”即,将对实时性要求较高的应用划分为单独任

5、务,并赋予较高的优先级来保证整个系统实时性的要求;而“切分耗时任务”的任务划分方法,顾名思义就是将一些占用大量CPU处理时间的繁琐应用从系统中分离出来,作为一个优先级较低的任务在系统空闲时运行。根据上述任务划分的原则和方法,本实例被划分为7个任务:包括4个采用任务,1个负责和用户交互的键盘任务,1个显示任务和1个向上位机传送数据的串口发送任务。其中,4个采样任务分别使用不同的采样条件:延时采样、使用系统时钟节拍采样、定时中断采样和使用高优先级中断的采样。键盘任务除负责接收用户输入并做出反馈外,还需要

6、完成操作系统和系统资源的初始化,包括系统中用到的消息队列、邮箱和互斥信号量的创建等。因为按键任务是第一个启动的用户任务,所以目标板的初始化也由该任务完成。8.2.2实例任务设计与优先级分配完成系统任务划分后,需要对任务的优先级进行设定。任务优先级分配是否合理,直接影响到系统的实时性和可靠性。对任务优先级的安排一般遵循以下原则:·外设相关任务安排高优先级:因为外设任务直接与中断服务程序相对应,如果外设任务优先级低,当需要中断处理时,系统资源可能被高优先级任务占用,而导致中断丢失;·根据任务实现功能的重

7、要性安排优先级:一般情况下,任务越重要优先级越高;·占用关键资源的任务优先级尽量高:只有保证占用关键资源的任务优先运行,才能使其尽早释放资源,以便其它任务运行;·对于周期性任务,执行周期越短的任务,优先级应越高,以保证其得到及时运行;·当以上条件相近时,耗时越短的任务优先级应越高。这样可以缩短其它就绪任务的延时时间。根据以上优先级安排原则,系统中存在的4个采样任务实现同样功能且均为一次性任务。所以,4个任务的优先级应一致。但在μCOS-II操作系统中,同一优先级不允许存在多个任务,所以将4个采样任务

8、的优先级依次排列,因为它们不可能同时发生,则对于应用来说,4个任务的优先级是一致的。键盘任务是系统运行的第一个任务,负责与用户交互。根据优先级安排原则,将其优先级定为7个任务中的中等级别,设为15。显示任务负责将采集的数据显示在LED屏上,它由采样任务触发。根据优先级安排原则,将其优先级定为7个任务中的最低优先级,设为17。系统中任务的优先级安排如下程序清单所示,voidTask_FastSamp(void*pdata);//使用高优先级中断的采样,优先级5voidT

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

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

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