以CC2650为例:
因为其内部存储结构的特性,如下图
可见VIMS有四中工作模式。
GPRAM
CACHE
off
split
可见只有OFF模式可以直接访问到FLASH。其它模式下的访问更多的是对CACHE的操作。
示例代码:
写操作
state = VIMSModeGet( );
VIMSModeSet( VIMS_BASE, VIMS_MODE_DISABLED );
FlashProgram(rf_tx_buff,0x1E000,sizeof(rf_tx_buff));
VIMSModeSet( VIMS_BASE, state );
读操作
memcpy(rf_rx_buff,(void*)0x1E000,sizeof(rf_tx_buff));
擦除操作
state = VIMSModeGet( );
VIMSModeSet( VIMS_BASE, VIMS_MODE_DISABLED );
FlashSectorErase(0x1E000);
VIMSModeSet( VIMS_BASE,state);