FreeRTOS task和queue相关策略--Apple的学习笔记

之前的注意力集中在板级代码TC1.6 core寄存器的使用,注意力集中在分析port.c文件,它主要负责上下文切换动作的执行和任务栈初始化的。port.c代码差不多都看完理解了。

现在我把焦点集中到FreeRTOS的共有核心代码task.c,主要负责任务调度算法的。可以理解它是APP代码,所以不同的内核都是可以用相同的task.c。

看了task.c中创建任务,启动OS,优先级调度策略和周期函数挂起控制算法,心跳包tick处理函数。

没想到心跳包tick函数在resumeAll函数中会调用,目的是做时间补偿,学习了。但是对于时间溢出部分的处理暂时只看一小戳代码,无法从整理系统的了解,所以关于时间溢出后的处理我先忽略,之后再理解。

主要涉及的函数阅读笔记如下:


image.png

有抽了一个进程间通信(queue)的代码实现看了下,都是比较好理解的。一个队列绑定到1个或多个发送/接收任务。


image.png

你可能感兴趣的:(FreeRTOS task和queue相关策略--Apple的学习笔记)