zoukankan      html  css  js  c++  java
  • 关于RTOS的笔记之二

    1、STM32中断优先级和FreeRTOS中断优先级的关系
    Freertos本身没有优先级,只能通过配置文件进行管理STM32的硬中断,比如设置中断优先级数为16,FreeRTOS可管理的
    优先级数大于5,则说明FreeRTOS只能屏蔽优先级小于5的优先级数(数值大于5),优先级大于5的级数则不能被屏蔽

    2、STM32中断优先级与任务优先级的关系
    没有任何关系,中断优先级永远比任务优先级要高。只有任务优先级之间才有比较的可能。

    3、任务优先级怎么分配
    从高到低

    IRQ 任务:IRQ 任务是指通过中断服务程序进行触发的任务,此类任务应该设置为所有任务里面优先级最高的。

    高优先级后台任务:比如按键检测,触摸检测,USB 消息处理,串口消息处理等,都可以归为这一类任务。

    低优先级的时间片调度任务:比如 emWin 的界面显示,LED 数码管的显示等不需要实时执行的都可以归为这一类任务。
    实际应用中用户不必拘泥于将这些任务都设置为优先级 1 的同优先级任务,可以设置多个优先级,只需注意这类任务不
    需要高实时性。

    空闲任务:空闲任务是系统任务。
    特别注意:IRQ 任务和高优先级任务必须设置为阻塞式(调用消息等待或者延迟等函数即可),只有
    这样,高优先级任务才会释放 CPU 的使用权,,从而低优先级任务才有机会得到执行。

    4、关于队列
    在没有操作系统时,两个应用程序进行消息传递一般使用全局变量的形式,但是在才做系统中用全局变量来传递消息就会
    涉及到资源管理的问题,FreeRTOS提供了一个叫做“队列”的东西来完成任务与任务,任务与中断之间的消息传递。
    队列发送在任务中有阻塞时间,在中断中则不存在阻塞时间

    5、全局标志可以用二值型信号量来进行消息传递,也可以用任务通知功能模拟二值型信号量来进行消息传递

    6、空指针指没有定位内存的指针,值为null(0),你使用new或者malloc申请了指针p,使用后delete或者free,
    你必须将指针值设置为null,否则,p将成为一个非法指针,后续代码如果使用到该指针有可能会造成系统崩溃(内存不可以读不可写),
    或者,破坏自身有效内存数据(释放后,又在申请作为别的用途,恰巧系统分配了同一块内存)

  • 相关阅读:
    HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋)
    HUD 2203 亲和串
    POJ 3461 Oulipo(乌力波)
    FJNU 1154 Fat Brother And His Love(胖哥与女神)
    Polygon Triangles
    Double it(水题模拟+逆向思维)
    Sphenic numbers(素数筛)
    Desktop(模拟)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    Weather Station(基础DP)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    找零钱(经典DP)
  • 原文地址:https://www.cnblogs.com/xiongzongxiong/p/10332591.html
Copyright © 2011-2022 走看看