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.

[参考译文] CC1312R:VIMSModeSafeSet

Guru**** 2486625 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1185516/cc1312r-vimsmodesafeset

器件型号:CC1312R

您好!

我们为 CC1312建立了一个 Ota 进程,我们的怀疑是 擦除映像进程堆栈有时是由 VIMSModeSafeSet 函数生成的。
您能解释并描述 VIMSModeSafeSet (VIMS_BASE、VIMS_MODE_DISABLED、TRUE) 和 VIMSModeSet (VIMS_BASE、VIMS_MODE_DISABLED)之间的区别吗?

 

更多信息:
IAR 8.0.1、
SDK 4_40_04_04

相关的擦除功能:

空 intFlash_Erase (uint32_t FlashAddress)

      uint8 intFlashTimeout = 100;

 

       /*禁用处理器中断*/

       IntMasterDisable();

       

       /*禁用高速缓存*/

       VIMSModeSafeSet (VIMS_BASE,VIMS_MODE_DISABLED,TRUE);

       

       /*等待禁用高速缓存中断操作完成*/

       while (((VIMSModeGet (VIMS_BASE)!= VIMS_MODE_DISABLED)&&(--intFlashTimeout)){}    

       FlashSectorErase ( FlashAddress );

         

       /*启用缓存中断*/

       VIMSModeSafeSet (VIMS_BASE,VIMS_MODE_ENABLED,TRUE);

       

       /*启用处理器中断*/

       IntMasterEnable();