当前位置: 首页 > news >正文

freertos的调度过程

一.Preface

理解Freertos的任务调度对理解整个实时操作系统是非常有帮助的,最近抽空又复习了一遍源码,所以在此记录一下。

image



二.freertos的3各任务链表

2.1ready list(array)

a.这是一个链表组,定义了最高优先级为10,则有10个readylist。
b.每隔1个tick,freertos的tick中断就会从里面寻找最高优先级的task链表依次切换,并执行。

2.2delayed list

a.在任务中使用vTaskDelay(or vTaskDelayUntil)会把当前任务放入delayed list。
b.每隔1个tick,freertos的tick中断就会去判断delayed list中任务阻塞时间,如果时间到了,则将任务加入到对应优先级的ready list。

2.3pending list

b.pengding list的用法

点击查看代码
vTaskSuspendAll();	/*确保同一时刻把数据放入队列中*/xQueueOverwrite(accelerometerDataQueue, &sensors.acc);xQueueOverwrite(gyroDataQueue, &sensors.gyro);if (isMagPresent){xQueueOverwrite(magnetometerDataQueue, &sensors.mag);}if (isBaroPresent){xQueueOverwrite(barometerDataQueue, &sensors.baro);}xTaskResumeAll();

2.4对应的链表代码

点击查看代码
PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ];/*< Prioritised ready tasks. */
PRIVILEGED_DATA static List_t xDelayedTaskList1;						/*< Delayed tasks. */
PRIVILEGED_DATA static List_t xDelayedTaskList2;						/*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */
PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList;				/*< Points to the delayed task list currently being used. */
PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList;		/*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */
PRIVILEGED_DATA static List_t xPendingReadyList;						/*<
http://www.gsyq.cn/news/19824.html

相关文章:

  • 「2025 暑假日记 / 笔记」
  • 将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
  • 2025.10.12总结
  • 【Python】pandas的向量化操作
  • AI 改变数据库产品实践探索
  • 1012
  • 209. 长度最小的子数组 滑动窗口+暴力
  • CISA事件响应实战经验:漏洞修复与应急响应关键教训
  • 2025开关按钮厂家最新权威推荐榜:品质卓越与创新设计的行业
  • 记录一下 WPF进程 SendMessage 发送窗口消息进行进程间通信,存在进程权限无法接受消息的问题
  • QT6中QGraphicsView特性与应用
  • 2025工业网线厂家最新权威推荐榜:稳定传输与耐用品质的首选
  • 2025/10/12
  • 2025铝合金微弧氧化定制厂家权威推荐榜:品质卓越与技术创新
  • 2025数控滚齿机订制厂家权威推荐:高精度与高效能的首选品牌
  • 2025婚纱摄影工作室权威推荐榜:捕捉幸福瞬间的创意大师
  • hex、bin、axf文件的区别
  • ROS2之TF
  • 代码源2025长训
  • 代码源国庆模拟赛
  • 乐理 -02调式
  • 深入解析:在 CentOS 7.6 上安装 Oracle WebLogic Server 12c 详细教程
  • 使用DiskGenius检查硬盘状态信息的与坏道检测
  • 软中断softirq的CPU使用率升高
  • 案例分析-DDOS攻击、网络延迟(延迟确认纳格算法)、NAT延迟
  • 增加客户粘性
  • 2025 年卧式离心机厂家 TOP 企业品牌推荐排行榜,LW250/LW350/LW450/LW530/LW540 / 专业卧式离心机推荐这十家公司!
  • 内存知识总结
  • 读书笔记:关于Oracle里的“老古董”:LONG类型
  • 内存泄漏与SWAP