#include "msp430x44x.h"
unsigned char value[128];
void Block_write(unsigned char *value);
void main( void )
{
unsigned char count;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
FCTL2 = FWKEY + FSSEL0 + FN0;
//value = 0;
for(count=0;count<128;count ++)
{
value[count]=count;
}
while(1)
{
Block_write(value);
}
}
void Block_write(unsigned char *value)
{
unsigned char *Flash_ptr=(unsigned char *)0x1080; // Flash pointer
unsigned char i,j,k=0;
FCTL1 = FWKEY + WRT + BLKWRT;
FCTL3 = FWKEY;//清除锁定
_DINT();//Flash期间不允许中断,否则将出现不可预料的错误
for(j=0;j<2;j++)//由于infoA段大小事128字节,包含两个块(64字节一个块),所以分两次写入
{
for(i=0;i<64;i++)
{
// *(Flash_ptr++)= value[k++];
*(Flash_ptr++)= value[k++];
while(FCTL3&WAIT);//等待字节写操作完成
}
while(FCTL3 & BUSY);
}
_EINT();
FCTL1 = FWKEY; //Flash退出写操作
FCTL3 = FWKEY +LOCK; //恢复Flash锁定。
}