flash 编程问题
在用库文件demo Flash_demo进行调试的时候,flash对应地址内容并没有正确写进数据。
关键code:
FLASH_Init(BUS_CLK_HZ);
/* Erase 99th sector */
FLASH_EraseSector(VERIFIED_SECTOR*FLASH_SECTOR_SIZE);//VERIFIED_SECTOR=32,FLASH_SECTOR_SIZE=512
for(i=0;i<256;i++)
{
u8DataBuff[i] = (uint8_t)i;
}
/* write data to erased sector */
FLASH_Program( VERIFIED_SECTOR*FLASH_SECTOR_SIZE,&u8DataBuff[0],256 );
FLASH_Program( VERIFIED_SECTOR*FLASH_SECTOR_SIZE+256,&u8DataBuff[0],256 );
观察地址0x4000, 0x4000起始地址短那个扇区部分被全部擦除为0xFF,但是编程的写入的数据只有前8B数据,而且这8B字节数据还跟u8DataBuff不一致,其他字节数据依然是0xFF,并未被正确编程。而且就算重新复位,甚至再次擦除,然后编程都不起作用,那一段flash不变。请问这是什么问题呢?是不是demo默认地址设置错误,成保护扇区了
|