在升级的过程中,许多地方需要擦除Flash,为了增加Flash的使用寿命.
在擦除之前先判断下是不是需要擦除.
打开 BootLoader程序的 stmflash.c文件
找到 FlashErasePage 函数
修改如下:
把原先的直接擦除屏蔽掉,然后加上判断擦除程序
FlashStatus = FLASH_COMPLETE;
for(j=0;j<STM_SECTOR_SIZE;j+=2)//ÅжϲÁ³ý
{
if(STMFLASH_ReadHalfWord(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE+j)!=0XFFFF)
{
FlashStatus = FLASH_ErasePage(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE);//²Á³ýÕâ¸öÉÈÇø
break;
}
}
其它型号的单片机请根据单片机提供的函数进行修改.