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.

[参考译文] RM57L843:F021库需要禁用中断才能正常工作

Guru**** 2551110 points
Other Parts Discussed in Thread: RM57L843

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/941255/rm57l843-f021-library-requires-disabling-interrupts-to-work-properly

器件型号:RM57L843

您好、TI、

我们将使用 F021闪存库从在另一个闪存组中执行的代码中向闪存组0或闪存组1写入代码二进制文件。 我们在由行业标准 RTOS 管理的过程中执行闪存操作。 在我们完全禁用闪存 API 调用周围的中断之前、我们很难诊断错误。 这使闪存操作稳定至不再出现故障的程度。  针对 TMS570LS20x/10x 器件的 TI 文档 spna117a.pdf 建议完全禁用针对闪存操作的中断、正如我们所做的那样。 此建议是否也适用于 RM57L843?

提前感谢您、

Bill Willcox

VEO 机器人

 

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

    您好、 VEO、

    F021闪存 API 不会禁用中断。 用户需要确定是否应禁用中断。 只有在存储中断矢量的组上有一个激活的闪存操作(擦除、编程)时、才需要禁用中断。

    如果中断 ISR 和向量存储在 bank0中、并且只擦除 bank1的扇区、则不必禁用中断。  

    但是、如果要擦除 bank0的扇区(闪存 API 相关代码从 SRAM 执行)、则必须禁用中断。  

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

    感谢您的快速回复!

    该文档表示可接受通过组1中运行的代码来刷写组0。 这是正确的(您的回答表明在 SRAM 中运行)吗?

    谢谢、此致、

    Bill

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

    是的、您可以从 bank1中运行的代码中擦除组0的扇区。 由于异常矢量表始终位于0x000000000 (组0)、因此您需要禁用中断。  

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

    再次感谢您!

    此致、

    Bill