Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
CCS 6.1.3
tirtos_tivac_2_16_01_14 (BIOS_6_45_02_31)
xdctools_3_32_00_06_core
TI-CGT-ARM_15.12.1.LTS
SPRUEX3P (SYS/BIOS (TI-RTOS 内核) v6.45使用指南)第117页显示了一个将事件与邮箱一起使用的示例:
readerTask()
{
while (true){/*等待 ISR 或邮箱消息*/
事件= Event_pend (myEvent、
EVENT_ID_NONE、/*且掩码= 0 */
EVENT_ID_00 + Event_ID_01、/* orMask */
BIOS_wait_forever);/*超时*/
if (Events & Event_ID_00){
/*获取发布的消息。
* Mailbox_pend ()不会阻止、因为 Event_pend ()
*已保证消息可用。
*请注意特殊的 BIOS_NO_WAIT
*参数告诉邮箱 Event_pend()
*用于获取可用消息。
*
Mailbox_pend (mbox、&msgB、BIOS_no_wait);
processMsg (&msgB);
}
if (Events & Event_ID_01){
processISR();
}
}
但在调试期间、我相信有时会看到 Mailbox_pend (mbox、&msgB、BIOS_no_wait)的返回值为 false、然后 msgB 无效。 我读取了"packages/ti\SysBIOS\KNL\Mailbox.c"中的源代码、我不知道为什么在设置了 Event_ID_00并且超时为 BIOS_NO_WAIT 时它返回 false。
那么、您能帮您说明一下吗? 在这种情况下、我还应该检查返回值吗?
