首页
/ TaskScheduler 项目推荐

TaskScheduler 项目推荐

2026-01-29 11:34:04作者:温艾琴Wonderful

项目基础介绍和主要编程语言

TaskScheduler 是一个为 Arduino、ESPx、STM32、nRF 等微控制器设计的协作式多任务调度库。该项目的主要编程语言是 C++,适用于嵌入式系统开发。TaskScheduler 提供了一种轻量级的协作式多任务处理实现,使得开发者能够更方便地管理多个任务的执行,而不需要担心并发处理中的常见问题,如竞态条件、死锁等。

项目核心功能

TaskScheduler 的核心功能包括:

  1. 周期性任务执行:支持动态执行周期,单位可以是毫秒或微秒。
  2. 任务迭代次数控制:可以设置有限或无限的任务迭代次数。
  3. 任务参数动态调整:支持在运行时动态更改任务的执行频率、迭代次数和回调方法。
  4. 节能模式:当没有任务需要执行时,自动进入 IDLE 睡眠模式以节省能源。
  5. 事件驱动任务调用:通过状态请求对象支持事件驱动的任务调用。
  6. 任务 ID 和控制点:支持任务 ID 和控制点,便于错误处理和看门狗定时器。
  7. 本地任务存储指针:允许使用相同的回调代码处理多个任务。
  8. 分层任务优先级:支持多层任务优先级设置。
  9. 支持 std::function:在 ESPx 和 STM32 平台上测试通过。
  10. 任务超时设置:支持任务的整体超时设置。
  11. CPU 负载统计:为时间敏感的应用提供 CPU 负载和空闲统计。
  12. 调度选项:支持优先级调度和间隔调度。
  13. 线程安全调度:在抢占式调度器(如 FreeRTOS)下运行时,支持线程安全的调度。
  14. 动态任务自毁:支持在禁用时自动销毁动态创建的任务。
  15. FreeRTOS 下的“tickless”执行:在 FreeRTOS 下支持连续睡眠直到下一个任务调度。

项目最近更新的功能

TaskScheduler 最近的更新功能包括:

  1. 版本 3.8.5:2024-06-17 发布的最新版本,提供了更快的支持或集成咨询服务。
  2. 支持更多平台:增加了对 nRF52 Adafruit Core 的支持,并测试了 nRF52840 平台。
  3. 改进的调度性能:优化了调度器的性能,调度开销在 Arduino UNO rev 3 @ 16MHz 时降低到 15-18 微秒。
  4. 增强的文档和示例:在 'extras' 文件夹和 Wiki 页面中提供了更详细的文档和示例代码。
  5. 用户反馈集成:根据用户反馈,进一步优化了任务调度和节能模式的功能。

TaskScheduler 是一个功能强大且易于使用的多任务调度库,适用于各种嵌入式平台,能够显著提高开发效率和代码的可维护性。

登录后查看全文
热门项目推荐
相关项目推荐