主题中讨论的其他器件:UNIFLASH、
工具与软件:
-
十六进制生成命令选项1 :-order MS -romwidth 16 -q --memwidth=16 ->选项适用于 uniflash 但不适用于 VcdmStudio
-
十六进制生成命令选项 2: -order MS -romwidth 16 -q --memwidth=8 ->选项、适用于 vcdmstudio 但不适用于 uniflash

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.
工具与软件:

这里有两行 Command1.hex ...
:20004000FE0296412B4276083B3092BE761F05B1BE00960A761F058106006002BE0192A600 :200050007E42600E761F05B1920A90015201600576083B3092BE6F047608293092BE92428B
这里有两行 COMMAND2.HEX ...
:2000100022761F76E017241A0100201A03001F76E6170018FDFF0018FEFF1F76E01700CC1D :20003000FFF0A91A000300961F76E617001A0200001A01001F76EC1700CCF0FF0A50009659
现在、我重复中每行的前几个字符 Command1.hex ,一些字符以粗体显示...
:20. 0040
:20. 0050
将其与进行比较 COMMAND2.HEX ...
:20. 0010
:20. 0030
粗体字符是该行上数据地址的低16位。 在 C28x CPU 上、每个地址对应于1个16位字、而不是1个8位字节。 这与几乎所有其他 CPU 不同、其中每个地址对应于1个8位字节。 In Command1.hex 、地址的计数方式与 C28x CPU 的计数方式相同、其中每个地址对应1个16位字。 In COMMAND2.HEX 、地址以更典型的方式进行计数、其中每个地址对应1个8位字节。 您可以通过注意到中的地址看到该值 Command1.hex 每行前进0x10、而地址在中 COMMAND2.HEX 每行前进0x20。 即使所有行都具有相同的数据量、情况也是如此。
虽然我无法通过测试确定、但很好地猜测、第三方工具会假定每个地址对应于1个8位字节。
这里是需要考虑的一种解决方案。 Uniflash 支持由链接器生成的 ELF 目标文件。 对于 Uniflash、请勿使用 hex 文件。 使用 .out 报头文件。 仅对第三方工具使用 hex 文件。
谢谢。此致、
-George.
您好、 George Mock
感谢您的快速响应和详细解释。
用例是更新十六进制文件中的变量/参数值(离线校准)。 在十六进制文件中更新值后、需要在 ECU 中刷写同一个文件、以便 ECU 使用更新后的参数值。
VCDMStudio 工具团队确认它们仅支持8位寻址。
是否有任何变通办法、以便现有的第三方工具(支持字节寻址的工具、如 VCDM Studio)可以校准参数、并且该文件可以闪存到 ECU?
或者、作为替代方案、您可以为 TMS320F28388D 微控制器推荐一款受支持的校准工具吗?
谢谢!
Vikram
您似乎误解了我所描述的解决方案。
中刷新同一个文件用例是更新十六进制文件中的变量/参数值(离线校准)。 在十六进制文件中更新值后、需要在 ECU
而不是使用 hex 文件(由 -- memwidth=8 )要刷新 ECU、请使用 .out 报头文件。
谢谢。此致、
-George.
您好、 George Mock
感谢您的答复。
我不想再次重新编译代码。
第三方工具不支持 .out 用于离线校准的调试文件。
我想将校准后的文件刷写到 ECU 中。 如果我使用 .out 刷写和 .hex 文件中进行离线校准、可在首次刷写代码。 但是、如何刷写校准后的固件文件?
转换校准后的值 十六进制 转换为 能源 情况? 如果是、我如何转换它?
添加了示例。
我有一个源代码,其中有一个变量(可校准)var = 10. 我使用选项编译代码memwidth = 8、该选项可生成两个 能源 和 A 十六进制 报头文件(通过十六进制实用程序)。
我使用 .out 刷写和 .hex 用于校准的第三方工具的下载可视化文件。
我会var = 20更新变量并导出或保存更新后的十六进制文件。
我如何转换更新的 十六进制 转换为 能源 以便将其刷写到 ECU 中?
工作流程:

谢谢
Vikram