FreeRTOS笔记
文章平均质量分 83
记录在学习freertos过程的一些小思考
冷风沐雨
这个作者很懒,什么都没留下…
展开
-
FreeRTOS-软件定时器
顾名思义,软件定时器就是用来定时,到了设定的时间(周期)时会执行一些事情(回调函数自动装载定时器(周期性)、一次性定时器类似于闹钟,有周期性闹钟和一次性闹钟,周期性闹钟不需要你每天都去设置,但是一次性闹钟在完成一次后就会关闭,需要你手动设置开启;软件定时器相关的函数,比如xTimerStart()等,虽然是可以在普通的任务中调用,但并没有直接操作定时器,而是把命令发送到定时器命令队列,由DaemonTask(守护任务)读取并对执行和操作相关命令。原创 2024-06-14 16:34:34 · 796 阅读 · 0 评论 -
FreeRTOS-任务通知
不同于队列、信号量、互斥量,有一个额外的空间(结构体)作为通信的纽带,任务通知只需借助任务TCB中的相关变量,无需另外创建;其中,ulNotifiedValue是,ucNotifyState是。由此定义可知通知值、通知状态在同一时刻都只能存储一个数据/状态。可见,通知状态是站在接收者的角度,即。其中taskNOTIFICATION_RECEIVED也被称作(待处理的)。原创 2024-06-11 18:00:13 · 893 阅读 · 0 评论 -
FreeRTOS-事件组
事件组用一个整数来表示,每一位表示一个事件,事件未完成(未发生)为0,已完成(发生)为1。任务之间可以通过事件置0/1来实现相互之间的沟通;前面的队列、信号量、互斥量都能唤醒一个任务,而事件组可以唤醒多个任务。比如有多个任务等待事件bit0的发生,当bit0置1后,多个任务将被唤醒;总位数116032。原创 2024-06-09 14:54:50 · 1113 阅读 · 0 评论 -
FreeRTOS-信号量&互斥量&递归锁
信号量、互斥量、递归锁之间的内容比较相近,因此放在一篇博客。原创 2024-06-08 08:49:51 · 713 阅读 · 0 评论 -
FreeRTOS-队列集
队列集用于接受任务同时读取到多个输入设备的消息。原创 2024-06-04 15:25:04 · 242 阅读 · 1 评论 -
FreeRTOS-队列基础
队列用于数据的传输,数据按照**“先进先出”**(FIFO)的规则;一般情况下,数据被放入到底部(Back)指向的位置(除非使用向头部写入数据的函数),被头部(Front)指向时被读出队列能够进行阻塞、唤醒,当接收任务发现队列为空时,会进入阻塞而不占用CPU,发送任务发现队列为满时也会进入阻塞,这样能够提高运行效率。拷贝(将数据值复制到队列中);引用(将数据的地址复制到队列中);队列的动态创建队列的阻塞访问。原创 2024-06-04 15:23:08 · 494 阅读 · 0 评论 -
vTaskDelay和vTaskDelayUntil的区别
下图(vTaskDelayUntil)的100ms则是以pre_time为始,以此为基础计算100ms,运行到vTaskDelayUntil再延时直至。并分别使用vTaskDelay和vTaskDelayUntil进行。,并用HAL_Delay函数保持其高电平,(有点类似于周期为100ms)(即高电平时间不一),之后。假如有一任务循环执行。原创 2024-06-02 08:31:10 · 301 阅读 · 0 评论