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.
工具/软件:Code Composer Studio
您好!
我正在使用 FreeRTOS 运行闪烁程序。 它已成功编译。 但是、我在将代码加载到 MC 时遇到以下错误。
--------------------
CortexR4:文件加载程序:存储器写入失败:闪存算法在闪存编程期间返回一个错误。 注意:自动 ECC 生成已打开、请确保数据段在您的-链接器文件中对齐64位内存;或者、在片上闪存设置中关闭自动 ECC 生成
----------------------
我已关闭"调试"下的 ECC 生成、"属性"下的链接器选项。 我可以分享任何相关的屏幕截图。 请告诉我这个问题。
此致
Navin
Navin、
当段未对齐64位对齐时、无论闪存设置如何、我们似乎都会提供该完整错误消息。 我将与能够展示如何修改链接器命令文件以确保段64位对齐的人员进行循环。
John
至...
Johes 说:修改链接器命令文件以确保段是64位对齐的。
(笑声) 换行方式如下...
.data > SRAM
至...
.data > SRAM、align=64
要了解有关对齐各节的更多信息、请在 ARM 汇编工具手册 中搜索标题 为"部分分配和放置"的子章节。
谢谢、此致、
乔治
Navin、
您是否进行了其他更改? 您将.data 标记为 align=64。 但是、.bss 被报告为大于整个 RAM 存储器范围。 因此、即使 align = 64使.data 更大、这也不能解释.bss 单独比 RAM 更大的原因。
链接器命令文件中已经有.data 段、或者您是否根据 George 的建议添加了该段。 如果它不在那里、那么您可能要做的是添加对齐到.bss 段。
此致、
John
尊敬的 John:
是的、.data 已经存在于文件中。
我将、align = 64添加到.data 并得到.bss 段大小错误。
之后、我还尝试向.bss 段添加 align = 64。 我收到相同的错误。
我应该增大 RAM 存储器范围并尝试吗? 请给出建议。 我只是使用 RTOS 运行闪烁的演示应用程序。
此致、
Navin
尊敬的 John:
我在这里部分确定了问题。 FreeRTOS 有5个不同的 heap.c 文件。 当我使用其中很少的代码时、.bss 被分配了更大的大小、因此会引发错误。
当我使用特定的堆文件时、它会成功构建并进入调试模式。
如果您知道 FreeRTOS、您可以帮助我简要说明堆管理导致此问题的原因。 如果不是、您可以关闭此线程、将其标记为已解决。
此致、
Navin