首页 > 其他 > 详细

关于RTOS的笔记之二

时间:2019-01-29 10:24:15      阅读:193      评论:0      收藏:0      [点我收藏+]

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将成为一个非法指针,后续代码如果使用到该指针有可能会造成系统崩溃(内存不可以读不可写),
或者,破坏自身有效内存数据(释放后,又在申请作为别的用途,恰巧系统分配了同一块内存)

关于RTOS的笔记之二

原文:https://www.cnblogs.com/xiongzongxiong/p/10332591.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!