CH32V208 OTA升級可否實現(xiàn)AB分區(qū)方式

目前OTA帶庫升級,寫入后需要跳轉(zhuǎn)到IAP,將備份區(qū)域的OTA文件拷貝到APP應用程序區(qū),能否在IAP直接跳轉(zhuǎn)到備份區(qū)域,達到AB分區(qū)的效果?


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

可以,需要改一改OTA升級標志、跳轉(zhuǎn)地址。量產(chǎn)時注意啟用讀保護。


OTA升級標志和LD中的跳轉(zhuǎn)地址都改了,寫入后,IAP 正確讀取到寫入的升級標志,但是,跳轉(zhuǎn)到APP失敗。startup.s是否也需要修改?如何處理?


跳轉(zhuǎn)前需要代碼運行在機器模式。進入機器模式有兩種方式,①跳轉(zhuǎn)代碼在中斷服務函數(shù)中執(zhí)行,代碼跑在中斷中自動獲得機器模式權限;②修改.s文件,整個工程都以機器模式權限運行。

如果用方式②,可以參考下圖

image.png

跳轉(zhuǎn)前還要注意關閉所有中斷使能,包括總中斷使能、各個中斷單獨的使能都要關閉。


icon_rar.gifOTA_A.zip

icon_rar.gifOTA_IAP.zip

icon_rar.gifOTA_B.zip


IAP 和APP使用的是 例程中的?BackupUpgrade_IAP 和?BackupUpgrade_OTA 修改。

燒錄 IAP和 APP_A,功能正常,通過藍牙升級將APP_B寫入,跳轉(zhuǎn)失敗。

IAP跳轉(zhuǎn)地址?0x0003A000,APP_B 地址?FLASH (rx) : ORIGIN = 0x0003A000, LENGTH = 216K,可以啟動,但是藍牙功能異常,手機APP無法搜索到藍牙。

IAP跳轉(zhuǎn)地址?0x00004000,APP_B 地址?FLASH (rx) : ORIGIN = 0x00004000, LENGTH = 216K,功能正常




1.png


上面的問題是否和藍牙庫的地址有關?


IAP:0x0000 0000 ~ 0x0000 3FFF

APP_A:0x0000 4000 ~ 0x0003 9FFF

APP_B:0x0003 A000 ~ 0x0006 FFFF


藍牙庫地址與 APP_B 有重疊導致被覆蓋,所以造成啟動后藍牙功能異常?


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频