zoukankan      html  css  js  c++  java
  • FreeRtos-总结(1)

    /* 最近安定下来,继续加油学习了!奋斗 */

    /* 时间:2017年10月18日20:41:10 */

    /* 地点:星空小蜗牛的地盘 */

    /* 主题:RTOS基本知识和流程讲解 */

    /* 目的:对RTOS有一个整体认识

                 什么叫整体认识?
    
                 当你想到RTOS时,会知道什么时候用,
    
                 优点是什么?流程是怎样的?         */
    

    目录流程
    1:程序的演进
    2:freeRTOS的优点
    3:freeRTOS的任务切换
    4:freeRTOS的可重入性
    5:freeRTOS的信号量
    6:freeRTOS的消息队列,时钟,状态

    正文开始
    1:程序的演进

    从最初接触的while(1)大循环,之后加上中断。组成一个前后台的运行机制,再把前后台分离开,后台+状态机+前台处理,基本可以处理大部分的任务了
    这里写图片描述
    但是有一类任务,这样的方式就不可取了,要求及时响应的。如果用如上的方式处理
    这里写图片描述
    它会有C,D的运行时间,不能响应,可能还会出现一些意外的情况.
    那么,理想的运行状态是怎样的呢?
    这里写图片描述
    因为有优先级和任务调试的原因,及时响应了程序,从而解决以上问题。
    FreeRtos就是这样的运行状态,实时响应。
    这就是FreeRtos的优点了。

    2:freeRTOS的优点

      freeRTOS的整个功能大体是这样先有个概念
    

    这里写图片描述
    第一大优点上述已讲,实时响应。
    优点讲完,接下来就是freeRTOS的核心的地方。怎么进行的实时响应,任务调度。那任务调试的核心是什么?任务切换,freeRTOS的任务切换可以说是MCU上寄存器的保存和载入。也叫上下文切换—存储和恢复MCU的过程
    这里写图片描述
    具体的过程,请搜各大APP
    要让任务按照顺序执行,跟大循环相似的就是调度器了,根据任务的优先级来调度。
    这里写图片描述
    任务调度,有非抢占式任务,有抢占式任务。如上图
    对于抢占式任务,引申出这样一个问题–>程序的可重入性
    4:freeRTOS的可重入性
    什么叫做可重入性?
    如:taskA任务和A1程序加中断来说
    在A任务执行A1时,中断发生,B任务也执行A1程序,若B任务返回后,A任务中的A1不受影响叫可重入,有影响叫不可重入。
    若不理解:请查各大APP,暂停观看,以免影响阅读。

        但如果把程序影响了呢?有什么解决的办法呢?
    

    有一种方法为进入程序A关中断,完成后开中断。
    另一种方法为信号量。
    5:freeRTOS的信号量
    信号量具体定义请。。。。,自身理解,像唯一的一把钥匙,有任务拿走,第二个任务就不能运行了。适应用的场合就是多个任务共享同一个资源的时候,保证资源能用。

       信号量有二值信号量,加法信号量,互斥信号量。
    

    二值信号量,就如上定义所讲,如:两人共同用一台电脑,A用的时候,B在等待。A用完之后,B才可能用。
    但是这样又出现了一个问题,有个C过来了,他不想排队。所以,当A用完之后,C强行插队使用电脑了,所以B只有等C 用完之后才可以用。这个不好。
    所以加一个叫优先级继承的东西,当A在用的时候,B过来了,B的优先级高,但A没用完,所以把A的优先级提升到B。当C过来,看到两个是一队的,就不说了。A用完–B—C 这样就OK。

    6:freeRTOS的消息队列,时钟,状态
    之后哪,把正确的消息加到队列中,根据时钟节拍,运行出去。再根据具体的任务状态,运行任务。好了
    本章已结。

  • 相关阅读:
    UVALive 7276 Wooden Signs
    hdu4291 A Short problem
    A
    hdu4686 Arc of Dream
    thinkphp5 模型的 更新操作
    thinkphp5 模型的 新增操作
    thinkphp 模型的创建
    thinkphp5 增删改查操作
    tp5 的查询构造器
    thinkphp5 数据库的原生查询
  • 原文地址:https://www.cnblogs.com/asnail/p/10088036.html
Copyright © 2011-2022 走看看