随笔分类 - FreeRTOS
RTOS
摘要:计算RTOS的CPU的使用率及任务栈的使用情况,有助于RTOS的调试开发。可以分析多任务的设计的合理性,如果CPU的利用率为1%,说明CPU 99%的时间运行在空闲任务上,则极大的浪费CPU的性能。计算FreeRTOS的CPU使用率就要用到两个函数vTaskList和vTaskGetRunTimeS
阅读全文
摘要:什么是优先级反转(翻转) 优先级反转,是指在使用信号量时,可能会出现的这样一种不合理的现象,即: 高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度。但其他中等优先级的任务却能抢到CPU资源。-- 从现象上来看,好像是中优先级的任务比高优先级任务具有更高的优先权。 具体来说:当高优先级任
阅读全文
摘要:在任何RTOS中,都具有一个重要的通信机制 消息队列。 队列是任务间通信的主要形式。它们可用于在任务之间、中断和任务之间发送消息。在大多数情况下,它们被用作线程安全的FIFO(先进先出)缓冲区,新数据被发送到队列的后面,不过数据也可以发送到前面。 消息队列的概念及其作用(以下基础内容转载自安富莱电子
阅读全文
摘要:原文链接:https://blog.csdn.net/callmesumo/article/details/89403787 when FreeRtos is used.It is strongly recommended to use a HAL timebase source other tha
阅读全文
摘要:计数信号量有两种典型的用法: 1.事件计数: 每次事件发生时,中断ISR会释放(Give)信号量,信号量的计数值加1 。事件处理任务每次处理一个事件会获取(Take)一次信号量,计数值减1. 信号量的值就是已发生事件数目与已处理事件数目之间的差值。用于事件的计数的计数信号量,在被创建时其计数值被初始
阅读全文
摘要:一般二元信号量用于任务同步,利用二元信号量对任务与中断同步,中断服务例程中只是释放信号量,相当于把中断应该处理的事情放到了任务里进行处理,如果某个中断处理任务特别紧急,则相应的任务优先级可以设置为最高,以保证此任务随时抢占系统中的其他任务。 使用一个定时器TIM6,每隔3秒释放一次信号量,TASK2
阅读全文
摘要:了解了二元信号量相关的一些概念,可以设计相关程序进行验证,基于STM32Cube生成的代码。 TASK1比TASK2优先级高,验证的初衷是TASK1S首先运行,而TASK2由于无法获取信号量而阻塞,5S之后TASK1释放信号量,TASK2获得信号量解除阻塞可以执行 由于FreeRTOS的新旧版本的A
阅读全文
摘要:二元信号量具有互斥和同步多任务的作用,它与互斥量非常相似,当有一个区别是互斥量具有优先权继承属性,而二元信号量则没有,所以一般常用于任务与任务或中断与任务的同步。 在使用二元信号量前需要弄清楚几个概念: 1.优先级继承 2.优先级翻转 3.死锁 以下内容来自RT-Thread官网: https://
阅读全文
摘要:直接使用printf输出不做临界保护输出的打印信息如下,有时出现输出打印信息不完整。 使用Debug_Printf打印信息如下:
阅读全文