1.任务(task)也称作一个线程;

2.一个任务有5种状态:休眠,就绪,运行,挂起,被中断

休眠:任务驻留在程序空间中,还没有交给ucos管理,把任务交给ucos 是通过调用OSTaskCreate()或OSTaskCreateExt()两个函数之一实现的。

任务一旦确立将进入就绪状态。一个任务可通过调用OSTaskDel()返回到休眠状态,即被删除,或通过调用该函数让另外一个任务进入休眠状态。

就绪:如果一个任务所等待的资源除CPU外已全部获得,则处于就绪状态。如果该任务的优先级最高,则马上执行。

运行:任何时候只有一个在运行;正在运行的任务可能会因为等待某一个任务而进入等待状态,此时下一个优先级更高的进入了就绪状态被赋予了CPU

的控制权,即任务级切换。

挂起:即正在运行的任务需要等待某一事件或时间延迟的发生。当任务因等待事件被挂起时,下一个优先级更高的立即得到CPU的控制权。

当其等待的事件发生了,该被挂起的任务重新进入就绪状态。事件发生的报告可能来自另一个任务,也可能来自中断服务子程序。

被中断: 正在运行的任务可以被中断,除非该任务关闭中断,或ucos关闭中断。被中断了的任务即进入了中断服务状态。响应中断时,

正在执行的任务被挂起,中断服务子程序控制了CPU的使用权。中断服务子程序可能会报告一个或多个时间的发生,而使一个

或多个任务进入就绪状态。此时,中断服务子程序返回之前,ucos要判定被中断的任务是否还是就绪态任务中优先级最高的。

如果更高的进入了就绪状态,则他会运行,否则原来的继续运行。

3.任务操作函数集

4.任务的特点:每一个任务都是死循环,如下:

void rs485CheckTask(void *pdata)

{
  uart1_init();
  commCmdInit();
  while(1){          
 //死循环
  cmdCheckPorc();
  OSTimeDlyHMSM(0,0,0,100);
    }
}

5.内核负责每个任务的调度

任务学习-ucos的更多相关文章

  1. uc/os学习入门:在32位pc机上搭建编译环境

    由于学习ucos的入门资料中所使用的编译器大多都是Borland c ++ 3.1或者Borland c++4.5,为了降低学习的难度最好所用的编译器与书本上的一致.由于4.5版本稍高,所以最终决定用 ...

  2. uCOS-II的学习笔记(共九期)和例子(共六个)

    源:uCOS-II的学习笔记(共九期)和例子(共六个) 第一篇 :学习UCOS前的准备工作http://blog.sina.com.cn/s/blog_98ee3a930100w0eu.html 第二 ...

  3. uC/OS-II之入门与介绍20160525

    说一下刚学习uCOS的心得1)首先强调一下实时操作系统(RTOS)的特点,最明显的是提供及时响应和高可靠性2)基于实施操作系统的应用程序设计中,其中很重要的一个概念是"任务",任务 ...

  4. UCOS2_STM32移植详细过程(汇总)

    Ⅰ.概述 笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用.笔者想说,实践才是检验真理的关键,实践才是掌握知识 ...

  5. UCOS2系统内核讲述(三)_TCB任务控制块

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2_STM32F1移植详细过程(汇总文章) UCOS2系统内核讲述(一)_总体描述 UCOS2系统内核讲述(二)_初始化调用函数 上一篇文章讲 ...

  6. dosbox+masm5.0编译汇编文件

    在去年写过如何bc3.1编译ucos,不过现在很少去用到,但是那是用dosbox也是懵懵懂懂的,参见https://blog.csdn.net/liming0931/article/details/8 ...

  7. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

  8. ucos实时操作系统学习笔记——任务间通信(信号量)

    ucos实时操作系统的任务间通信有好多种,本人主要学习了sem, mutex, queue, messagebox这四种.系统内核代码中,这几种任务间通信机制的实现机制相似,接下来记录一下本人对核心代 ...

  9. ucos实时操作系统学习笔记——操作系统在STM32的移植

    使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...

随机推荐

  1. fabric省略输出

    fab -f test_fabric.py start --hide status,running,stdout,user,aborts,warnings,stderr 省略所有输出--hide st ...

  2. [转]NLog Layout Renderers ${}

    https://github.com/nlog/NLog/wiki/Layout-Renderers Layout renderers are template macros that are use ...

  3. 上下文(Context)和作用域(Scope)

    函数的每次调用都有与之紧密相关的作用域和上下文.从根本上来说,作用域是基于函数的,而上下文是基于对象的. 换句话说,作用域涉及到所被调用函数中的变量访问,并且不同的调用场景是不一样的.上下文始终是th ...

  4. 【C#.NET】Http Handler 介绍---(转)

    Http Handler 介绍 引言 在 Part.1 Http请求处理流程 一文中,我们了解了Http请求的处理过程以及其它一些运作原理.我们知道Http管道中有两个可用接口,一个是IHttpHan ...

  5. git pull冲突报错

    修改代码后在git pull报错: error: Your local changes to the following files would be overwritten by merge: xx ...

  6. openlayers 聚合效果

    //cyd var cydclusterSource = new ol.source.Cluster({ distance: 40, source: new ol.source.Vector({ fe ...

  7. js之箭头函数

    原文 ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: ...

  8. 前端之CSS——盒子模型和浮动

    一.CSS盒子模型 HTML文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒子模型. 盒子模型通过四个边界来描述:margin(外边距),border(边框 ...

  9. CSS3 常用新特性总结

    更新于(2017.07.07)会总结项目中比较常用的有些CSS属性 伪类选择器 E:first-of-type: 匹配同类型中的第一个同级兄弟元素E E:last-of-type: 匹配同类型中的最后 ...

  10. css 简单梯形

    通过css2D变形我们可以轻松得到平行四边形,那么通过此技巧可以得到梯形吗? no! 不过我们可以通过3D旋转得到类似这样的效果: transform:perspective(0.5em)  rota ...