Thread 中讨论的其他器件:UNIFLASH
工具/软件:
您好论坛、
我开发了一个用于串行代码加载的 GUI 应用程序。 一个二进制文件可以正常工作、但对于另一个二进制文件、我会从目标获得“无效地址“响应。
我生成了两个文件的串行数据的二进制转储,乍一看,一切看起来都很好。 我在下面附上一张图片供参考。
请帮助我了解导致此问题的原因或此处可能缺少的内容。

此致
Vaibhav
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.
工具/软件:
您好论坛、
我开发了一个用于串行代码加载的 GUI 应用程序。 一个二进制文件可以正常工作、但对于另一个二进制文件、我会从目标获得“无效地址“响应。
我生成了两个文件的串行数据的二进制转储,乍一看,一切看起来都很好。 我在下面附上一张图片供参考。
请帮助我了解导致此问题的原因或此处可能缺少的内容。

此致
Vaibhav
尊敬的 Vaibhav:
感谢您分享串行数据的详细信息和屏幕截图 — 这对诊断问题非常有帮助。
您是否在使用默认器件 ROM SBL(串行引导加载程序)? -->如果是、则需要 在执行下载之前先发送 BLDR_CMD_CHIP_ERASE(命令 ID 0x24)。
从 TRM (https://www.ti.com/lit/pdf/swcu195) 部分摘录:

我怀疑工作实例(在屏幕截图的左侧)在一个已经被芯片擦除的设备上(要么是一个新的设备,要么芯片擦除的其他方式 — 可能是 uniflash ?),非工作实例(在屏幕截图的右侧)是在一个设备上,该设备以前被编程但尚未被芯片擦除。
谢谢、
Toby
尊敬的 Toby:
值得一提的是、我们发现了串行加载工具中的一个错误。 问题在于该工具将数据长度指定为一个字节太大、导致总字节计数超过闪存大小。
我们的应用程序二进制文件从地址0x00000000到0x0007FFFF,它正确地对应于0x00080000字节—闪存的全部容量。 但是、该工具将数据长度设置为0x00080001、超出有效范围的一个字节。 因此、我们收到了0x43错误(无效地址)、目标器件会擦除相应的块。 因此、器件之后无法引导。
它处理第一个二进制文件、因为其大小小于 0x0007FFFF。
此致、
Vaibhav