STM32+ESP8266+AIR202/302遠程升級方案-程序優化2-如果判斷Flash需要擦除再擦除Flash,提高Flash使用壽命


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

說明 

在升級的過程中,許多地方需要擦除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;
                }
            }

 

 

 

 

 

 

 

 

結語

其它型號的單片機請根據單片機提供的函數進行修改.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM