I could use some help. It appears to me mailboxes are not doing what they should.
char Send_Status_Message[20]; …
…
…
printf("Send_Status_Message: %u
", Send_Status_Message[0]);
printf("Send_Status_Message: %u
", Send_Status_Message[1]);
…
printf("Send_Status_Message: %u
", Send_Status_Message[19]);
OSMboxPost(SEND_STATUS_MAILBOX,(void *)&Send_Status_Message);
the printf’s show that I have the expected values the array before it is sent to another task.
Immediately in the called task I do another series of printf’s to see if the values came through alright…not so
void *msg;
char *message;
…
…
msg = OSMboxPend(SEND_STATUS_MAILBOX, 0 , &err);
// convert void* returned from mailbox to a char pointer
message = (char *)msg;
printf(" *(message+ 0): %u
“, *(message+0));
printf(” *(message+ 1): %u
“, *(message+1));
…
printf(” *(message+ 19): %u
", *(message+19));
the first round of printf’s yields…
Send_Status_Message: 2
Send_Status_Message: 100
Send_Status_Message: 13
Send_Status_Message: 172
Send_Status_Message: 140
Send_Status_Message: 42
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
Send_Status_Message: 0
to which I get…
*(message+ 0): 128
*(message+ 1): 66
*(message+ 2): 250
*(message+ 3): 234
*(message+ 4): 239
*(message+ 5): 9
*(message+ 6): 0
*(message+ 7): 2
*(message+ 8): 0
*(message+ 9): 247
*(message+ 10): 209
*(message+ 11): 0
*(message+ 12): 7
*(message+ 13): 9
*(message+ 14): 0
*(message+ 15): 98
*(message+ 16): 182
*(message+ 17): 13
*(message+ 18): 0
*(message+ 19): 12
Any help would be appreciated. I have other tasks using the same interface to this called task and they behave as expected(with almost Identical code).
Steve