TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430擦写片内地址>64k的地址空间遇到的问题

原来是用的MSP430F249,后来空间不够了改用F2416,但是地址》0xFFFF的高位空间,不知道如果去擦写这些高位空间。

如果我要对0x13000这个地址的扇区进行擦写操作的话,总是不成功。

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地址的操作则无法成功。

王树楠:

你可以用 __data20_write_short(IVal,0);替换 pdb = (int *)FLASH_TEST;

__data20_write_short(地址,数据)完成全数据的写入替换 *pdb = 0x55;

赞(0)
未经允许不得转载:TI中文支持网 » MSP430擦写片内地址>64k的地址空间遇到的问题
分享到: 更多 (0)