工具/软件:Code Composer Studio
您好!
我有一个 F280045项目、我启用了闪存 ECC。 我根据 SPRS945C 表6-2 (即组0为0x01080000)使用正确的起始地址、并使用涵盖的闪存每8个字节1个字节的长度、将 ECC 存储器范围添加到链接器命令文件存储器部分。 这一切都经过测试并运行良好(编译、运行并能够检测 ECC 错误)。 我需要将输出文件转换为十六进制文件以进行刷写。
我在 CCS 编译->步骤->编译后处理步骤中使用了以下内容:
"${CG_TOOL_HEX}"-i "${BuildArtiftFileName}"-o "${BuildArtiftFileBaseName}.hex"-romwidth 16
成功编译和链接后、hex2000应用程序会向我发出以下警告:
警告:01080000h 上的 dsp.out (.ecc2)部分落在未配置的内存中
实际上、0x01080000之后的存储器地址不包含在生成的十六进制文件中。
我尝试删除了编译后处理步骤、并在工程属性上使用了 C2000十六进制实用程序选项(我认为应该是等效的)。 我启用了该实用程序、选择了 Intel 输出并将 romwidth 选项配置为16。 我在控制台中获得相同的警告、十六进制文件仍然不包含 ECC 存储器范围。 我添加了创建映射文件输出的选项、内容部分不会列出 ECC 存储器范围。
我从 SPRU513中了解到、范围定义的链接器命令文件将是"已配置的存储器"、用于创建十六进制文件、但 ECC 存储器似乎不是这样。
我有一个用于 TMS570LS033x 的类似项目、也使用 ECC、它在使用与上述步骤相似的编译后处理步骤时没有问题(romwidth = 32)
我希望避免复制命令文件中已指定的链接器命令文件、以使用 hex2000 ROMS 指令(尚未尝试、不确定这是否有效)。 我是否可以尝试其他操作、或者这是在十六进制输出中包含 ECC 范围的唯一路径?
提前感谢、
Jose Lopez