![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FreeRTOS
文章平均质量分 69
晨少爱学习
不定时分享个人所学,以及自学过程中的总结笔记,欢迎志同道合的朋友们一起讨论学习(csdbili)
展开
-
FreeRTOS栈溢出检测机制_附源码分析
freertos 提供了栈溢出检测功能,可以通过 **FreeRTOSConfig.h**文件中定义 **configCHECK_FOR_STACK_OVERFLOW** 宏来开启, **在任务切换时会自动执行检测栈溢出操作**原创 2023-07-25 11:09:53 · 1223 阅读 · 0 评论 -
【FreeRTOS学习 - 互斥量学习 (优先级继承-自锁-死锁-递归锁)】
有A、B、C三个任务,优先级分别是 1、2、3,且A持有互斥锁,B和C一开始都故意延时,让A得以运行(这样低优先级的A就能先获得互斥锁)任务2故意执行"give"操作,看看能否释放别人持有的递归锁:不能。任务1阻塞时间到后继续运行,使用循环多次获得、释放递归锁。任务2运行,看看能否获得别人持有的递归锁:不能。任务1优先级最高,先运行,获得递归锁。任务1阻塞,让任务2得以运行。则让A暂时继承C的优先级。递归锁真正意义上实现了。原创 2023-04-09 22:32:28 · 824 阅读 · 2 评论 -
【FreeRTOS学习 - 互斥量学习 (盗锁)】
多个任务对同一个数组或者变量进行操作时,往往会发生冲突,可能任务A访问arr数组的过程中被任务B打断,任务B恰好也对arr数组进行了操作,当任务A继续执行时,此时的arr数组已经不是当时的arr数组了,这就造成了访问冲突。原创 2023-04-06 22:09:31 · 357 阅读 · 0 评论 -
【FreeRTOS学习 - 一些细节与踩坑记录】
一些细节与常用技巧1. 串口接收大量数据时,可以接收完一帧数据后, 再给出二值信号量,唤醒等待获取信号量的任务,再在任务中进行数据处理;2. 串口接收大量数据时,也可以使用消息队列数据帧判断和处理在任务中进行,消息队列要设置的大一些,防止满了而丢失数据;3. 中断函数里使用FreeRTOS的函数操作时要将NVIC的抢占优先级设置成>=configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY,这个值一般是 5,子优先级设置为 0。在main函数里初始化NVIC原创 2023-04-06 12:28:11 · 595 阅读 · 0 评论 -
【FreeRTOS学习 - 计数信号量】
FreeRTOS计数信号量的介绍与使用原创 2023-04-06 11:57:15 · 291 阅读 · 0 评论 -
【FreeRTOS学习 - vTaskDelay 与 vTaskDelayUntil】相对延时与绝对延时
xTaskDelay 与 xTaskGetTickCount 的区别与使用原创 2023-04-06 10:59:18 · 2066 阅读 · 0 评论 -
【FreeRTOS学习 - 常用函数记录】
1. 创建任务函数BaseType_t 实际上是 long 类型xTaskCreate 函数的参数含义依次是pxTaskCode : 任务函数(函数指针)pcName : 具有描述性的任务名usStackDepth : 栈深度pvParameters : 任务优先级pxCreatedTask : 任务句柄2. 任务调度函数//开启任务调度通常写在main函数最后,用于开启任务调度器任务调度器里会开启空闲任务和初始化定时器服务等工作3. 相对延时函数。原创 2023-04-04 00:16:24 · 500 阅读 · 0 评论 -
【FreeRTOS学习 - 消息队列学习】
【FreeRTOS学习 - 消息队列学习 - 详细笔记】1.创建队列 2.写队列 3.读队列 4.队列阻塞访问 5.分辨数据源头 6.传输大块数据原创 2023-03-31 21:18:04 · 676 阅读 · 0 评论 -
【FreeRTOS学习 - 二值信号量】串口中断给出信号量 - 控制LED翻转
串口接收一个字符串比如 “{led1}” , 控制LED1翻转通过判断标志位的方式会浪费CPU资源,采用二值信号量可以解决此问题原创 2023-03-21 21:24:07 · 1284 阅读 · 0 评论