性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

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

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

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

2、Flash運(yùn)行流程如下:

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

4、編程準(zhǔn)備:

芯片型號(hào)

內(nèi)存地址分布

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

考慮到我們的程序存儲(chǔ)量不會(huì)太大,對(duì)Flash劃分如下:

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

STM32F10xxx閃存編程參考手冊(cè).pdf

對(duì)Flash擦除,程序如下:

對(duì)Flash編程,程序如下:

標(biāo)識(shí)碼的寫入,程序如下:

程序的拷貝,程序如下:

BootLoader處理UserCode和BackUp的識(shí)別

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

主函數(shù)入口:

 6、升級(jí)測(cè)試

A.正常燒錄升級(jí)流程:

下載BootLoader

在線串口升級(jí)

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

B.燒錄過(guò)程掉線測(cè)試:

升級(jí)掉線:

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

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