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.

[参考译文] TMS570LS1227:F021闪存 API v2.01.01:在 FSM 繁忙时调用 Fapi_issueProgrammingCommand()

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/748809/tms570ls1227-f021-flash-api-v2-01-01-call-to-fapi_issueprogrammingcommand-when-fsm-is-busy

器件型号:TMS570LS1227

您好!

我想知道 当我调用 Fapi_issueProgrammingCommand()时,当闪存状态机(FSM)忙时会发生什么情况。

  1. 参考指南 SPNU501G 建议在 Fapi_issueProgrammingCommand()调用之前查询 fmstat 以了解 FSM 忙状态。
  2. SPNU501G 还描述了:"从当前正在执行程序命令的组中读取闪存存储器位置将使 CPU 停顿、直到程序命令完成、并且 fmstat 寄存器指示 FSM 不忙。"
  3. fapi_issueProgrammingCommand()不返回忙状态,只返回成功状态,而返回三个与缓冲区大小相关的故障。

如果我在 FSM 忙时调用 fapi_issueProgrammingCommand(),CPU 是否会被挂起,或者 fapi_issueProgrammingCommand()返回的结果不是成功?

此致、Tony。

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

    当 FSM 忙时、不应调用闪存 API。 如果在 FSM 繁忙时调用 fapi_issueProgrammingCommand(),它将生成中止。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 QJ、
    感谢您的回答。 这是否是数据中止、导致处理器异常中断?
    它听起来不是很友好、也不是很可靠、只是中止。 如果 FAPI 返回繁忙指示、是否会更好?
    此致、Tony。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Tony、

    正确的序列是在调用扇区启用 API 和闪存擦除/编程 API 之后检查 FSM 状态。 它是预取中止我刚刚使用以下代码执行了快速测试、并获得了预取中止(异常中断)。

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

    您好 QJ、

    再次感谢您的详细阐述。 我们将在调用 Fapi_issueProgrammingCommand()之前检查 FSM 忙状态。

    我建议对 Fapi_issueProgrammingCommand()进行改进,使其能够检查 FSM 忙状态并相应地返回忙状态,而不是预取中止。

    此致、Tony。