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

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

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

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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

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

    悬赏问题

    • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
    • ¥15 不小心不正规的开发公司导致不给我们y码,
    • ¥15 我的代码无法在vc++中运行呀,错误很多
    • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
    • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
    • ¥30 ppOCRLabel导出识别结果失败
    • ¥15 Centos7 / PETGEM
    • ¥15 csmar数据进行spss描述性统计分析
    • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
    • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题