随笔分类 - FreeRTOS
摘要:事件组也是一种异步处理方式,,将事件监听和事件处理分离开。 可以记录事件、清除事件标志位。 使用流程: 创建事件组 事件监听task 事件处理task 事件发生,设置事件位 等待事件位,清除相应事件位 处理事件 事件组创建: //创建API EventGroupHandle_t xEventGrou
阅读全文
摘要:FreeRTOSConfig.h 中涉及到的宏定义: configUSE_TIMERS一般用于处理一些周期性任务,也可以跟事件组搭配使用,如监听IO事件。 任务创建/删除: //两种创建方法 TimerHandle_t xTimerCreate( const char *pcTimerName, c
阅读全文
摘要:对于共享资源的访问或者一些非原子操作的保护,有几种常用方法: 1. 通过挂起中断创建临界区 2. 通过挂起调度器 3. 通过互斥量 1. 挂起中断 taskENTER_CRITICAL(); taskEXIT_CRITICAL(); 对于临界区的内容处理短、快速的代码,可以使用中断挂起,但是,该套函
阅读全文
摘要:信号量进行中断上下文切换 信号量操作是原子操作 信号量能阻塞任务,同时也能解除任务的阻塞状态 信号量分类: 二值信号量:队列长度为1,处理中断频率低的事件,进行中断上下文切换 互斥信号量:针对共享数据的原子操作 计数信号量: 队列长度为N的二值信号量,对于中断频率较高的事件,可以用计数信号量,进行处
阅读全文
摘要:队列创建 宏定义:configSUPPORT_STATIC_ALLOCATION //静态创建 QueueHandle_t xQueueCreateStatic( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t *pucQueue
阅读全文
摘要:1. 任务创建函数 // 创建任务的内存由 RAM 在 heap上动态分配 BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, unsigned short usStackDepth, void
阅读全文

浙公网安备 33010602011771号