jiajiawozuihao 2021-08-06 15:39 采纳率: 0%
浏览 18
已结题

带RTOS的嵌入式系统如果在线升级固件

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

请问有其他在线升级方式吗?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月14日
    • 创建了问题 8月6日