µC/OS-II学习笔记(二) 实时系统概念

原创 2007年09月15日 11:39:00

1.       有两种类型的实时系统:软实时系统和硬实时系统。在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。在硬实时系统中,各任务不仅要执行无误而且要做到准时。

2.       前后台系统: 应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级前台也叫中断级

3.       可重入型函数: 可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以保护。以下技术之一即可使不可重入函数具有可重入性:

l          把变量定义为局部变量

l          调用函数之前关中断,调动后再开中断

l          用信号量禁止该函数在使用过程中被再次调用

4.       优先级反转: 应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。为防止发生优先级反转,内核能自动变换任务的优先级,这叫做优先级继(Priority inheritance)

5.     互斥条件:实现任务间通讯最简便到办法是使用共享数据结构。特别是当所有到任务都在一个单一地址空间下,能使用全程变量、指针、缓冲区、链表、循环缓冲区等,使用共享数据结构通讯就更为容易。虽然共享数据区法简化了任务间的信息交换,但是必须保证每个任务在处理共享数据时的排它性,以避免竞争和数据的破坏。与共享资源打交道时,使之满足互斥条件最一般的方法有:

l          关中断(μC/OS-Ⅱ在处理内部变量和数据结构时就是使用的这种手段)

l          使用测试并置位指令

l          禁止做任务切换

l          利用信号量

6.     信号量:信号量用于:

l          控制共享资源的使用权(满足互斥条件)

l          标志某事件的发生

l          使两个任务的行为同步

对信号量只能实施三种操作:

l          初始化(INITIALIZE),也可称作建立(CREATE)

l          等信号(WAIT)也可称作挂起(PEND)

l          给信号(SIGNAL)或发信号(POST)

这是我自己写的验证信号量的部分代码:

void task_one(void* pdata);

void task_two(void* pdata);

 

OS_EVENT   *tasktwo;

#include "includes.h"

 

GUI_Init();

VCInit();                                                    //初始化一些变量

OSInit();

timeSetEvent(OS_TICKS_PER_SEC, 0, OSTickISR, 0, TIME_PERIODIC);    //产生节拍

tasktwo  = OSSemCreate(0); 

 

OSTaskCreate(task_two, 0, &TaskStk[7][TASK_STK_SIZE-1], 1);

OSTaskCreate(task_one, 0, &TaskStk[8][TASK_STK_SIZE-1], 2);

 

OSStart();

 

 

7.       使用实时内核的优缺点: 实时内核也称为实时操作系统或RTOS它的使用使得实时应用程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为减化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。如果应用项目对额外的需求可以承受,应该考虑使用实时内核。这些额外的需求是:内核的价格,额外的ROM/RAM开销,24百分点的CPU额外负荷。

 

相关文章推荐

µC/OS-II学习总结

  • 2017年05月15日 13:16
  • 603KB
  • 下载

µC/OS-II内核任务调度模块的扩展

摘 要:µC/OS-II是一个实时操作系统内核,支持64种不同优先级的任务。以简单实用为原则,借用内核中的两个优先级任务,充当时钟源和轮询引擎,让同级任务在最低优先级任务下轮流运行。这在不失实时性的前...

基于µC/OS-II的时间片调度法设计

摘要  多任务的调度算法多种多样,各种调度算法也各有千秋。在某些应用场合,时间片调度法就比纯粹的优先级调度法更具优势。本文提出了基于µC/OS-II的时间片调度法的设计原理,给出了实现该调度法的关键部...

【转载】µC/OS-II进程调度模型分析(PC移植版)

转自:http://aegiryy.net/?m=201011 µC/OS-II进程调度模型分析(PC移植版) Posted on November 12, 2010 by aeg...

嵌入式µC/OS-II 小程序

  • 2009年06月22日 07:54
  • 10KB
  • 下载

ucos2教材 µC/OS-II

  • 2009年01月07日 18:10
  • 1.69MB
  • 下载

μC/OS-II嵌入式系统的学习与研究

1、μC/OS-II系统简介 1.1μC/OS-II的产生 在早些年,开发嵌入式产品使用的内核需要花费较高的价钱向商家去购买,而且当时市场上的内核参差不齐,要么就是实时性不能满足,要么就是性能不够...
  • lizitao
  • lizitao
  • 2014年07月20日 10:38
  • 927

uC/OS-II 学习笔记之:任务就绪表-举例详解!

////////////////////////////////////////////////////////////////////////////////////////////////////...
  • dcx1205
  • dcx1205
  • 2013年03月13日 13:07
  • 912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:µC/OS-II学习笔记(二) 实时系统概念
举报原因:
原因补充:

(最多只允许输入30个字)