実行しているいくつかのタスクでいくつかの問題が発生しています。私には3つのタスクがあります。1つはLCD更新タスクで、他の2つはモータードライバータスクです。また、両方のモータードライバータスクにメッセージを投稿する2つの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)
このようなものはもっともらしいでしょうか?