请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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"的实现中进行更正吗?