V208实现OnlyUpdate方式的OTA

目录

与多数沁恒家的MCU一样,V208的LD文件、启动文件使用的是公共文件,故不建议直接覆盖原路径中的文件,否则会导致其他工程的编译出问题。

本文以MultiCentPeri例程作为原始例程,为其添加外置BLE固定库的OTA框架。

步骤一:拷贝文件。

完整复制一份MultiCentPeri工程的文件夹到同一目录下,将副本改名为MultiCentPeri_OnlyUpedate(任意名都行,这里只是为了与原MultiCentPeri工程区分开)。打开OnlyUpdateApp_Peripheral的文件夹,拷贝其中的LD文件、启动文件的文件夹到MultiCentPeri文件夹下。

步骤二:替换原有的LD文件、启动文件。

拷贝文件后,如果工程栏中没有显示新的文件夹,右键点击一下工程名,选择刷新。

将原有的LD文件、启动文件排除编译。

删掉工程配置中的原有的LD文件、启动文件的路径,添加新路径。理论上原有的文件排除编译了就不影响了,以防万一还是删掉原路径吧。

修改LD文件的路径。

删掉头文件路径中关于原来的启动文件的路径。

删添源文件路径中关于启动文件的路径:

步骤三:LIB库相关操作。

删去MultiCentPeri_OnlyUpedate中的BLE库及其路径,空白即可。

步骤四:源文件相关修改。

目标工程XXX_main.c主函数前需要添加ImageFlag相关代码。

目标工程XXX_Peripheral.c尾部增加OTA跳转相关代码,并添加自定义的OTA跳转执行逻辑。下方是直接拷贝的OnlyUpdate例程中的逻辑,以char3收到数据作为OTA跳转的信号。

步骤五:宏定义相关操作。

工程配置中新增一个宏WCHBLE_ROM为1,表示使用外置固定库。

最后检查一下IAP层与APP层代码的32K时钟的内/外部源,是否一致。测试期间发现如果APP层代码使用外部32K晶振,而IAP层代码使用内部32K振荡器,APP跳转IAP会出问题。

posted @ 2024-03-20 17:23  JayWell  阅读(93)  评论(0编辑  收藏  举报