我实现了一个引导加载程序 、以修改 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 文件?
或者我需要修改引导加载程序代码吗?