想要实现的流程:
刚上电启动时BootLoader从flash中加载镜像到某个内存位置,包括了跳转表地址,之后从跳转表的值处开始运行代码,想在代码运行过程中,通过串口指令把要是升级的固件加载到flash中,再通过另一个指令,通知固件加载新的镜像来运行。
目前遇到的问题:
1、当在固件中加载镜像到指定的内存位置时,程序崩溃,猜测是当前程序就是在该内存位置运行着,不能再把新的镜像加载到该内存位置,导致的程序崩溃,但生成的镜像要加载到的这个内存位置在生成镜像时就固定了,没法修改让程序从别的内存地址加载运行。
2、想着在当前固件中运行时跑去BootLoader的加载镜像程序,但因为是多核的,这个核转去了BootLoader,其他核还在当前内存位置运行着,还是程序崩溃。
请问有其他在线升级方式吗?