从 freertos 中的数据中获取有关发送任务的信息
Getting info about the sending task from the data in freertos
我是 FreeRTOS 和 STM32 的新手。我正在做一个需要将数据从一个任务发送到另一个任务的项目。但是接收任务需要获取有关哪个任务发送数据的信息,因为我的程序中有多个任务。有什么方法可以从 freertos 的另一个任务中的接收数据中获取有关发送任务的信息吗??
提前致谢
只需使用一个FreeRTOS Queue。这将允许您将数据从一个任务发送到另一个任务。一个或多个任务可以 post 数据到队列,另一个任务可以阻塞,直到一些数据到达队列。
队列可以包含任何类型 T 的数据,FreeRTOS 要求您提供您希望在队列中存储的项目数量以及单个元素的大小,即 sizeof(T)。
为了您的方便,您可以简单地使用以下结构在任务之间传递数据。
typedef struct Data {
// Basically can be any plain-old-data.
// Instead you can make a Data a tagged-union of structures as well.
};
typedef struct InterTaskPayload {
int id; // task identifier
Data data;
};
通过打开接收消息,接收任务可以识别发送者(post消息的任务)并使用数据。
我是 FreeRTOS 和 STM32 的新手。我正在做一个需要将数据从一个任务发送到另一个任务的项目。但是接收任务需要获取有关哪个任务发送数据的信息,因为我的程序中有多个任务。有什么方法可以从 freertos 的另一个任务中的接收数据中获取有关发送任务的信息吗??
提前致谢
只需使用一个FreeRTOS Queue。这将允许您将数据从一个任务发送到另一个任务。一个或多个任务可以 post 数据到队列,另一个任务可以阻塞,直到一些数据到达队列。
队列可以包含任何类型 T 的数据,FreeRTOS 要求您提供您希望在队列中存储的项目数量以及单个元素的大小,即 sizeof(T)。
为了您的方便,您可以简单地使用以下结构在任务之间传递数据。
typedef struct Data {
// Basically can be any plain-old-data.
// Instead you can make a Data a tagged-union of structures as well.
};
typedef struct InterTaskPayload {
int id; // task identifier
Data data;
};
通过打开接收消息,接收任务可以识别发送者(post消息的任务)并使用数据。