|
我的产品用 STM32F072RB,需要实现固件升级。Flash 内规划存放三份程序镜像: 完整版 Bootloader:负责选择启动应用固件 1或应用固件 2,然后跳转执行; 应用镜像 1:起始地址 A; 应用镜像 2:起始地址 B。 最初方案:编译两份独立应用工程,链接到各自 Flash 地址。 但客户提出新需求:只维护一份应用二进制文件,镜像 1 和镜像 2 内容完全一模一样。 我自己构思了一个方案不确定是否可行: 单份应用固件内置逻辑,运行时自动检测自身当前所在 Flash 地址; 如果检测到运行在地址 B 分区(镜像 2),执行一套函数、资源重映射机制,让镜像 2 运行时不访问镜像 1 的地址,全部使用镜像 2 自身地址空间。 请问这个思路是不是行得通? |
微信公众号
手机版