手动触发上下文切换 像信号量等阻塞的,当满足条件不阻塞了,要调用这个,让高优先级的任务抢占。 #if (configUSE_PREEMPTION == 0) /* 如果使用协作式调度(cooperative scheduling), * 那么就算有更高优先级的任务被唤醒,也不应该立即触发一次调度
队列必须掌握,这是其它的基石,不理解这个,其它的源码也看不懂。 queue.c、queue.h 队列结构体: typedef struct QueueDefinition { int8_t *pcHead; // 队列存储区开始地址 int8_t *pcWriteTo; //
列表是 FreeRTOS 系统各种功能实现的的基础,本质上是一个双向循环链表。 类型定义 列表类型: typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VALUE volatile UBaseT