/*BaseaddressoftheFlashsectors*/#defineADDR_FLASH_SECTOR_0((uint32_t)0x08000000)/*Base@ofSector0,16Kbytes*/#defineADDR_FLASH_SECTOR_1((uint32_t)0x08004000)/*Base@ofSector1,16Kbytes*/#defineADDR_FLASH_
STM32F系列單片機內(nèi)部含有較大容量的FLASH存儲器,但沒有EEPROM存儲器,有時候?qū)τ趨?shù)的保存不得不另外加一片EEPROM芯片。這對于現(xiàn)如今大部分MCU都是FLASH+EEPROM的配置而言,顯的相當?shù)牟缓竦?,尤其是從AVR轉(zhuǎn)過來的
這次要講講如何用USB升級單片機代碼。以前曾經(jīng)做過串口升級,網(wǎng)絡升級,升級的基本原理都類似,只不過升級的工具不同罷了,串口升級當然是用串口了,網(wǎng)絡升級用的是TCP/IP,USB升級當然用的是USB了。下面就來講講USB
1 前言客戶反饋在使用STM32F412的時候,擦除sector 8~11發(fā)現(xiàn)時間過長,從而導致意外觸發(fā)IWDG復位。2 問題分析2.1 問題詳情通過與客戶郵件和電話溝通,了解到客戶主要是想使用內(nèi)部FLASH暫時保存IAP升級時的程序數(shù)據(jù),
由于老師的要求,所以寫了一份讀寫STM32內(nèi)部FLASH的代碼,這樣的話就可以把STM32里面沒有用來保存代碼段的部分用來存儲數(shù)據(jù)了。由于《stm32flash編程手冊》是很久很久以前看的,現(xiàn)在也沒心情去仔細看那份手冊了。大概
因為要用內(nèi)部FLASH代替外部EEPROM,把參數(shù)放在STM32的0x08000000+320K處,其中20K是bootloader,300K是應用程序。原理:先要把整頁FLASH的內(nèi)容搬到RAM中,然后在RAM中改動,然后擦除整頁FLASH,再把改動后的內(nèi)容寫入