极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【E326】STM32在線升級程序

2021-08-18 14:40:08      索煒達電子      940     

項目編號:E326

文件大?。?2M

源碼說明:帶中文注釋

開發(fā)環(huán)境:C編譯器

簡要概述

stm32在線升級程序,bootloader程序通過仿真器燒錄到flash中stm32在線升級程序;  

bootloader程序通過仿真器燒錄到flash中,從uart1中接收命令和app的bin升級。

測試

在stm32RBT6 flash:128KB ram:20KB上測試使用,其他型號請自行修改bootloader.ioc.

流程說明:

graph TB

    A1((stm32上電)) -->  B0{等待bootcmd命令}


    B0 --> |接收到cmd命令| D1[進入bootcmd模式] 

    B0 --> |3S內(nèi)沒有收到cmd命令| B1{校驗app代碼crc通過?}


    B1 --> |Y| C1[運行app程序]

    B1 --> |N| C2[進入升級流程]

    

    C2 --> D1


    D1 --> |FE A5 01| E1[建立連接] 

    D1 --> |FE A5 02| E2[擦除FLASH] 

    D1 --> |FE A5 04| E4[開始寫入flash] 

    D1 --> |FE A5 05| E5[寫入crc] 

    D1 --> |FE A5 F2| E6[單片機重啟] 

    D1 --> |FE A5 F3| E7[強制跳轉(zhuǎn)到app] 

    D1 --> |FE A5 F4| E8[升級測試] 


    E1--> F1[ret: FE A5 01 03 FF 03 00 01]

    E2--> F2[延時1s]

    E4--> F4[連續(xù)寫入,每次寫入小于256字節(jié),間隔10ms]

    F4 --> |FE A5 F1| G1[結(jié)束編程] 

內(nèi)存分配:

use start addr end addr size

total 0x08000000 0x0801FFFF 0x00020000

bootloader 0x08000000 0x08003FFF 0x00004000

app 0x08004000 0x08013FFF 0x00010000

free 0x08014000 0x0801FBFE 0x0000BBFE

Private data 0x801F000 0x0801FFFF 0x00001000

演示

如下圖:1、打開串口,給已經(jīng)燒入bootloader的單片機上電且復位。

       2、按照圖中1-7順序執(zhí)行。

       3、注意第四步,加載app測試程序的bin文件,在發(fā)送設(shè)置中設(shè)置每發(fā)送256字節(jié)延遲100ms,發(fā)送文件。

       4、重啟后單片機三秒后執(zhí)行app程序,如果沒有跳轉(zhuǎn)到app,請檢查crc。

【E326】STM32在線升級程序

測試

在/test/目錄下由兩個bin文件可以測試使用,通過bootloader更新bin后在串口會看到不同的打印效果。

目錄│文件列表:

 └ stm32-boot

    ├ app

    │  │ .mxproject

    │  │ app.ioc

    │  ├ Drivers

    │  │  ├ CMSIS

    │  │  │  ├ Device

    │  │  │  │  └ ST

    │  │  │  │     └ STM32F1xx

    │  │  │  │        ├ Include

    │  │  │  │        │  │ stm32f100xb.h

    │  │  │  │        │  │ stm32f100xe.h

    │  │  │  │        │  │ stm32f101x6.h

    │  │  │  │        │  │ stm32f101xb.h

    │  │  │  │        │  │ stm32f101xe.h

    │  │  │  │        │  │ stm32f101xg.h

    │  │  │  │        │  │ stm32f102x6.h

    │  │  │  │        │  │ stm32f102xb.h

    │  │  │  │        │  │ stm32f103x6.h

    │  │  │  │        │  │ stm32f103xb.h

    │  │  │  │        │  │ stm32f103xe.h

    │  │  │  │        │  │ stm32f103xg.h

    │  │  │  │        │  │ stm32f105xc.h

    │  │  │  │        │  │ stm32f107xc.h

    │  │  │  │        │  │ stm32f1xx.h

    │  │  │  │        │  └ system_stm32f1xx.h

    │  │  │  │        └ Source

    │  │  │  │           └ Templates

    │  │  │  │              │ system_stm32f1xx.c

    │  │  │  │              ├ arm

    │  │  │  │              │  │ startup_stm32f100xb.s

    │  │  │  │              │  │ startup_stm32f100xe.s

    │  │  │  │              │  │ startup_stm32f101x6.s

    │  │  │  │              │  │ startup_stm32f101xb.s

    │  │  │  │              │  │ startup_stm32f101xe.s

    │  │  │  │              │  │ startup_stm32f101xg.s

    │  │  │  │              │  │ startup_stm32f102x6.s

    │  │  │  │              │  │ startup_stm32f102xb.s

    │  │  │  │              │  │ startup_stm32f103x6.s

    │  │  │  │              │  │ startup_stm32f103xb.s

    │  │  │  │              │  │ startup_stm32f103xe.s

    │  │  │  │              │  │ startup_stm32f103xg.s

    │  │  │  │              │  │ startup_stm32f105xc.s

    │  │  │  │              │  └ startup_stm32f107xc.s

    │  │  │  │              ├ gcc

    │  │  │  │              │  │ startup_stm32f100xb.s

    │  │  │  │              │  │ startup_stm32f100xe.s

    │  │  │  │              │  │ startup_stm32f101x6.s

    │  │  │  │              │  │ startup_stm32f101xb.s

    │  │  │  │              │  │ startup_stm32f101xe.s

    │  │  │  │              │  │ startup_stm32f101xg.

TAG升級程序
  • 8 次
  • 1 分