STM32 IAP (Bootloader)
Stm32 Iap
Jeg vil gjøre funksjonen for seriell portoppgradering for STM32 og studere trinnene for STM32-programutførelse.
1.STM32 programnedlastingsstartadresse 0x08000000, 0x00000004 denne adressen er avbruddsadressen
2. Design et bootloader-program selv, og design deretter et program.
3. Tilordne nedlastingsprogramområdet til stm32 bootloader, jeg bruker STM32F407ZGT6, med 1m flash
(1) bootloader : 0x0800 0000 ~ 0x0800 4000 størrelse : 0x4000 (16K)
(2) Søknad 1: 0x0800 4000 ~ 0x0808 0000
(3) Søknad 2: 0x0808 0000 ~ 0x0810 0000: Del i utgangspunktet 1Mflash
4. Design oppstartsprogram
Ovennevnte er bootloader-programmet, forskjellen med applikasjonen er forskjellen mellom startadressen til blitsprogrammeringen. Bootloaderens hovedfunksjon er å la programmet hoppe
5. Steder å være oppmerksom på
(1) Merk: Siden bootloader-funksjonen er lagt til programstartplasseringen, må avbruddspekeren til programmet også forskyves.
NVIC_SetVectorTable (NVIC_VectTab_FLASH, APP1_ADDRESS) // Sett denne koden i applikasjonen, hvis det ikke er noe avbrudd, vil det være et avbruddsunntak.
(2) Merk: SystemInit () / / denne funksjonen, programmet vil bli utført en gang hver gang programmet starter å kjøre, denne funksjonen vil være standard forskyvning av avbruddsvektortabellposisjonen, så konfigurer etter denne funksjonen Offset.