主题中讨论的其他器件:TMS320F28379D、 C2000WARE
尊敬的所有人:
我们正在通过 TMS320F28377S 和 TMS320F28379D 实现固件更新功能。
链接到 K、L、M 扇区的主应用程序。 对于固件更新、我们将 主应用程序的 hex 文件复制到 HMI、并将文件通过串行方式发送到控制器。 控制器在 B、C、D 扇区和复位控制器上存储接收十六进制数据。
复位时、引导加载程序代码将十六进 制数据从 B、C、D 扇区复制到 K、L、M 扇区、并跳转到 K 扇区的起始地址。
十六进制文件具有 从0xB8000到0xBD7A8 (扇区 K、L、M)的非空地址空间。 十六进制文件具有从 0xBD7A8 到0xBDFFA (扇区 M)的空地址空间
为了进行测试、我们首先在调试模式下执行主应用程序代码。
在将十六进制文件写入 B、C、D 扇区时、对于十六进制文件地址0xBD966及更高的地址 为空 地址空间、 0x000数据不会写入存储 器、而是保留为0xFFFF。 我们在"Memory"窗口中观察到了相同的情况。 API 未给出任何错误。
为十六进制文件地址0xBDEA8 写入8个字时、 表示地址空间为空、API 返回509个错误。
然后、我们通过更改 hex.cmd 文件中的长度字段来生成没有空地址空间的十六进制文件、并在上述练习中进行了尝试。
我们没有遇到任何错误、固件更新适用于引导加载程序代码。
我们在 上述两种控制器中都观察到了这种行为。
我们的查询:
1) 1) 0x000数据未被写入存储 器、并且保持为0xFFFF 的可能原因是什么 、闪存写入错误509属于空地址空间。
2) 2)我们使用 hex.cmd 文件的长度字段从 hex 文件中删除了空地址空间。 如何使用编译器或其他选项从十六进制文件中删除空地址空间。
此致...
Yogesh