LaunchPad + MSP43G2553,Flash(Information Memory :Segment D【0x1000 - 0x107F】)
通过串口和编程线,发送命令给MCU,MCU程序接到指令后处理。
先擦除Segment D,然后把数据写入地址0x1000到0x1007。
读取地址0x1000到0x1007,通过串口返回的数据显示数据已经写入Flash。
拔掉LaunchPad的编程线,LaunchPad电源灯灭。
插上LaunchPad的编程线,LaunchPad电源灯亮。
通过串口和编程线发送读取命令,串口返回数据显示读取的数据发生了变化。
请问这个过程中间那里有问题?
----------------------------------------------------------------------------------------------------------------------------
FLASH擦除
unsigned char *e_address;
e_address = (unsigned char *)0x1000;
while(FCTL3 & BUSY);
FCTL2 = FWKEY + FSSEL0 + FN4;
FCTL1 = FWKEY + ERASE;
FCTL3 = FWKEY;
*e_address = 0;
while(FCTL3 & BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
----------------------------------------------------------------------------------------------------------------------------
FLASH写入
unsigned char *w_address;
w_address = (unsigned char *)0x1000; //可以是0x1001、0x1002到0x1007
while(FCTL3 & BUSY);
FCTL2 = FWKEY + FSSEL0 + FN4;
FCTL1 = FWKEY + WRT;
FCTL3 = FWKEY;
*w_address= F_WriteValue;
while(FCTL3 & BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;