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.

[参考译文] TMS320F28384D:文件加载程序:验证失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1333894/tms320f28384d-file-loader-verification-failed

器件型号:TMS320F28384D

您好!

我有一个问题,我设法解决了,但我不明白为什么。

我有一个在多个电路板上运行的工作程序、我始终能够正确刷写此程序。

我收到了使用相同微控制器(和相同器件)的新电路板、当我想使用相同的程序刷写电路板时、收到以下消息:

C28xx_CPU1: GEL Output: 
Memory Map Initialization Complete
C28xx_CPU1: GEL Output: 
... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: 
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: 
 CPU2 is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GEL Output: 
 CM is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CM to reach wait boot loop.)
C28xx_CPU1: Error initializing flash programming: Interface returned from dll, but flash is not available on this device.
C28xx_CPU1: GEL Output: 
... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: 
... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: 
 CPU2 is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GEL Output: 
 CM is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CM to reach wait boot loop.)
C28xx_CPU1: Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.
C28xx_CPU1: File Loader: Verification failed: Values at address 0x088000@Program do not match Please verify target memory and memory map.
C28xx_CPU1: GEL: File: C:\Users\E40043948\workspace_v12\TEST_F28384\Debug\TEST_F28384.out: a data verification error occurred, file load failed.

我对此问题的解决方案是删除目标配置中的初始化脚本:"...\emulation\gel\f28384d_cpu1.gel"

我能够刷写我的程序。

当我再次添加脚本时、问题不再出现。

无需重定向至此链接: https://software-dl.ti.com/ccs/esd/documents/troubleshooting-data_verification_errors.html

您能解释一下发生了什么吗? 我没有解释、我想理解。 谢谢!

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

    您好!  

    将代码刷写到 CCS 时、CCS 中的闪存插件会执行刷写操作。   当您加载二进制文件时、插件代码从 RAM 运行以对闪存进行编程或擦除。  看起来 在地址0x88000处遇到问题、表示编程值与代码中的值不匹配。

    您是否尝试过擦除闪存、然后加载二进制文件?  I

    此致

    西达尔特  

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

    您好!

    感谢您的答复。 我没有尝试擦除闪存、实际上、当我刷写时、我要求在扇区之前擦除、但似乎没有尝试过。

    插件会写入 RAM、然后写入闪存? 但它与什么相比呢? 我的目标是覆盖闪存以更新程序、那么什么与我的代码不匹配?
    很抱歉、如果我不太明白。

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

    您好!

    该插件将一段代码写入 RAM、执行该代码以将应用程序编程到闪存。 在此期间,它还会读回编程的数据,并使用应用程序二进制文件进行验证。  在这种情况下、它未正确对其进行编程、因此抛出数据验证错误。

    此致

    西达尔特

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

    好的、我明白、谢谢。

    那么、为什么删除 GEL 文件能够解决我的问题呢? 根据我的理解、GEL 脚本不是闪存插件、而是更具初始化宏的作用、以便在启动微控制器之前对其进行预配置?

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

    您好!

    我认为 GEL 文件可能不是导致这种情况的。  看起来  闪存插件在编程或验证编程数据期间遇到错误并进行报告。

    此致

    西达尔特

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

    您好!
    是的、但我发现删除此错误的唯一方法是至少刷写一次而不使用它。

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

    您好!  

    不确定 导致 闪存编程期间不匹配的确切根本原因

    如果它是可重现的,它更容易缩小原因和找出原因。

    此致

    西达尔特