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.

[参考译文] TMS320F28375S:F021闪存 API 擦除问题

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/995147/tms320f28375s-f021-flash-api-erase-problem

器件型号:TMS320F28375S

尊敬的 C2000专家:

我们在使用 F021闪存 API 时遇到了一个奇怪的问题。 器件是 F28375。

我们正在尝试擦除闪存组1的某些扇区、然后对其进行编程。 在大多数时间(大约4分之3)、该过程成功完成。
在其余情况下,CPU 显然是完全随机的,在检查"Fapi_checkFsmForReady()!= Fapi_Status_FsmReady"期间停止。
有时、它也会在随机位置停止、例如在安全 ROM 地址中停止。

此外、这个问题似乎只在擦除阶段出现。 编程工作正常。

我们为擦除执行的步骤如下:
-检查我们要擦除的组是否已激活
如果没有、我们声明泵信标、请调用 Fapi_initiataleAPI、然后调用 Fapi_setActiveFlashBank
-调用 Fapi_issueAppelandCommandWithAddress
-通过选中"Fapi_checkFsmForReady()!= Fapi_Status_FsmReady"(这似乎是有问题的步骤),等待命令完成
-通过调用 Fapi_getFsmStatus 读取擦除结果

到目前为止我们已检查的内容如下:
-所有使用的函数都加载到 RAM 中,也加载换行函数
-在 RAM 上复制函数之后,在调用擦除函数之前,我们会检查 RAM 是否以某种方式损坏
-根据勘误咨询"内存:有效内存之外的预取"、我们不使用受限制的内存区域

你有什么建议吗?

如果您需要更多信息、请告诉我。

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

    您好、Alberto、

    您是否在 DCSM 空间中对密码或任何其他设置进行了编程?

    您是否也在应用中为第二组执行了闪存初始化例程?  请检查并添加(如果尚未添加)。

    当您说 CPU 停止时、调试器是否会在那里停止?  或者、当您停止时、您看到 PC 卡在那里?

    谢谢、此致、

    Vamsi

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

    您好、Vamsi、

    不可以、我们不使用任何密码或 DCSM 空间的其他功能。

    是的、我们也执行第二个组的初始化例程。 在我们的应用程序中、默认情况下初始化组0、然后初始化第二个组。 本质上、在我们的例程中、我们为组禁用 ECC、然后初始化组1。 我们还添加了一个额外的等待状态、以防万一、尽管数据表中说它应该被自动添加。 我附上了一个屏幕截图。

    是的、当我说 CPU 停止时、我是说调试器停止。 有时它在"Fapi_checkFsmForReady()!= Fapi_Status_FsmReady"上停止,有时在安全 ROM 中的某个位置停止,有时在复位矢量中停止。 另一个奇怪的行为是、一旦调试器暂停、如果我们在观察列表中有变量、它们看起来会随机变化。 另一方面、所有内部寄存器看起来都正常、不会改变。

    谢谢、  

    Alberto

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

    阿尔贝托

    感谢您的详细信息。

    请删除该额外等待状态。

    希望您已选中、并且这些区域中没有任何以前的断点。

    您能否共享链接器 cmd 文件和映射文件一次?

    谢谢、此致、

    Vamsi

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

    阿尔贝托

    需要检查的其他事项:

    在检查调试器存储器窗口时、您是否将其打开至闪存或 OTP? 如果是、请关闭并尝试。

    您使用的是哪种仿真器?  请检查并安装适用于仿真器的任何更新。

    这是在多个器件还是单个器件上发生的?

    谢谢、此致、
    Vamsi

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

    尊敬的 Vamsi:

    我们在未连接仿真器的情况下执行了快速测试、仿真器似乎工作正常。 我们将执行一些进一步的广泛测试、并让您了解结果。

    谢谢、

    Alberto

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

    阿尔贝托

    感谢您的更新。  这可能是由于一些过时的断点造成的。   

    我会暂停这个线程、直到您返回结果。

    谢谢、此致、
    Vamsi

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

    阿尔贝托

    您对此有任何更新吗?  我可以关闭此帖子吗?

    谢谢、此致、

    Vamsi

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

    您好、Vamsi、

    我们确认、如果没有连接仿真器、它似乎可以正常工作。

    此问题可以视为已解决。

    感谢您的支持。

    Alberto