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.

[参考译文] TMS320F2800137:运行 checkFsmForReady ()时中断停止

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1515367/tms320f2800137-interrupt-stop-while-running-checkfsmforready

器件型号:TMS320F2800137

工具/软件:

客户在运行 checkFsmForReady ()时发现另一个中断将停止,我们确定闪存操作 API 和中断函数都在从 RAM 运行,我们能否双击确认  checkFsmForReady 是否暂停 API 内的中断?

如下代码所示、我们使用 GPIO 来指示闪存 API 和中断函数、我们可以在闪存 API 运行中 GPIO 为高电平时看到中断函数停止切换。   

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

    您好、
    checkFsmForReady()不会禁用任何中断。 它只读取 STATCMD 寄存器 CMDINPROGRESS 位、并设置繁忙或就绪状态并返回。

    您能否要求客户对呼叫进行评论并添加一些延迟、请参阅问题仍然存在?


    此致、
    Rajeshwary

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

    嗨、Rajeshwary

    我根据您的建议进行了测试、它看起来在闪存擦除时中断仍然停止、我的理解是中断不应该停止、您能帮助再次确认我的想法吗? 连接我的固件以供参考、它会启用在 RAM 上运行的闪存组擦除和计时器中断。  e2e.ti.com/.../flashapi_5F00_ex1_5F00_programming.7z

    1) 以下代码使用"fapi_checkFsmForReady ()"等待闪存擦除完成,在擦除完成前中断停止,在 "fapi_checkFsmForReady ()"后恢复

    2)下面的代码删除 "fapi_checkFsmForReady ()"并永远等待使用 while ( 1), 中断仍然停止擦除操作,然后恢复以后。  

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

    您好、  

    我会重新检视您的建议。

    此致、

    Rajeshwary

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

    您好、

    闪存 API 执行可中断。 但是、不应从正在进行擦除/编程操作的闪存组进行任何读取/获取访问。 因此、闪存 API 函数、调用闪存 API 函数的用户应用程序函数以及任何中断服务例程(ISR)必须从 RAM 执行。

    您能否将 ISR 中调用的所有函数放在 RAM 中、而不是将其定义为静态内联函数?

    此致、

    Rajeshwary