工具/软件:TI-RTOS
您好!
我的项目在 ARM 内核上使用 OMAPL138和 SYS/BIOS。 我创建一个邮箱作为任务同步:
"
//全局变量
EVENT_Handle g_myEvent;
mailbox_handle g_mbox;
Mailbox_Params g_mboxParams;
ERROR_Block EB;
ERROR_INIT (&EB);
//创建事件
G_myEvent = Event_create (NULL、&EB);
if (g_myEvent == NULL)
{
system_abort ("事件创建失败");
}
//创建邮箱
Mailbox_Params_init (&g_mboxParams);
G_mboxParams.readerEvent = g_myEvent;
/*将 Event_ID_00分配给邮箱"非空"事件*/
G_mboxParams.readerEventId = Event_ID_00;
g_mbox = Mailbox_create (sizeof (temp)、50、&g_mboxParams、&EB);
"
在一个任务中使用 POST 函数
//发送到操作任务。
Mailbox_post (g_mbox、&g_msgA、BIOS_wait_forever);
挂起函数
G_Events = Event_pend (g_myEvent、
EVENT_ID_NONE、/*且掩码= 0 */
EVENT_ID_00 + Event_ID_01、/* orMask */
BIOS_wait_forever);/*超时*/
if (g_events 和 Event_ID_00)
{
Mailbox_pend (g_mbox、&g_msgB、BIOS_no_wait);
processMsg (&g_msgB);
}
首次、程序平稳运行。 但每天的来源都更大。 我发现它停在了
Mailbox_post (g_mbox、&g_msgA、BIOS_wait_forever);
使用控制台上的文本:
[ARM9_0] 大小:0x4000。
R0 = 0xc0850f94 R8 = 0xffffffff
R1 = 0x00000000 R9 = 0xffffffff
R2 = 0x0000038c R10 = 0xffffffff
R3 = 0xfe96a13a R11 = 0xffffffff
R4 = 0xc08510c8 R12 = 0x00000032
R5=0x000000cc SP (R13)=0xc087b7a6
R6 = 0x00000066 LR (R14)= 0xc084441c
R7 = 0xc084d112 PC (R15)= 0xc087b7a6
PSR = 0x00000066
DFSR = 0x00000005 IFSR = 0x00000008
DFAR = 0xfe96a13a
TI.SYSBIOS.family.ARM.exc.exception:第205行:E_dataAbort:PC = 0xc087b7a6、LR = 0xc084441c。
xdc.runtime.Error.raise:终止执行
我不知道如何解决这个错误。 IAM 确定程序运行到 mailbox_post 函数并卡在此处。
我真的需要你的帮助。 是否有任何原因导致 mailbox_post 错误?
谢谢、
Nhan