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.

[参考译文] TMS320F28388D:引导加载程序和十六进制发生器

Guru**** 2573695 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1242471/tms320f28388d-bootloader-and-hex-generator

器件型号:TMS320F28388D

我实现了一个引导加载程序  、以修改 ROM 代码 BOOT_SPI_CPU1。 我将其与 通过 C2000十六进制实用程序以副输出格式生成的 bin 文件一同使用。 我有一段时间没见过她。

跟踪该问题会导致写入第二个数据块时出错:指令 Fapi_issueProgrammingCommand 返回 Fapi_Error_AsyncIncorrectDataBufferLength 。

在 bin 文件中、似乎第一个块很短:2和5个字。 我在这里复制 bin 文件的开头。

AA 08 -插头
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 -初始化数据
08 00 00 00 -入口点
02 00 -块大小
08 00 00 00 -目标地址
4A 00 9D 12 -数据
05 00 -块大小
08 00 02 00 -目标地址
AA 55 77 99 58 14 78 00 95 25 -数据
FE FF 08 00 10 00 10 FE 49 2B 49 92 02 52 E7 FF
31 0F 00 52 09 61 01 52 E0 FF 27 0F 1F 76 7E 04

如果我正确卸载、问题在于 EEC 生成过程会阻止在相同的64位数据块中再次写入(TMS320F2838x 闪存 API 版本1.60.00.00:  "针对64位数据计算 ECC 并对其进行编程后、即使在该64位数据中将位从1编程为0、也无法对这64位数据进行重新编程(除非扇区被擦除)、因为新的 ECC 值将与先前编程的 ECC 值相冲突。

如何防止 C2000十六进制实用程序生成此类 bin 文件?

或者我需要修改引导加载程序代码吗?