ch32v208wb IAP跳轉與藍牙協(xié)議棧問題

我自己實現(xiàn)了一個iap程序(iap不使用藍牙協(xié)議棧),在跳轉不使用藍牙協(xié)議棧的app程序中可以正常工作,但跳轉到使用了藍牙協(xié)議棧的app程序就無法運行。
請問藍牙協(xié)議棧需要做什么操作?或者如何使程序正常運行?

另外,藍牙iap例程中的跳轉指令(

#definejumpApp ? ?((void (*)(void))((int *)(IMAGE_A_START_ADD-0x08000000)))

????jumpApp();

)為何不能使用?

跳轉到使用了藍牙協(xié)議棧的app程序就無法運行”使用到的藍牙協(xié)議棧是與APP層代碼一同編譯的嗎?還是使用了wchble_rom.hex固定庫。
若是前者,注意jumpApp();跳轉到的地址與APP層代碼.ld文件中配置的起始地址一致即可。

若是后者,另外要注意.s文件中添加跳轉到固定庫的代碼。燒錄時需要將IAP、APP層代碼、固定庫hex文件合并燒錄。可以參考博客:V208實現(xiàn)OnlyUpdate方式的OTA - JayWell - 博客園 (cnblogs.com)

image.png


目前在APP中藍牙協(xié)議棧是一同編譯的,這時執(zhí)行跳轉還需如何操作?
另外,能否提供更詳細的使用固定庫的方法?


IAP用不到藍牙,flash使用大小會超過16K,那么APP層的起始地址至少要放在20K。BLE的OTA方案中,IAP代碼占用小于16K,APP層代碼是在16K地址處起始的。

注意點①起始地址和APP層代碼.ld的起始地址保持一致;②IAP中的中斷,在跳轉到APP層代碼前,全部關閉,總中斷和獨立的中斷標志都要關閉。③.s文件中進入機器模式權限再跳轉到其他層代碼,或者在中斷服務函數(shù)中跳轉到其他層。


使用固定庫是什么方面有疑問呢??偟膩碇v就是配置各種宏定義來配置APP層代碼從固定庫中調用協(xié)議棧接口。
CH573 CH582 CH579 固定LIB OTA - debugdabiaoge - 博客園 (cnblogs.com)


目前app程序中包含了協(xié)議棧,每次升級數(shù)據(jù)包太大了,如果分離了藍牙協(xié)議棧,每次僅升級代碼部分則可減少內存占用和降低升級所用的時間。


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

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