저는 실행중인 몇 가지 작업에 몇 가지 문제가있었습니다. 세 가지 작업이 있습니다. 하나는 LCD 업데이트 작업이고 나머지 두 가지는 모터 드라이버 작업입니다. 또한 모터 드라이버 작업에 메시지를 게시하는 두 개의 ISR이 있습니다. 지금까지 안전하게 포인터를 전달하는 것과 같은, 내가 구조체 만드는 방법에 대해 생각했다 :RTOS - 구조체를 할당하고 대기열을 통해 전달합니다.
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)
이럴 가능성이 있습니까?