APM32F072在線升級(jí)的實(shí)現(xiàn)
雖然APM32F072有提供ISP實(shí)現(xiàn)程序通過(guò)Uart口進(jìn)行程序燒錄,只要在應(yīng)用程序中跳轉(zhuǎn)到0x1FFFC800即可,同樣不需要改變boot腳的電位就可以完成通過(guò)Uart口進(jìn)行程序升級(jí)。但是這樣不便于我們按需定制的在線升級(jí)過(guò)程。所以我們還是通過(guò)自定義bootloader和app的方式來(lái)實(shí)現(xiàn)。
首先我們需要對(duì)bootloader和app大小進(jìn)行分配。
Bootloader 4k IROM的配置如下

APP 124k IROM的配置如下

剩下的一些flash區(qū)域用來(lái)存儲(chǔ)一些參數(shù)和在線升級(jí)的標(biāo)志位
Bootloader中只需要加入這部分代碼,就可以實(shí)現(xiàn)跳轉(zhuǎn),跳轉(zhuǎn)前注意要關(guān)閉所以中斷即可

為了讓BootLoader能識(shí)別是否進(jìn)人程序升級(jí)還是跳轉(zhuǎn)到正常app運(yùn)行,我通過(guò)了一個(gè)標(biāo)志位FlagOnlineUpdate來(lái)進(jìn)行判斷,如果不為0x5AA5就進(jìn)行在線升級(jí),升級(jí)完成后改FLASH位置會(huì)變?yōu)?x5AA5。

App如果需要進(jìn)行在線升級(jí)只需要把FLAGUPDATE_ADDR處的flash的值0x5AA5擦除后,通過(guò)NVIC_SystemReset進(jìn)行復(fù)位即可進(jìn)入到BootLoader進(jìn)行程序升級(jí)了

App需要注意的就是需要修改中斷向量表的偏移地址。不然中斷觸發(fā)的時(shí)候中斷還會(huì)回到BootLoader中,無(wú)法正常運(yùn)行app這邊工程的中斷函數(shù)。


審核編輯 :李倩
-
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3344瀏覽量
60278 -
APM
+關(guān)注
關(guān)注
1文章
74瀏覽量
13898
原文標(biāo)題:APM32芯得 EP.04 | APM32F072在線升級(jí)的實(shí)現(xiàn)
文章出處:【微信號(hào):geehysemi,微信公眾號(hào):Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
替代STM32F405的高性價(jià)比—APM32F405RGT6
STM32L072xx:超低功耗32位MCU的設(shè)計(jì)指南與應(yīng)用潛力
KM在線監(jiān)測(cè)實(shí)現(xiàn)設(shè)備高效管理#在線監(jiān)測(cè)
極海APM32F427移植CherryUSB實(shí)現(xiàn)自定義USB HID設(shè)備
使用極海APM32F427驅(qū)動(dòng)QSPI XIP內(nèi)存映射流程
極海APM32E030/F402系列MCU通過(guò)IEC 60730/60335功能安全認(rèn)證
基于極海APM32F411 MCU移植U8g2驅(qū)動(dòng)OLED指南
為APM32F411打造可自動(dòng)化的命令行工作流
stm32cubemax在線升級(jí)后,原來(lái)建立的工程被刪除了,如何恢復(fù)?
極海APM32F411微控制器硬件FPU使用指南
基于APM32F411 DMA_ADC Handler模式分析及解決
(大賽作品)STM32F072RB NUCLEO智能家居控制實(shí)例項(xiàng)目
極海APM32F003觸發(fā)NMI中斷的解決方案
極海APM32F407 uc/os3學(xué)習(xí)筆記之任務(wù)管理介紹
基于APM32F407如何制作I2C EEPROM(AT24C02型號(hào))的MDK-Keil下載算法
APM32F072在線升級(jí)的實(shí)現(xiàn)
評(píng)論