2020年10月9日
摘要: 转载自https://blog.csdn.net/zhoutaopower/article/details/107467305 在 FreeRTOS 中,还有一个东西也可以用作任务与任务,中断与任务的同步,它叫任务通知(Task Notifications) ; 如果我们通过信号量、队列、事件组的形 阅读全文
posted @ 2020-10-09 14:59 信义勤爱 阅读(1672) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107387427 临界区的概念在任何的 SoC 都存在,比如,针对一个寄存器,基本操作为:读->改->写;在不带 OS 的系统下,普通代码希望对某个寄存器进行读->改->写,此刻,一个 I 阅读全文
posted @ 2020-10-09 14:51 信义勤爱 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107359095 在裸机编程中这样使用过一个变量:用于标记某个事件是否发生,或者标志一下某个东西是否正在被使用,如果是被占用了,或者没有发生,我们就不对它进行操作。 信号量 Semapho 阅读全文
posted @ 2020-10-09 14:38 信义勤爱 阅读(1162) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107221175 在任何的 OS 中,都需要支持任务与任务,中断与任务之间的数据传输机制,在 FreeRTOS 中,这种数据传输的方式被称之为队列(Queue); 队列是一个 FIFO 模 阅读全文
posted @ 2020-10-09 14:33 信义勤爱 阅读(1018) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107180016 创建完毕任务,启动调度器,任务控制,系统 SysTick 来临后判断是否需上下文切换; 如果没有其他任务执行的情况下,FreeRTOS 的 Idle 任务将被调度投入运行 阅读全文
posted @ 2020-10-09 14:07 信义勤爱 阅读(1531) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107146764 前面有了创建任务、启动调度器、任务控制,接下来便开始分析一个 Tick 到来之后,FreeRTOS 即将有什么行为; 在启动调度器的时候,就已经配置好了 SysTick, 阅读全文
posted @ 2020-10-09 13:55 信义勤爱 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107101723 在《FreeRTOS --(7)任务管理之入门篇》中讲过,如果有几个任务同时跑,但是又都不阻塞的话,那么最高优先级的任务将会占领整个 CPU,因为每次都会调度到它,一直处 阅读全文
posted @ 2020-10-09 13:52 信义勤爱 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107057528 在使用 FreeRTOS 的时候,一般的,先创建若干任务,但此刻任务并没有被调度起来,仅仅是创建了,如果想要真正的跑起来,那么还需要调用让调度器跑起来的函数: vTask 阅读全文
posted @ 2020-10-09 13:45 信义勤爱 阅读(2281) 评论(0) 推荐(0) 编辑
摘要: 转载自https://blog.csdn.net/zhoutaopower/article/details/107034995 在《FreeRTOS --(7)任务管理之入门篇》文章基本分析了任务相关的轮廓后,我们知道使用什么接口来创建一个任务、怎么去开启调度器、以及根据宏配置,选择调度器的行为;接 阅读全文
posted @ 2020-10-09 12:01 信义勤爱 阅读(1088) 评论(0) 推荐(1) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/107019521 任务管理是操作系统中重中之重,不管什么 OS ,任务的调度管理都是核心,FreeRTOS 也是一样;在深入到 FreeRTOS 任务管理的源码之前,鄙人觉得有必要先去从全 阅读全文
posted @ 2020-10-09 11:55 信义勤爱 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 转载自https://blog.csdn.net/zhoutaopower/article/details/106748308 FreeRTOS 中的 heap 5 内存管理,相对于 heap 4《FreeRTOS --(5)内存管理 heap4》 只增加了对非连续内存区域的管理,什么叫非连续区域内 阅读全文
posted @ 2020-10-09 11:51 信义勤爱 阅读(611) 评论(0) 推荐(0) 编辑
摘要: FreeRTOS 中的 heap 4 内存管理,可以算是 heap 2 的增强版本,在 《FreeRTOS --(3)内存管理 heap2》中,我们可以看到,每次内存分配后都会产生一个内存块,多次分配后,会产生很多内存碎片,在较为复杂的场景(需要经常动态分配和释放场景)下,几乎是无法胜任; 所以就有 阅读全文
posted @ 2020-10-09 11:47 信义勤爱 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/106677144 heap3 来说,是直接使用了 malloc 和 free 来直接替代自己的策略: 分配内存如下所示: void *pvPortMalloc( size_t xWante 阅读全文
posted @ 2020-10-09 11:37 信义勤爱 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 在《FreeRTOS --(2)内存管理 heap1》知道 heap 1 的内存管理其实只是简单的实现了内存对齐的分配策略,heap 2 的实现策略相比 heap 1 稍微复杂一点,不仅仅是提供了分配内存的接口,同时也提供了释放内存的接口; 但是 heap 2 的内存分配策略中,并没有提供空闲内存的 阅读全文
posted @ 2020-10-09 11:32 信义勤爱 阅读(243) 评论(0) 推荐(1) 编辑
摘要: 转载自https://blog.csdn.net/zhoutaopower/article/details/106631237 FreeRTOS 提供了5种内存堆管理方案,分别对应heap1/heap2/heap3/heap4/heap5,提供内存管理是作为 OS 的一项基本功能,FreeRTOS 阅读全文
posted @ 2020-10-09 11:22 信义勤爱 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://blog.csdn.net/zhoutaopower/article/details/106550648 Based On FreeRTOS Kernel V10.3.1 1、相关文件 链表结构是 OS 内部经常使用到的,FreeRTOS 自然也不例外,在深入分析各个模块的工 阅读全文
posted @ 2020-10-09 11:16 信义勤爱 阅读(1036) 评论(1) 推荐(1) 编辑
摘要: 转载自https://blog.csdn.net/zhoutaopower/article/details/106541595 FreeRTOS 是一个嵌入式实时操作系统,具有相对(相对 Linux、Windows等)较小的体积,使用精简的代码实现了简单的进程调度,内存管理,消息发送,等,常常用在一 阅读全文
posted @ 2020-10-09 10:55 信义勤爱 阅读(356) 评论(0) 推荐(0) 编辑