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/PROCESSOR-SDK-AM437X:PRP 应用程序失败

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616514/rtos-processor-sdk-am437x-prp-application-fails

器件型号:PROCESSOR-SDK-AM437X
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

您好!

我在 idkAM437x 上使用 processor_sdk_rtos_AM437X_3_03_00_04处理 PRP 示例应用。

初始化后的应用程序失败:

ThreadType_Task 中发生异常。
任务句柄:0x80132bc0。
任务堆栈基地址:0x80132c10。
任务堆栈大小:0x2000。
R0 = 0x80134554 R8 = 0x80123e00
R1 = 0x00000000 R9 = 0xffffffff
R2 = 0x54402000 R10 = 0x80123e70
R3 = 0x54403e94 R11 = 0x00000003
R4 = 0xffffffff R12 = 0x80124088
R5 = 0xffffffff SP (R13)= 0x8004e314
R6 = 0xFFFF LR (R14)= 0x80123cf4
R7 = 0xffffffff PC (R15)= 0x80008c98
PSR = 0x80008c98
DFSR = 0x00000005 IFSR = 0x00001004
DFAR = 0x0000000c IFAR = 0xbbb9b7e8
TI.SYSBIOS.family.ARM.exc.exception:第205行:E_dataAbort:PC = 0x80008c98、LR = 0x80123cf4。
xdc.runtime.Error.raise:终止执行


使用 Debug 选项构建应用程序。

就我成功地进行了步进调试而言、nc_NetStart 函数中看起来存在问题。 (STACK: TI_NDK_CONFIG_Global_stackThread -> NC_NetStart)

我对问题感到惊讶、因为这是 TI 提供的"原始"应用程序。
有什么理由?

此致、
马里

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

    您是否曾尝试在下电上电后在 CCS 中执行"系统重置"、然后加载/运行应用程序? 希望您可以使用第二个电路板来排除任何硬件问题。

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

    尊敬的 Garrett:

    我很高兴与大家分享我对 prp_app 问题的发现和个人结论、该问题占用了大量的时间和资源!

    结果:
    调试和释放映像正常工作、但在调试加载之前、需要通过"系统复位"或"热复位"按钮(这就是 SD 引导案例正常工作的原因)重置电路板!

    我认为,在装载时,有些旗帜和状态是未定义的。 我已经发现需要禁用 RX 中断(因为它在启动时启用)。 要解决此错误、需要保证/升级初始化过程、清除标志、启动时的外围复位。

    我认为需要尽快使用补丁解决此问题!

    请告知我 您的立场和意见。

    此致、Mare



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

    感谢您的总结! 我将与团队同步、了解您的新测试结果、如果有任何反馈、请随时更新。

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

    只需确认一下、对于使用 CCS 进行的每个输出文件测试、您是否会发现问题
    -断开电源
    -将其重新连接
    -将 JTAG 连接到内核
    -自动加载 GEL 文件*
    -加载.out 文件
    (*无"系统重置"、无"热重置")

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

    Garrett、

    我将 IDK 板置于非常繁忙的网络中、认为情况更糟!
    现在、我几乎每次加载调试器时都会遇到异常。

    要回答您的问题:
    在我更改网络之前、您描述的流程让应用正常工作。
    当我使用调试器重放并重新调试应用时、需要进行系统复位才能成功启动应用。


    不知道该怎么做... 我想了解使用 SD 引导或 CCS 运行之间的差异...
    CCS 使用消息。 在控制台上打印,SD 引导已执行 USART 打印...  

    在繁忙的办公室网络上、调试映像加载不能出现异常?

    此致、Mare

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

    Garrett、

    这很奇怪...
    这是在控制台中编写的:

    [CortexA9] 00000.000
    InterNiche Portable TCP/IP、v4.01 (TI SYS/BIOS)
    
    00000.000 Copyright 1996-2013 by InterNiche Technologies。 保留所有权利。
    
    网络已添加:if-1:XXX.XXX.X.XXX 

    通常需要大约10秒来写这张照片。
    现在、我将在控制台中禁用打印、并根据自己的信仰更改.cfg 文件:

    //System.SupportProxy = SysStd; 

    现在控制台用字符串填充的时间不到秒 并且没有发生异常。  

    发生什么事了?

    此致、Mare


     

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

    默认情况下禁用 SysStd 时,系统模块的支持代理是 SysMin,其中所有输出(来自 System_printf()和 System_puttch ()等函数) 进入内部管理的缓冲区,系统模块的 System_printf ()函数与使用 SysStd 的 printf ()完全符合 ANSI C 的实现相比,使用 SysMin 的 System_printf ()函数要小得多,速度要快得多,请参阅以下详细信息:rtsc.eclipse.org/.../Using_xdc.runtime_System。 您可以继续使用 SysMin、因为它似乎解决了问题? 在繁忙的网络中、调试映像加载并不会出现异常、但在加载映像之前、我们始终会执行下电上电或系统复位。

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

    是的、我可以继续并记住、与 HWI 可能存在"任务竞赛"。。。

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

    我们将密切关注是否有任何其他客户报告同一问题、并重新讨论该问题。
    您是否想通过单击此帖子中的"此问题已解决"按钮将该主题标记为已关闭? 如果需要、可以重新打开它。

    谢谢、
    Garrett