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.

[FAQ] [参考译文] [常见问题解答] F05闪存:编程或擦除闪存时是否可以为中断提供服务?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/758755/faq-f05-flash-can-interrupts-be-serviced-while-programming-or-erasing-flash

主题中讨论的其他器件:C2000WARE

问:编程或擦除闪存时是否可以为中断提供服务?

如果器件通过通信接口(例如 SPI)接收数据字、会发生什么情况? 是否会在 SPIRXBUF 中提取数据字? 中断呢? 在 Flash_Erase 函数之后是否设置中断标志位并调用 ISR?

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

    答:

    此答案是指采用 F05闪存技术的 C2000器件(哪些器件包含 F05闪存?)

    • 更多详细信息、请参阅随用于所用特定器件的闪存 API 提供的文档。  
    • 请查看 C2000Ware_ \libraries\flash_api\ \docs 目录。

    在编程序列的时间关键部分、闪存 API 禁用所有中断。 其中最长的时间是在擦除脉冲期间、大约为3-4ms。 在此期间不会发生中断。 在此期间、CPU 代码专门用于 API。  外设的功能将保持不变。 没有什么花哨的东西、器件将像 CPU 中断被禁用时那样正常运行。 中断标志将被置位、并且在 API 从擦除脉冲返回并重新启用中断后产生的中断。

    在安全的时候、中断被启用。 在中断被启用期间、闪存和 OTP 处于一个安全状态、这样一个中断处理例程(ISR)可以花费尽可能多的时间来处理中断。 在此期间、闪存和 OTP 不可用于执行代码或读取数据。

    第二种可使用的方法是回调函数。 该函数在闪存上的闪存 API 操作之间每3到4ms 调用一次。 在此期间可以运行任何代码。

    有关 F05的更多常见问题解答、请参阅 [常见问题解答] F05闪存:常见问题解答