fx

FreeRTOS交流QQ群-663806972 BLE学习交流群-498676838

0%

stream buffer 是一种轻量级的数据流传递方式,通过限制只有一个写,并且也只有一个读,使得内部实现逻辑更高效,并且由于只有一个读和一个写,内部实现中需要保护的临界区“很小”,这些都提高了stream buffer传递数据的效率。
阅读全文 »

本文介绍使用Task Notification,在一些常见开发场景中来替代二值信号量、计数信号量、event group、以及消息邮箱(存储单个uint32_t数值的邮箱),以提高系统运行效率。
阅读全文 »

实际应用开发中,系统中最常见的功能需求就是任务和任务间相互传递信息,以及中断服务函数向任务传递信息(例如通知任务发生了按键事件)。并且,需要传递的信息往往很短,例如一个数值或者一个事件标记。 FreeRTOS为这种任务间简短数据传递,提供了一个轻量级的任务通信功能——task notification。
阅读全文 »

在多核CPU中,由于每个核心有自己独立的cpu cache(L1、L2 cache),所以当某个cpu核心修改了自己cache中的目标数据,但未及时同步给其它cpu核心的cache(同样包含目标数据),就会存在缓存一致性问题。
阅读全文 »

本文演示使用event group 来替代二值信号量,在任务和任务间,以及中断服务函数和任务间进行事件同步。
阅读全文 »

事件组(event group)是FreeRTOS 为灵活处理任务间事件同步而提供的组件。相比消息队列或信号量,事件组提供了更灵活的事件同步方式。
阅读全文 »

本文介绍 FreeRTOS 中互斥量(mutex)的优先级继承特性,以及 FreeRTOS 是如何通过互斥量的优先级继承特性,来最小化优先级反转问题带来的负面影响
阅读全文 »

FreeRTOS 为多任务可以,安全地并发访问共享数据,提供了多种数据保护方案。例如,简单直接的关中断;关闭内核调度器;使用信号量。但应用开发最推荐的,是使用FreeRTOS提供的互斥量(mutex)来保护共享数据。
阅读全文 »