This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:邮箱开机自检错误!

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/567937/rtos-mailbox-post-error

Thread 中讨论的其他器件:OMAPL138SYSBIOS

工具/软件: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

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nhan、

    什么是 sizeof (temp)和 sizeof (g_msgA)? 如果 sizeof (g_msgA)> sizeof (temp)、则由于邮箱是基于复制的、因此会损坏。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Todd、

    我创建枚举结构以声明所有同步消息

    typedef 枚举

    OS_mess_keyboard_0 = 0 、
    OS_mess_keyboard_1、

    }奥斯梅斯;



    OsMess temp;
    OSMess g_msgA;

    我认为 sizeof (g_msgA)=sizeof (temp)。 我是对的吗?

    另一个程序路径是否会影响邮箱?

    谢谢、
    Nhan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nhan、

    您能否尝试以下链接上的步骤、了解如何返回跟踪您看到的异常转储?

    Steve

    processors.wiki.ti.com/.../BIOS_FAQs