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:F021闪存擦除问题

Guru**** 2535750 points
Other Parts Discussed in Thread: F28M35H52C, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1084703/f28m35h52c-f021-flash-erase-issue

部件号:F28M35H52C
主题: controlSUITE中讨论的其他部件

大家好,

以下是客户提出的问题,可能需要您的帮助:

M3核心程序prog.bin (C2000不启动),程序功能是擦除所有闪存,通过Web重新下载prog.bin,然后重新刻录闪存。  

问题:  

1.连接仿真器(xds560v2)以运行程序,下载,擦除和重写正常完成(如内存浏览器所示),并在完成后检查数据导出,与prog.bin没有区别。 使用CCS 6.2 调试界面中的“RESET”和“RESTART”按钮重置,重复下载重新刻录功能失败,中断点发现Fapi_issueGcebCommandWithAddress已成功运行。 但相应区域未成功擦除。

2.下载程序后,直接关闭仿真器电源,但芯片擦除也失败。  客户怀疑这也是Fapi_issueebcandWithAddress实施问题。

您可以帮助检查此问题吗? 谢谢。

此致,

樱桃

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

    您好,Cherry,

    使用6.2 调试接口中的"reset"和"restart"按钮重置,重复下载重新刻录功能失败,中断点发现Fissuepapi_Address成功运行。 但相应区域未成功擦除。 [/引述]

    此处描述的下载和重新刻录过程是什么? F28M35H52C设备是运行引导加载程序还是所有操作都通过xds560v2仿真器接口完成

    2.</s>2000 108.4703万下载程序后,直接关闭仿真器电源,但芯片擦除也失败。  客户怀疑这也是Fapi_issueebcandWithAddress实施问题。

    您能否进一步解释此流程? 关闭仿真器的电源意味着什么?

    最佳,

    Kevin

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

    您好,Kevin:

    感谢您的支持。

    此处2000此处描述2000描述的108.4703万的下载401.5235万下载和401.5235万和重新刻录过程是什么?

    首次刻录后,仿真器不会被移除,直接使用CCS调试界面上的RESET和RESTART按钮进行重置,再次通过Web下载固件,然后刻录。

    您2000您能否2000能否进一步108.4703万进一步解释401.5235万解释此401.5235万此过程? 关闭仿真器电源意味着什么?[/QUOT]

    使用仿真器烧录程序后,从仿真器中运行电路板。 然后在线下载固件并刻录。

    另外,在运行Fapi_issueGcedCommandWithAddress()失败后,检查FSM_STAT寄存器并发现错误“SLOCK error”,即表示扇区锁定或OTP锁定的剂量? 然后如何解锁?

    谢谢,此致,

    樱桃

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

    您好,Cherry,

    此职位现已分配给我。  我会在一两天内查看并回复您。

    谢谢,此致,
    Vamsi

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

    您好,Cherry,

    请查看下面的常见问题并搜索"3. 当Flash API无法擦除或编程时,我们可以考虑哪些常见的调试提示?"  它可能会有所帮助。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/951668/faq-faq-on-flash-api-usage-for-c2000-devices</s>2000 200095.1668万2000 

    是否可以共享擦除功能调用的实现?

    谢谢,此致,
    Vamsi

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

    您好,Vamsi:

    感谢你的帮助。

    他们引用了flash_programming_m3项目,并使用example_CallFlashAPI()进程来执行擦除操作。 擦除代码,闪存的lib文件均在ram中指定,并检查映射文件以确保没有丢失。网络下载的固件保存在共享ram中。

    擦除部分的代码如下:

    对于(i=0;i<14;1+)//14  扇区,逐个擦除

    oReturnCheck = Fapi_issue3cCommandWithAddress(Fapi_EraseSector,
    (UINT32 *)&Bzero_SectorL_start_addr[i]);

    //等待FSM完成擦除扇区操作
    while (Fapi_checkFsmForReady()!= Fapi_Status_FsmReady){}

    IF (oReturnCheck!= Fapi_Status_Success)

    while (1){}
    }

    ////////////////// 测试
    oFlashStatus = Fapi_getFsmStatus();
    如果(oFlashStatus!= 0)

    while (1){}
    }

    ////////////////// 测试

    oReturnCheck = Fapi_doBlankCheck((UINT32 *) Bzero_SectorL_start,
    Bzero_16KSector_u32length,
    &oFlashStatusWord);
    IF (oReturnCheck!= Fapi_Status_Success)

     Whiel (1){}      //////////////////////////// 跳至此处擦除故障并添加测试部分以检查FSMSTAT寄存器,发现扇区已锁定,故障代码0x0011 (17)
    }

    }

    Whiel (1){}      //////////////////////////// 擦除成功时跳至此处。  

    在比较常见问题中的程序时,发现该程序没有以下部分:

    D. 初始化闪存等待状态,回退电源模式,性能功能和ECC

    F.  在调用Flash API函数以允许写入受保护的寄存器之前,应执行EALLOW (C28x)或MWRALLOW (ARP)。

    谢谢,此致,

    樱桃

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

    您好,Cherry,

     在使用闪存API之前,必须包括闪存初始化例程(用于等待状态配置)和EALLOW (C28x)或MWRALLOW (ARP)。

    请实施这些措施并让我们知道其实施情况。

    谢谢,此致,

    Vamsi

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

    您好,Vamsi:

    如何初始化闪存? 请举一个例子。 在example_CallFlashAPI()中找不到MWRALLOW (ARP),它是否封装在Flash API函数中? 因为他们的程序在某些条件下也可以成功运行,所以是否不考虑这些条件? 客户怀疑在某些情况下,该扇区的擦除是否已锁定,是否有办法将其解锁?

    谢谢,此致,

    樱桃

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

    您好,Cherry,

    关于锁定: 当锁定失败时,他们在内存窗口的该扇区中看到什么值?  请检查并确认。   

    他们是否对密码进行了编程?   

    我将向您发送Flash init例程路径和显示MWRALLOW的快照。

    谢谢,此致,

    Vamsi

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

    您好,Cherry,

    请参见以下代码中的MWRALLOW:\controlSUITE\DEVICE_SUPPORT\f28m35x\v220\F28M35x_Examples_Dual\FLASH_PROG\m3/flash_programming_m3.c

    在同一文件中,您可以看到闪存初始化的函数调用,如下所示:

    谢谢,此致,
    Vamsi

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

    您好 ,Vamsi:

    他们2000他们是否2000是否对108.4703万对密码403.064万密码进行403.064万进行了编程?   [/引述]

    他们2000他们在2000在内存108.4703万内存窗口403.064万窗口的403.064万的该扇区中看到什么值?  请检查并确认。   [/引述]

    内存窗口中的值不会更改,因为擦除失败,并且保留了例行程序中的任何操作。

    谢谢,此致,

    樱桃

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

    您好,Cherry,

    为清晰起见: 他们是否使用了MWRALLOW和闪存初始化,但仍发现问题?   

    谢谢,此致,

    Vamsi

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

    您好,Vamsi:

    他们2000他们是否2000是否使用108.4703万使用了404.1431万了MWRALLOW404.1431万MWRALLOW和闪存初始化并仍然看到了问题?   [/引述]

    是的。

    谢谢,此致,

    樱桃

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

    您好,Cherry,

    由于您已确认您已查看了Flash API常见问题中提供的调试提示,因此此时我可能需要一个项目,我可以使用该项目来重现问题。

    请删除所有专有代码,并发送一个项目,不会出现任何编译错误。   

    谢谢,此致,
    Vamsi

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

    您好,Cherry,

    我正在关闭此帖子,因为我在2.5 Weeks期间没有收到您的回复。

    如果您需要进一步帮助,请打开新帖子。

    谢谢,此致,
    Vamsi