任务挂起: 它把所有挂起的任务加到 xSuspendedTaskList 中, 而且一旦调用 vTaskSuspend() 函数挂起一个任务,该任务就将从所有它原先连入的链表中删除(包括就绪表,延 ...
任务挂起: 它把所有挂起的任务加到 xSuspendedTaskList 中, 而且一旦调用 vTaskSuspend() 函数挂起一个任务,该任务就将从所有它原先连入的链表中删除(包括就绪表,延 ...
低功耗模式 1. 芯片原本就支持的硬件低功耗 2. freeRTOS提供的软件低功耗,Tickless模式! 当用户将宏定义 configUSE_TICKLESS_IDLE 配置为 1 且 ...
开启调度器 一、开启systick 二、开启FPU,浮点处理单元 ...
向队列发送消息 BaseType_t xQueueSend ( QueueHandle_t xQueue, const void * pvItemToQu ...
直接上代码 ##1 (1)configUSE_PORT_OPTIMISED_TASK_SELECTION被定义为1的时候: 如果这个优先级的 任务就绪列表的长度为 ...
用于信号量的队列,都是只有队列数据结构的空间,没有队列项存储空间的队列。 二值、计数、互斥、递归互斥,创建完成之后的内存状态:(转自 http://blog.csdn.net/zhzht198610 ...
出队操作类似于入队的操作。先整明白入队的操作,这个就好说了。 函数在读取消息的时候是采用拷贝方式的,所以用户需要提供一个数组或缓冲区来保存读取到的数据, 所读 ...
任务控制块TCB 任务创建函数 一、初始化新任务的TCB: 初始化新任务TCB 调用 初始化 ...
freeRTOS最吸引我的地方,就是他的任务间通信、任务间同步所用的概念,全部都建立在“队列”的基础之上。 只要抓住队列的实现,对其他的就比较清晰了。 对任务状态的管理,建立在“列表”的基础之上。 ...
标准 C 库中的 malloc()和 free()也可以实现动态内存管理,但是如下原因限制了其使用: ● 在小型的嵌入式系统中效率不高。● 会占用很多的代码空间。● 它们不是线程安全的。● 具有不确 ...