void Test_WriteFlash(void)
{
U16 i;
char* pdb;
WDTCTL = WDTPW + WDTHOLD;
//second segment
pdb = (int *)FLASH_TEST;
FCTL3 = FWKEY; //clear lock bit
FCTL1 = FWKEY + ERASE; //set erase bit
*pdb = 0;
FCTL1 = FWKEY + WRT; //dummy write
while ((FCTL3 & BUSY) > 0);
*pdb = 0x55;
//-- disable flash write
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
}
当#define FLASH_TEST 0x2000时,能够把0x2000地址的扇区删除并对第一个 字节写入0x55.
当#define FLASH_TEST 0x13000时,对0x13000地址的操作则无法成功。
|