zoukankan      html  css  js  c++  java
  • ucos 创建 空闲任务的目的

    几乎任何操作系统都需要有空闲任务。

    因为CPU(提供CPU级休眠的不算)没办法停下来,尤其是嵌入式系统这一块。

    CPU停下来的唯一情况就是断电了,而要保持操作系统任何时候都能及时的对外做出响应,就必须有一个任务在那等着,这个任务就是Idle,大部分操作系统上都需要有这个任务。

    普通的CPU如果停下来,就收不到任何外部中断或者别的东西了,跟死机没区别,所以CPU不能停。

    当然了,也有能进入省电模式的CPU,这个另说,通用的设计是必须要保留空闲任务的。
     
    简单的说就是 咱们的CPU  上电后就一直是转动的 ,必须的有个任务给人间捧场,让他继续转动,不能  停下来,,因为我们的UCOS  号称是RTOS  实时操作系统,想让Z自己做到实时,,就必须一直等待,等待响应,不能休眠。还有,咱们的空闲任务是没有延时的。是一直处于就绪状态,没高优先级任务他就就溜达,IDLE,HAHA  真正任务切换是OSTimeTick()

    OSTimeTick()中将每个用户任务控制块OS_TCB中的时间延时项OSTCBDly减1(就是在任务中OSTimeDly();所设定的延时时间减一)。当某任务的任务控制块中的时间延时项OSTCBDly减到了零,这个任务就进入了就绪态。

  • 相关阅读:
    大型网站应用中MySQL的架构演变史
    SRM 585 DIV2
    TC 配置插件
    Java中含有静态成员的的初始化顺序
    java 23种设计模式,一般情况下,常用的有哪些? 转载
    Java中的正则表达式
    C++ 中的关于输出的设置于
    C++实现可变参数列表
    Java中的组合与聚合
    pku 2284 That Nice Euler Circuit
  • 原文地址:https://www.cnblogs.com/locean/p/5394381.html
Copyright © 2011-2022 走看看