本周Arduino官方团队宣布引入Arduino多任务处理

傅澜芸
导读 本周Arduino官方团队宣布引入Arduino多任务处理,并通过加入GitHub上的讨论向社区寻求帮助。我们正在分享我们的API提案以及完整的工作实现

本周Arduino官方团队宣布引入Arduino多任务处理,并通过加入GitHub上的讨论向社区寻求帮助。“我们正在分享我们的API提案以及完整的工作实现”解释说Arduino团队想知道您对最终确定新的Arduino多任务功能的想法。最终目标是定义一个可以跨所有架构移植的标准化API。

“随着Arduino和其他微控制器板的功能增强,包括更快的时钟甚至多个内核,同时处理多个任务的需求比过去更频繁。例如,您经常希望同时控制电机、更新显示器和检测用户交互,或者执行具有不同时间的任务或等待外部事件。

执行此操作的传统方法是编写非阻塞代码,以便loop()函数可以尽可能快地运行,更新状态变量并调用millis()函数以确保正确的时间(参见“无延迟闪烁”示例了解更多)。但是,这种方法会导致代码臃肿,难以调试和维护,也不支持多核。

调度程序库已经允许通过将草图拆分为多个循环函数来以更简洁的方式编写代码,以便每个循环函数都可以专注于特定任务。但是,这种方法称为协作多任务,这意味着您仍然需要避免自己阻塞命令。此外,它不支持多核,即使支持,它也不能保护您免于从多个线程访问相同的变量。最后但同样重要的是,它基于传统的“忙循环”范式,这对于您希望线程在等待事件或传入数据时尽可能多地休息的低功耗应用程序并没有真正的帮助。”

标签:

免责声明:本文由用户上传,如有侵权请联系删除!