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.

[参考译文] PROCESSOR-SDK-AM65X:FreeRTOS 在 xPortStartScheduler 处与-O0崩溃

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1161496/processor-sdk-am65x-freertos-crash-at-xportstartscheduler-with--o0

器件型号:PROCESSOR-SDK-AM65X

您好!  

我最近尝试在 CMake 中从 AM65XX PDK 构建/运行 enet_lwip_example。 我成功构建并链接了项目、并将其加载到我拥有的 AM65x_GP_EVM 的 R5F 内核上。 但是,我注意到应用程序在 xPortStartScheduler 中一直崩溃:

memcpy((void *)configMCU_ATCM_BASE, (void *)_freertosresetvectors, 0x40);


调试时、似乎当项目在 tiarmclang 中使用-O0进行优化时、会调用"TI_memcpy_small"、该调用会尝试使用"strb"汇编命令将字节复制到地址0x0 (configMCU_ACK_base)。 这是基于调试导致崩溃的原因。  

仅当切换到-O3优化时、此 memcpy 代码才会调用更通用的实现、该实现会将字复制到地址0x0而不是字节中。  

这是问题/错误吗? 我不太清楚我需要使用-O3优化为 R5F 内核构建 FreeRTOS、坦率地说、如果我想改用-O0进行构建、我觉得它不应该像这样导致崩溃/问题。  

这可以在文档中或在"TI_memcpy_small"的实现中进行更正吗?

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

    尊敬的 Benjamin:

    感谢您指出崩溃和调试。 让我联系 SDK 团队、了解我们是否可以解决"TI_memcpy_small"的实现问题

    是的、我们应该验证并将其包含在文档中。 再次感谢您指出。

    此致

    安州

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

    Benjamin、

    我提出了一个问题,并将请求传递给了编译 器团队,我 会在得到一些答复时再回复您。

    我从您的主题中了解到、由于此问题、您不会被阻止。 请告诉我是否有任何其他东西阻碍您的开发

    此致

    安州