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.

[参考译文] F28M35H52C:闪存擦除返回"PVC"错误

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/656129/f28m35h52c-flash-erase-returns-pvc-error

部件号:F28M35H52C

大家好,

我的问题与此主题相关:
很遗憾,当时我无法解决这个问题,很抱歉我没有回答。 所以我想再次解决这个问题。

该主题的第一篇文章描述了该问题,但我重复:C28在加载我的“闪存算法测试”程序后自动闪烁,但如果它是由M3核心启动的,则无法自动闪烁。 换言之,如果C28是“重置”而不是“重新加载程序”,则闪存会失败。

我提到的唯一区别-在FlashRegs.FPAC1寄存器中的PSLEEP是“重新加载程序”后的“0”和“重置”后的“1600”

故障发生 在“擦除扇区”操作期间-擦除后,我在fmstat寄存器中获得了“PVC”位。 API文档 中说,某些“预擦除”存在问题,但我找不到有关其内容的任何信息。

有人能帮我解决这个问题吗?


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

    正如在旧的文章中所提到的,在更正了代码的一些问题之后,我能够使用M3/C28x项目成功地对Flash进行编程。 在旧的帖子中,我解释了我对您的应用程序所做的更改。 您是否尝试进行了这些更改,但仍然无法擦除/编程?

    如果是,我们希望通过WebEx/电话会议与您进行调试会话。 这样就很容易调试此问题。 请告诉我您是否可以在1月19日参加调试会话。

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

    您写道:


    我注释了"IPCMtoCBootControlSystem(CBROM_MTOC_bootmode_boot_from_flash)",因为我处于调试器上下文中。

    之后,我编译了您的项目,并成功地将代码加载到了M3和C28x的Flash中。

    然后我先执行M3,然后执行C28x。 C28x能够成功接收来自M3的命令,然后对从地址0x12.8万开始的1024字进行编程。 不知道为什么它对你失败了。


    感谢您的评论,是的-我已更正了以下问题:更改了错误的标题名称和错误的包含路径,但没有帮助。

    您还说,您在加载后立即运行项目,如果使用"重置CPU"按钮重置C28,则会发生我的问题。 如果我不重置核心,它会自动闪烁,正常。

    您何时能够设置远程调试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Disona,

    如果根据应用程序体系结构重置C28x,您可能还必须重新执行M3应用程序,因为C28x可能会丢失以前来自M3的所有指令。

    您的时区是多少? 您能否与当地的FAE联系,以便与我们进行调试会话?

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

    如果重置C28内核,有两种方法:
    1)重新执行M3应用程序,以便M3引导C28并向该应用程序发送erase和program命令;
    2)仅重置C28核心,然后按"GO MAIN",然后通过"Expression (表达式)"窗口模拟M3 erase/program命令。

    在这两种情况下,我在"Fapi_issueSecCommandWithAddress(Fapi_EraseSector,(UINT32 *) sectorAddress)"之后都收到错误。 完成此功能后,我可以在FlashCtrlRegs.fmstat中看到PVC位。

    我的时区是UTC+3 (莫斯科现在是23:21)。 我不确定什么是"FAE"? 如果需要,我可以随时启用调试会话。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Disona,

    我通过E2E向您发送了一个朋友请求。  请确认,以便我们可以在调试会话中对齐。

    谢谢,此致,
    Vamsi

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

    您是否收到了我的朋友请求?

    谢谢,此致,
    Vamsi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,Vamsi。 我可以在我的个人资料的朋友列表中看到您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅供参考此帖子的其他人参考:我们的团队将Disona的项目脱机。 我们将在2月2日查看。

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

    在您的项目- F28M35_Flash_C28,Vc28_flash.c中,要禁用ECC,您已经使用了EALLOW和EDIS。

    但由于这些更改,您正在使用EDIS调用Flash API。

    在闪存API参考指南 www.ti.com/.../spnu629 的2.3 Tm3部分中提到了这一点

    "在调用Flash API函数之前和之后,EALLOW和EDIS应分别执行

    允许和禁止写入受保护的寄存器。"

    我在运行您的项目时删除了EDIS。 然后我看不到任何问题。

    请您尝试一下并告诉我们吗?

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

    是的,我确认。
    谢谢!