日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

STM32F103VE_在線升級系統(tǒng)設(shè)計

為了解決數(shù)字產(chǎn)品在升級程序時需要反復(fù)帶電插拔燒錄器,參考了網(wǎng)上很多BootLoader的程序例程,通過這個帖子記錄自己一步一步搭建BootLoader升級框架。設(shè)計構(gòu)思如下(控制芯片用的是STM32F103VE):

1、對flash劃分為三個區(qū)域:

2、Flash運行流程如下:

3、程序設(shè)計思路解釋:Flash區(qū)域劃分為BootLoader、UserCode、BackUp三個區(qū)域;通過燒錄器下載BootLoader程序后,即可通過串口通信升級程序;在對UserCode程序升級完成后,會在UserCode_Verfy的地址上寫上標識碼代表已經(jīng)有用戶程序,同時把用戶程序拷貝到BackUp區(qū)域;如此大費周章的設(shè)計BackUp備份區(qū)是非常有必要的,在升級UserCode區(qū)域代碼的時候,如果出現(xiàn)掉線,由于升級前會把UserCode的所有程序全部擦除才能進行升級,這時候就出現(xiàn)了UserCode的程序不完整無法運行,機器就會變成磚頭;增加了BackUp區(qū)域之后,BootLoader程序?qū)serCode_Verfy區(qū)域進行5次識別后,就會對BackUp_Verfy區(qū)域進行識別,識別到有備份程序后,就會主動將備份程序拷貝回UserCode區(qū)域,從而實現(xiàn)了即使在升級過程出現(xiàn)異常,機器仍然能退回上一次存儲的程序運行。

4、編程準備:

芯片型號

內(nèi)存地址分布

通過資料查詢,可以了解到STM32F103VE是一款100腳內(nèi)存512K的芯片;

考慮到我們的程序存儲量不會太大,對Flash劃分如下:

5、通過學(xué)習(xí)《STM32F10xxx閃存編程參考手冊》

STM32F10xxx閃存編程參考手冊.pdf

對Flash擦除,程序如下:

對Flash編程,程序如下:

標識碼的寫入,程序如下:

程序的拷貝,程序如下:

BootLoader處理UserCode和BackUp的識別

BootLoader跳轉(zhuǎn)到UserCode的程序代碼:

主函數(shù)入口:

 6、升級測試

A.正常燒錄升級流程:

下載BootLoader

在線串口升級

Loader程序正常跳轉(zhuǎn)到用戶程序

B.燒錄過程掉線測試:

升級掉線:

備份區(qū)程序拷貝,重新運行

全部回復(fù)(0)
正序查看
倒序查看
現(xiàn)在還沒有回復(fù)呢,說說你的想法
發(fā)