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.

[参考译文] CCS/TMS320f2.8377万d:地址0x8万处的数据验证失败请验证目标内存和内存映射。

Guru**** 2558250 points
Other Parts Discussed in Thread: C2000WARE, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/634785/ccs-tms320f28377d-data-verification-failed-at-address-0x00080000-please-verify-target-memory-and-memory-map

部件号:TMS320F2.8377万D
主题中讨论的其他部件:C2000WAREcontrolSUITE

工具/软件:Code Composer Studio

您好,当我尝试在tms2.8337万处理器的闪存中加载程序时,我遇到以下问题

C28xx_CPU1:文件加载器:地址0x8万处的数据验证失败请验证目标内存和内存映射。
C28xx_CPU1:GEL:文件:C:\CCSV6程序\dqsvm2.8377万\Debug\dqsvm28377.out:2.8377万:发生数据验证错误,文件加载失败。

我 使用ccsCCS 6.0 版本。我还阅读了与此问题相关的其他线程。我是否必须重新安装 ccsCCS 6.02 版本才能解决  闪存相关的问题

IM使用memcopy函数 来加载起始地址

void Memcopy(UINT16*SourceAddr, UINT16* SourceEndAddr, UINT16* DestAddr)

while (SourceAddr < SourceEndAddr)

*DestAddr++=*SourceAddr++;
}
返回;
}

我可以使用RAM运行程序,也可以使用tms2.8335万处理器在闪存中运行程序。

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

    1)关于验证错误:可能是您缺少一些更新。 为什么不能迁移到CCS v7? 它将具有所有最新的更新。 如果无法移动到CCSv7,请确保在CCSv6中检查并安装更新。 如果这不能解决问题,请查看下面的帖子,并确保您没有其中提到的问题: e2e.ti.com/.../174.3025万

    2)关于Memcopy():我认为加载失败和Memcopy()的使用之间没有关系。 但是,请注意,您现在可以使用RTS库中的memcpy()。 了解C2000Ware中的TI示例。

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

    您好,Vamsi:

    感谢支持。我更新了调试服务器闪存,但问题仍然存在。但当我安装6.2 时,0可以加载程序,但程序在运行状态下停止 ,并且能够更新GPIO。但程序代码未执行,我正在附加截屏 错误。

    但我能够加载并运行控制套件 C:\Users\nmangal\Desktop\controlSUITE\device_support\F2837xD\V160\F2837xD_Examples_Dual\flash_programming</s>2837

    成功

    在示例中,闪存链接 cmd文件与其他闪存链接略有不同。我想知道这可能是我的问题的原因。

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

    Navneet,

    很好,您现在可以将代码加载到Flash。  CCSv6也可以工作,但您可能错过了其他更新(如TI C2000器件支持)。   

    关于您的新问题:  

    1)用于闪存编程示例的链接器命令文件略有不同,因为我们必须说明如何通过链接器命令文件包含闪存API库。   

    2)地址0x3FE493属于BootROM中的ITRAP ISR。  意味着CPU获取了非法操作码。  浏览代码并查看导致ITRAP的指令。  可能是CPU正在从擦除的闪存库或未初始化的RAM中获取。  确保使用memcpy()函数将所有必需的函数复制到RAM,如TI示例中所示。  如果问题仍然存在,请打开一个新的线程,将标题与讨论相匹配-这将帮助其他人浏览论坛。

    谢谢,此致,
    Vamsi   

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

    Vamshi,您好!

    感谢您的扩展支持。现在我可以从闪存运行。基本上我没有 启用自动ECC生成,所以 我的程序卡在SYSCLK文件中。

    再次感谢您的支持。

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

    Navneet,

    很高兴您的应用程序正在从Flash Now成功运行。

    您的单位错误ISR映射到闪存进行加载,RAM执行。  但是,它不会复制到RAM,因此在发生单位错误时会导致ITRAP。  好的是,您现在正在对ECC进行编程。  但是,如果要从RAM执行ISR,则需要确保将其复制到RAM。  如果不是-发生单位错误时将出现ITRAP。

    我要结束这条线。

    谢谢,此致,
    Vamsi