在 MSP430F5438A 控制器中:
当其中一个未使用的组擦除被启动时、控制器不能从其它闪存或 RAM 组执行正常执行(不可预测的行为)。
在 MSP430F5438A 控制器中是否会出现这种情况?
组擦除代码如下:
----------------------
/*清除锁定位*/
(((FCR *) FLASH_base)->FCTL3 = FWKEY;
while (true =flash_busy_status ());
/* FLASH34勘误表:擦除时不能同时访问闪存组*/
/*获取中断状态*/
interrupt_state = get_interrupt_state ();
/*禁用中断*/
disable_interrupts ();
/*由于架构问题,在处理前发出 NOP */
NOP();
/*设置 MERAS 位*/
(((FCR *) FLASH_base)->FCTL1 = FWKEY + MERAS;
/*向闪存指针写入虚拟值以启动擦除*/
*flash_ptr = 0U;
/*测试忙*/
//我们无法测试忙闪存,因为它将使控制器处于保持状态
*因为组擦除需要23-32毫秒。*/
enable_interrupts ();
/*清除 MERAS 位*/
(((FCR *) FLASH_base)->FCTL1 = FWKEY;
/*设置锁定位*/
(((FCR *) FLASH_base)->FCTL3 = FWKEY + LOCK;