![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FreeRTOS
文章平均质量分 78
FreeRTOS记录
养乐多得多
这个作者很懒,什么都没留下…
展开
-
FreeRTOS 低功耗模式
前面说的很明白,FreeRTOS的低功耗模式实际上还是基于STM32的低功耗模式指令进入睡眠模式来实现的,并且只要中断来临,就会退出低功耗,FreeRTOS的系统时钟是最底层的中断,会频繁的触发,所以在进入低功耗模式时必须关闭中断。前面说过了,低功耗模式实际上是本该在进行空闲任务期间进入低功耗模式,可以在空闲任务中找到。正如STM32的裸机编程一样,FreeRTOS通用提供了低功耗模式。原创 2024-08-29 18:06:56 · 133 阅读 · 0 评论 -
FreeRTOS 信号量
信号量是操作系统中重要的一部分,信号量是任务间同步的一种机制,信号量可以用在多 任务访问同一资源时的资源管理。FreeRTOS 提供了多种信号量,按信号量的功能可分为。原创 2024-07-21 23:06:38 · 363 阅读 · 0 评论 -
FreeRTOS 队列
因为同一个队列可以被多个任务读取,因此可能会有多个任务因等待同一个队列,而被阻 塞,在这种情况下,如果队列中有可用的消息,那么也只有一个任务会被解除阻塞并读取到消 息,并且会按照阻塞的先后和任务的优先级,决定应该解除哪一个队列读取阻塞任务。当想某一个队列写入数据时,如果此时的队列已经满了,就是没有空位置了,这时任务实际上是阻塞住了,因为想要写入但是无法写入,我们可以设定一个等待阻塞时间,等待的时间在设定范围内,任务就会被添加到阻塞列表中进行等待,等待队列中有空位置。uxItemSize就是队列项目的大小。原创 2024-07-11 17:56:49 · 1634 阅读 · 0 评论 -
FreeRTOS 列表和列表项
通常情 况下,处于阻塞态的任务都有一个阻塞的超时时间,在任务阻塞达到或超过这个超时时间后, 即使任务等待的外部事件还没有发生,这里所说的列表和列表项,是 FreeRTOS 源码中 List 和 List Item 的 直译,事实上,FreeRTOS 中的列表和列表项就是数据结构中的链表和节点。实际上,当FreeRTOS有很多列表,包括就绪列表,阻塞列表,挂起列表等,结合上面的解释就知道了,处于就绪态的若干任务放在就绪列表,处于挂起态的若干任务放在挂起列表等。四种任务状态之间的转换图如下图所示。原创 2024-07-08 18:55:25 · 147 阅读 · 0 评论 -
FreeRTOS 任务
通过前面的图可以知道,任务是相互切换完成执行的,A任务切换到B任务的时候,CPU从接管A任务的状态切换到接管B任务的装填,那么就需要对A任务的当前现场进行保护,在下次再进行A任务的时候再恢复现场,这里说的保护和恢复,实际上是针对A任务中的一些变量进行的,所以A任务需要一个堆栈,同理,B任务也需要一个自己的堆栈。注意,任务的堆栈这里给的是Depth也就是深度,个人理解实际的大小是深度×宽度,宽度就是事先定义好的字的长度,,那么实际的堆栈大小就是usStackDepth*一个字的字节。原创 2024-07-06 10:10:36 · 614 阅读 · 0 评论