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.
工具与软件:
您好!
对于小批量生产、我之前使用 XDS110调试器对 MSPM0G3507进行编程。 现在、我设计 一个具有 BSL 模式的编程机器、用于针对大规模生产对 MSPM0G3507进行编程。 BSL 主机是另一个 MSPM0G3507主机。 问题是在对器件编程并将其焊接在目标 PCB 上后、无法启动。 它也无法通过调试器连接。
好消息是、如果启用强制 BSL、调试器可以连接到目标。 借助强制 BSL、我可以 使用 XDS110调试器查看编程的闪存数据。 因此、 我将编程数据与 CCS 十六进制实用程序生成的二进制文件进行比较。 但我无法逐个比较所有数据字节。 我比较一下 两者之间的头部、尾部和随机位置。 它们都是一样的。 在通过 BSL 对器件进行编程时、通过了独立验证步骤。 这意味着 CRC 已匹配。 因此、我认为所有数据都是相同的。
我还将 BCR 和 BSL 配置区域与 调试器编程的另一个器件进行比较。 它们是相同的... 此外、还确认了它们是 TRM 中列出的默认值。
现在、唯一可能是 CCS 十六进制实用程序生成的二进制文件不正确。 这是可行的吗? 嗯。。 我还将二进制数据与 XDS110加载程序后 CCS 的"Memory Browser"窗口中显示的数据进行比较。 它们是相同的,至少对于头部,尾部和随机位置之间。
现在、我不知道可以做什么。 已编程的 BSL 器件仅无法工作、在没有强制 BSL 模式的情况下无法通过调试器连接。
有什么想法吗?
Robert。
事实上、这个问题是由十六进制实用程序引起的、该实用程序会删除 由 CLANG 链接器在 INIT 段之前插入的8个填充字节。 在连接器命令文件中、闪存被定义为一个单一段。 但链接器仍然插入意外的 空格。 当十六进制实用程序中未启用"image"模式时、这些填充字节会被删除。 启用"图像"模式后、它们将保持不变。 因此、最终输出二进制文件实际上有一点不同。
我在比较数据时犯了一个错误。 我没有注意到该地址偏移了8个字节。
我们不知道链接器何时以及为什么插入这8个字节、因此 始终在十六进制实用程序中使用映像模式非常重要。 当然、我们还必须 为此创建 ROMS 指令文件... 有点不方便。
就是这样。
Robert。