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/TMS320F28335:[错误] C28xx:文件加载器:验证失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/844383/ccs-tms320f28335-error-c28xx-file-loader-verification-failed

器件型号:TMS320F28335
主题中讨论的其他器件:UNIFLASHC2000WARE

工具/软件:Code Composer Studio

我在 F28335上从 RAM 编程切换到闪存编程时遇到了问题。

擦除闪存并尝试将.text 段编程到0x300000处的闪存中后出现问题、如下所示:

搜索此错误导致我转到此论坛帖子: https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/736505?TMDSHVRESLLCKIT-Erasing-Flash-Failed-C28xx-Error-occurred-during-flash-operation-Timed-out-waiting-for-target-to-halt-while-executing-FlashAPIInterface2802xV2-00-out

按照建议、我尝试使用 UniFlash 中成功完成的删除恢复工具:

这仍然导致器件编程未成功。 我的器件配置为引导至闪存、因此我将引导模式切换为"分支至引导检查"、根据此帖子、我假设引导至等待:

https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/496497?Timed-out-waiting-for-target-to-halt

这会导致闪存存储器开头的验证失败出现稍有不同的错误:

为了进一步挖掘、我在编程验证失败后使用 UniFlash 检查了闪存存储器、以查看是否存储了任何值。 它们似乎是在这种情况下

我尝试使用 UniFlash 手动擦除扇区 H 中的闪存、以确保擦除操作正常工作:

我还进行了检查、以确保 CSM 密码在操作期间未被擦除。 它看起来是完整的、仍然是默认的0xFFFF 值。 我已添加 UniFlash 和 CCS 屏幕截图、使其更易于阅读。

看起来我需要更换器件、但在尝试更换器件之前、我愿意接受建议。

谢谢、
埃里克

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

    Erick、

    由于您确认闪存反映了正确的擦除和编程操作内容、并且密码位置未编程、我认为您不必更换器件。   

    快速问题:更改引导模式后、您尝试的导致验证错误的操作是什么?  程序操作还是仅验证操作?  这将有助于我们了解导致这种情况的步骤。

    我会将此任务分配给 F28335闪存 专家、以进一步帮助您。  

    谢谢、此致、
    Vamsi

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

    我已经尝试了多种方法、它们都生成验证错误:

    UniFlash 验证映像

    UniFlash 加载映像

    CCS 程序和调试

    我仍然能够使用仅 RAM 链接器文件运行映像

    谢谢、
    埃里克

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

    Erick、

    感谢您提供信息。

    我们的团队将在一天或两天内回来与您联系。

    谢谢、此致、
    Vamsi

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

    Erick、

    我认为您未能上传您计划附加的图像。

    此致、

    曼诺伊

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

    您好、Erick、

    您在这个问题上是否取得了任何进展? 您可以重新上传您想要的图片吗? 似乎他们第一次没有正确上传。

    您是否尝试使用 Code Composer Studio 对器件的闪存进行编程/验证/擦除? 可能会尝试生成不同的结果或消息、以便更好地调试问题。

    最棒的

    Kevin

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

    图像在我的末尾已成功上传、我可以在我的计算机和手机上的论坛帖子中看到它们。 我将尝试编辑帖子并重新上传、以查看这是否有帮助。

    --

    Kevin、

    我尝试使用 code composer 进行加载、如原始帖子中所示。 擦除成功完成、然后程序在文本段验证期间失败、因为值与映射文件不匹配、因此在0x3000000位置的闪存存储器的开头验证。 这就是我检查代码安全模块是否阻止编程的原因、但情况似乎并非如此。

    谢谢、
    埃里克

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

    我更改了一些调试配置、以便即使在验证失败后也能连接到目标并获得一些结果。

    程序/存储器加载选项:

    启动选项:

    闪存设置:

    这些设置允许我在不擦除内存和不验证的情况下连接到器件。 即使程序失败也是如此。 如此处所示、CCS 认为它正在对闪存扇区进行编程:

    以下是不同位置的存储器浏览器窗口的几个屏幕截图。 在尝试写入闪存后、某些区域看起来是(0x0000 || ITRAP0)或(0xFFFF || ITRAP1)。 这不是我之前通过 RAM 配置加载程序并尝试使用内存浏览器查看闪存时获得的结果。  

    某些区域完全完好、例如此功能:

    本节的 ITRAP 在某些命令之间进行了间距:

    最后一个示例部分中填写了 ITRAP1:

    我尝试使用相同的设置、先进行擦除、但结果非常相似。 希望这些信息对您有所帮助。

    谢谢、

    埃里克

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

    您好、Erick、

    要验证这不是项目的问题、您能否尝试在 C2000ware 中编程和运行闪存示例。 位于以下目录:

    C:\ti\c2000Ware_2_00_00_03\device_support\F2833x\examples\flash_F28335

    通过验证、将所有程序/存储器加载选项设置为默认设置。

    尝试启动 F28335目标配置->连接到目标->加载 Example_2833xFlash 项目

    让我知道您有什么结果。

    最棒的

    Kevin

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

    您好、Erick、

    是否有此问题的更新? 您是否能够解决该问题、或者您是否需要我们的终端支持?

    最棒的

    Kevin

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

    Kevin、

    我必须等待一段时间才能安装 C2000ware、然后我遇到了一些项目的包含问题、这些问题需要一些时间才能解决。 但是、我确实让它进行编译和链接。

    在继续之前、我已确保闪存编程设置已重置为建议的默认设置。

    当我尝试加载项目时、我会遇到几乎相同的问题、只是在不同的存储器位置发生。 执行闪存擦除、然后在尝试写入和验证测试部分时、程序加载失败、如下图所示:

    谢谢、
    埃里克

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

    您好、Erick、

    您的目标配置文件与您的器件完全匹配?

    您是否能够连接到器件并使用 CCS 内的片上闪存编程器来验证闪存? 您也可以使用此工具将其擦除吗?

    启动目标配置->连接到器件-->顶部的工具-->片上闪存编程器

    最棒的

    Kevin

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

    Kevin、

    我能够启动配置、使用调试视图连接到目标、并启动片上闪存编程器工具。  

    我没有看到只执行验证的方法、但是如果我在根据 CCS 成功的所有扇区上运行擦除功能。

    我目前正在组装第二块电路板、以尝试确定是否存在某种电路板问题。 在我提供的某些器件套件或使用相同调试探针且具有 F28377S 的自定义电路板上、我似乎无法重现此问题。

    我还尝试将为闪存中的 F28377S 编写的程序转换为成功编程的 F28335程序。 无法在 F28335上进行编程且出现相同的闪存验证错误。

    谢谢、
    埃里克

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

    您好、Erick、

    很抱歉耽误您的回答。 擦除之后、您可以使用内存浏览器检查闪存扇区、并看到所有内容都显示0xFFFF、包括密码。 在 CCS 中运行擦除、编程、验证序列后、0x33 8000处的闪存扇区(A)是否显示正确的数据?

    您可以在屏幕截图中的"闪存编程设置"中更改闪存编程序列。 默认为"Erase、Program"和"Verify That You have checked (擦除、编程、验证)"

    在下面的主题中、其他人似乎遇到了类似的问题、您能否浏览回答和链接的 wiki 页面、以查看是否有与您的设置相关的内容?

    https://e2e.ti.com/support/tools/ccs/f/81/t/667611

    请告诉我第二块电路板是如何为您工作的。

    最棒的

    Kevin