FreeRTOS 事件任务架构来处理代码周围的不同标志

问题描述 投票:0回答:1

我正在使用 C/C++ 开发一个 FreeRTOS 项目,该项目大约有 10 个用于 gpios、显示器、wifi 等的任务。

这些任务仅由事件触发。例如,用户在菜单“连接”上选择一个选项,这将触发相应任务的事件。

我想知道的是,处理代码周围标志的最佳方法是什么?

例如,我有一些标志:“wifi_check_status”,“mqtt_connect”,“button_pressed”等等。

目前,我正在使用存储所有这些标志的全局结构。然后,重复的任务只读取它需要的标志并更新其值。

我有很多标志,以及 10 个需要读取它们的任务。每当任务想要读取这些标志时,我是否应该使用互斥锁?还是有我没有看到的更简单的方法?

我对当前的架构没有任何问题,但我想知道这是否是最好的方法。

提前非常感谢

c embedded global-variables scheduled-tasks freertos
1个回答
0
投票

我对当前的架构没有任何问题,但我会 想知道这是否是最好的方法。

这是如何不使用 freeRTOS 进行编程的示例。这是一种可怕的做法。使用队列直接任务通知事件组

使用标志和任务轮询其值表明您需要在开始开发 freeRTOS 应用程序之前学习 IPC(进程间通信)

© www.soinside.com 2019 - 2024. All rights reserved.