您好!
我有一个用于某些通信调度的任务,我想知道是否可以在同一个任务中执行 Mailbox_post ()和 Mailbox_pend()来进行初始化。 我尝试的代码与下面列出的代码类似、并且在邮箱指针中列出的数据中遇到错误:
typedef struct
{
int id;
char firstname[25];
char lastname[25];
} MY_MAILBOX_STRUCT;
/*---------------------------------------------------------------------------*/
/** @brief A Task for Scheduling Messages
* This task pends on messages being posted into it's mailbox
*//*------------------------------------------------------------------------*/
void someTask(void)
{
void* msgPtr;
MY_MAILBOX_STRUCT *MbxPtr;
MY_MAILBOX_STRUCT mbx =
{
10, "HELLO", "WORLD"
}
Mailbox_post(someMailbox, (void*)&mbx, BIOS_NO_WAIT);
while(true)
{
Mailbox_pend(someMailbox, msgPtr, BIOS_WAIT_FOREVER);
MbxPtr = (MY_MAILBOX_STRUCT*)msgPtr;
//Do whatever work with the newMbxPtr I have
}
}
感谢您的任何帮助!