Thread 中讨论的其他器件:C2000WARE、 UNIFLASH
工具/软件:
尊敬的 C2000-TEAM:
您能否帮助解决此申请?请:
我正在使用 TMS320F28377D、并希望通过串行接口对其进行更新。 我正在使用 C2000Ware 中名为 Serial_Flash_Programmer 的示例工程、该工程已经包含 CPU1 和 CPU2 的匹配引导加载程序。
编程对两个 CPU 都有效、但 CPU2 出现错误。 在刷新过程中、仅显示以下错误信息:
错误状态:program_error
错误地址:0x90006
闪存 API 错误:数据缓冲区长度不正确。
FMSTAT 寄存器内容:00
我们假设此错误是由于地址而发生的 0x90006 不是 8 的倍数、因此闪存 API 会正确报告错误。 因此、我们尝试始终将固件放置在 8 的倍数存储器区域上。 我们通过 align (8) 在链接器命令文件中实现了此方法、例如:
CODESTART :>开始,页面= 0, align(8)
尽管如此、地址 0x90006 仍然受到影响、尽管它未在映射文件中列出、我们特意不在我们的固件中存储任何内容。 有趣的是、如果我们使用 Uniflash 刷写.out 文件、并且数据在地址 0x90006 处可用、则固件会正常工作。
您能否解释为什么即使映射文件中没有显示地址、也要将数据存储在那里? 是否可以更改或配置该地址?
谢谢您、
Marinus