APM32F072在線升級的實現(xiàn)
雖然APM32F072有提供ISP實現(xiàn)程序通過Uart口進行程序燒錄,只要在應(yīng)用程序中跳轉(zhuǎn)到0x1FFFC800即可,同樣不需要改變boot腳的電位就可以完成通過Uart口進行程序升級。但是這樣不便于我們按需定制的在線升級過程。所以我們還是通過自定義bootloader和app的方式來實現(xiàn)。
首先我們需要對bootloader和app大小進行分配。
Bootloader 4k IROM的配置如下
APP 124k IROM的配置如下
剩下的一些flash區(qū)域用來存儲一些參數(shù)和在線升級的標(biāo)志位
Bootloader中只需要加入這部分代碼,就可以實現(xiàn)跳轉(zhuǎn),跳轉(zhuǎn)前注意要關(guān)閉所以中斷即可
為了讓BootLoader能識別是否進人程序升級還是跳轉(zhuǎn)到正常app運行,我通過了一個標(biāo)志位FlagOnlineUpdate來進行判斷,如果不為0x5AA5就進行在線升級,升級完成后改FLASH位置會變?yōu)?x5AA5。
App如果需要進行在線升級只需要把FLAGUPDATE_ADDR處的flash的值0x5AA5擦除后,通過NVIC_SystemReset進行復(fù)位即可進入到BootLoader進行程序升級了
App需要注意的就是需要修改中斷向量表的偏移地址。不然中斷觸發(fā)的時候中斷還會回到BootLoader中,無法正常運行app這邊工程的中斷函數(shù)。
審核編輯 :李倩
-
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3337瀏覽量
59047 -
APM
+關(guān)注
關(guān)注
1文章
72瀏覽量
13429
原文標(biāo)題:APM32芯得 EP.04 | APM32F072在線升級的實現(xiàn)
文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
極海APM32F411微控制器硬件FPU使用指南

極海APM32F003觸發(fā)NMI中斷的解決方案

極海APM32F407 uc/os3學(xué)習(xí)筆記之任務(wù)管理介紹

基于APM32F407如何制作I2C EEPROM(AT24C02型號)的MDK-Keil下載算法


KMPHM在線監(jiān)測平臺賦能設(shè)備管理升級#在線監(jiān)測#振動監(jiān)測
極?;?b class='flag-5'>APM32F035的屏蔽泵參考方案
STM32F103上位機升級,RS485升級、CAN升級

KM振動在線監(jiān)測系統(tǒng)助力設(shè)備煥新升級#振動在線監(jiān)測#振動監(jiān)測#在線監(jiān)測
APM32F411板的python+pyocd命令行操作

APM32F10xx進入低功耗模式的問題分析

TinyMaix框架的內(nèi)存需求超過了APM32F411的可用內(nèi)存,導(dǎo)致運行失敗,怎么能成功優(yōu)化?
如何開發(fā)不帶Flash API 的Bootloader實現(xiàn)在線升級

評論