在线时间57 小时
UID3080775
注册时间2014-12-5
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 357
- 最后登录
- 2015-12-1
|

楼主 |
发表于 2015-3-16 17:20:18
|
显示全部楼层
擦除每次要擦一个扇区大小吗? 我先擦在写,总是会报错?
int flash_mem_erase(uint32_t address, uint32_t length)
{
uint32_t ret;
uint32_t dest_temp;
uint32_t end;
uint32_t size;
uint32_t number;
uint32_t i;
uint32_t alignedLength;
dest_temp =address;
alignedLength =ALIGN_UP(length,FTFx_PSECTOR_SIZE);
end = address +alignedLength;
lock_acquire();
while ((dest_temp + BYTE2WORD(FTFx_PSECTOR_SIZE)) <= end)
{
size = FTFx_PSECTOR_SIZE;
ret = FlashEraseSector(&flashConfig, dest_temp, size, g_FlashLaunchCommand);
if (FTFx_OK != ret)
{
ErrorTrap(ret);
}
/* Verify section for several sector of PFLASH */
number = FTFx_PSECTOR_SIZE / PRD1SEC_ALIGN_SIZE;
for(i = 0x0U; i < 0x2U; i++)
{
ret = FlashVerifySection(&flashConfig, dest_temp, number, i, g_FlashLaunchCommand);
if (FTFx_OK != ret)
{
ErrorTrap(ret);
}
}
dest_temp += BYTE2WORD(size);
}
lock_release();
return ret;
|
|