если задача ждет какого-либо определенного сообщения, то удобно определить локальную переменную как указатель на это сообщение:
typedef struct
{
u08 asdf;
u16 qwer;
} bla_bla;// ----
void task1 (void *param)
{
bla_bla *received_message_pointer;
for (;;)
{
tn_queue_receive(&queue, &received_message_pointer, TN_WAIT_INFINITE);
/* если не было таймаута, то тут received_message_pointer указывает на структуру, указатель на которую был передан в другой задаче - можно к этой структуре обращаться по этому указателю */
received_message_pointer->qwer = 0;
}
}