![](https://img-blog.csdnimg.cn/direct/64ff8344080245f18d8c51a7d9ad527a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRTOS——瑞士军刀
文章平均质量分 95
本专栏主要记录在学习韦东山老师的FreeRTOS——瑞士军刀课程中的心得体会以及个人总结。
嵌入式JunG
一个热爱嵌入式的小学生
展开
-
FreeRTOS任务管理
这个函数不能返回同一个函数,可以用来创建多个任务;换句话说,多个任务可以运行同一个 函数函数内部,尽量使用局部变量:每个任务都有自己的栈每个任务运行这个函数时任务 A 的局部变量放在任务 A 的栈里、任务 B 的局部变量放在任务 B 的 栈里不同任务的局部变量,有自己的副本函数使用全局变量、静态变量的话只有一个副本:多个任务使用的是同一个副本要防止冲突/* 对于不同的任务,局部变量放在任务的栈里,有各自的副本 *//* 任务函数通常实现为一个无限循环 */原创 2024-06-21 11:28:20 · 1022 阅读 · 16 评论 -
FreeRTOS内存管理
在嵌入式系统中,内存的地址可能并不连续,这种场景下可以使用Heap_5。内存的动态管理是C程序的知识范畴,并不属于FreeRTOS的知识范畴,但是它跟 FreeRTOS关系是如此紧密,所以我们先对其进行了解。新设计中不再推荐使用Heap_2。使用内存的动态管理功能,简化了程序设计:不再需要小心翼翼地提前规划各类对象,简化API 函数的涉及,甚至可以减少内存的使用。跟 Heap_1、Heap_2 一样,Heap_4 也是使用大数组来分配内存。Heap_5 分配内存、释放内存的算法跟 Heap_4 是一样的。原创 2024-06-20 10:50:57 · 730 阅读 · 10 评论 -
ARM架构简明教程
调用 LDRD 指令将SP加4的位置读8个字节分别存入 r0、r1,所以SP+4之后SP对应红线上面一条横线(SP的位置仅此时有效,仅是为了汇编,后面SP的位置还是位于红线处),读取8个字节表示 r0 = [SP,#4] = cnt,r1 = [sp,#8] = 1;double word ---> 双字 ---> 64bits ---> 8字节。double word ---> 双字 ---> 64bits ---> 8字节。half word ---> 半字 ---> 16bits ---> 2字节。原创 2024-06-19 15:51:25 · 777 阅读 · 11 评论 -
FreeRTOS源码分析
port (比如 portMAX_DELAY)portable.h 或 portmacro.htask (比如 taskENTER_CRITICAL())task.hpd (比如 pdTRUE)projdefs.hconfig (比如err (比如 errQUEUE_FULL)projdefs.h。原创 2024-06-19 20:20:48 · 788 阅读 · 4 评论