![](https://img-blog.csdnimg.cn/direct/87508264c02946a3880ed0dd9a25fc06.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRTOS
文章平均质量分 96
FreeRTOS学习笔记
北国无红豆
匀速乃极速!
展开
-
【FreeRTOS】任务管理与调度
当执行到vTaskDelay的时候,现在是Blocked状态,已经不是Ready状态了,现在就会从25优先级的链表中删除,移动到某一个delay的链表里,有DelayedTaskList1和DelayedTaskList2(这里是防止定时器溢出,才有两个delay链表)运行1ms之后,计数值又累计,发起下一次调度,再次遍历这些链表,从上面找到下面,找到第24个不空,把pxCurrentTCB指向下一个任务,然后启动。在系统里,会初始化一个Tick,Tick中断里面有计数累加,作为时钟基准,并且会调度。原创 2024-06-23 21:40:47 · 1076 阅读 · 0 评论 -
【FreeRTOS】任务状态&改进播放控制
参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》本节课实现音乐任务的创建,音乐播放的暂停与继续播放,删除任务。代码为:08_task_priority重点:使用链表讲解内部原理。原创 2024-06-23 09:41:11 · 672 阅读 · 0 评论 -
【FreeRTOS】删除任务 用遥控器控制音乐
参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》学习视频:【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 【精准空降到 01:22】 https://www.bilibili.com/video/BV1Jw411i7Fz/?原创 2024-06-22 17:25:38 · 786 阅读 · 0 评论 -
【FreeRTOS】创建任务_使用任务参数
配套源码:06_create_task_use_params我们创建3个任务,使用同一个函数,但是在LCD上打印不一样的信息。3个任务使用同一个函数,但是他们运行的栈不一样,局部变量是不同的版本,不同的实体~本次要完成的任务效果,在OLED上显示……如下图。原创 2024-06-22 10:20:40 · 1010 阅读 · 0 评论 -
【FreeRTOS】估算栈的大小
上一篇文章的任务,要么是动态分配,分配指定大小的栈,要么提供一个数组,得告诉函数这个数组有多大那么 — 栈的大小如何选取栈里会保存什么返回地址,其他寄存器Reg — 取决于函数调用深度(函数调用关系)局部变量 — 取决char buf[x] ,数组的大小x现场 - 16个寄存器,16*4=64byte选取最复杂的调用关系举个例子函数A调用函数B,函数B调用函数C,函数C调用函数D,函数D调用函数E调用关系每一级调用里,需要保存哪些寄存器?去反汇编看一看。原创 2024-06-19 21:02:11 · 1031 阅读 · 0 评论 -
【FreeRTOS】创建任务-声光色影
任务就是一个函数,任务就是工作这个函数不能返回同一个函数,可以用来创建多个任务;换句话说,多个任务可以运行同一个函数每个任务都有自己的栈每个任务运行这个函数时任务A的局部变量放在任务A的栈里、任务B的局部变量放在任务B的栈里不同任务的局部变量,有自己的副本函数使用全局变量、静态变量的话只有一个副本:多个任务使用的是同一个副本要防止冲突(后续会讲) 下面是一个示例:/* 对于不同的任务,局部变量放在任务的栈里,有各自的副本 *//* 任务函数通常实现为一个无限循环 */原创 2024-06-14 13:23:46 · 795 阅读 · 0 评论 -
【FreeRTOS】内存管理
既分配又释放, heap_4在heap_2的基础上做了一些改进,heap_4合并相邻的空闲内存针对heap_2的缺点,如果我们再想分配120字节的空间,那就是可以的了,因为buf1的100字节和buf2的50字节合并起来了!原创 2024-06-13 20:43:35 · 944 阅读 · 1 评论 -
【FreeRTOS】源码概述
参考《FreeRTOS入门与工程实践(基于DshanMCU-103)》里《第7章 FreeRTOS源码概述》主要设计两个目录其他文件的作用也一起列表如下:移植FreeRTOS时涉及的文件放在FreeRTOS/Source/portable/[compiler]/[architecture]目录下,比如: RVDS/ARM_CM3,这表示cortexM3架构在RVDS或Keil工具上的移植文件。里面有2个文件:文件在 Middlewares\Third_Party\FreeRTOS\Source\por原创 2024-06-12 12:06:36 · 1060 阅读 · 1 评论 -
【FreeRTOS】ARM架构&汇编实例
学习视频【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 https://www.bilibili.com/video/BV1Jw411i7Fz/?原创 2024-06-11 21:58:16 · 1287 阅读 · 1 评论 -
【FreeRTOS】创建第一个多任务程序
创建第1个多任务程序。原创 2024-06-06 15:32:04 · 367 阅读 · 0 评论