我正在运行的几个任务遇到了一些问题。我有三个任务,其中一个是 LCD 更新任务,另外两个是电机驱动器任务。我还有两个 ISR 可以向两个电机驱动任务发布消息。至于安全地传递指针,我正在考虑创建一个结构:
typedef struct message{
enum BUTTON_1 = 0, BUTTON_2 = 1, NO_BUTTON = 3; //button ISR to increase motor drive
int timestamp; //A timestamp for the RPM of the motors
}
现在共享内存的问题出现了,所以我在想:
struct message* update_msg = (struct message*)malloc(sizeof(struct message)); //from here I dont know how to creat an object that fills the space allocated.
然后我将通过队列将指针发送到结构:
OSTASKQPOST((void *)(st_size)
....
)
在最后一个任务收到消息并使用成员变量完成所需的操作后,我将不得不释放内存。
free(st_size)
这样的事情是合理的吗?