Fanexs168 发表于 2023-8-31 14:54

Bootloader跳转&固件升级有误

问题背景
客户重构Bootloader代码
1、Bootloader跳转到APP,有概率会失败(芯片“死机”)
2、Bootloader编程写入的数据出错;

解决方案
1、客户Boot使用按键中断触发Boot跳转(在中断中修改Flag标准位;在主循环中判定标准位,再选择性跳转到APP)
    a. 按键没有做硬件消抖处理——有重复触发外部IO中断的概率;
    b. 跳转前只加了关闭全局中断,没有单独清除/关闭按键中断(KEY);导致APP开启全局中断时,继续响应Boot期间“额外触发”的按键中断。
      i. 导致!——在APP程序段,程序找不到按键中断对应的中断服务函数,且无法清除中断响应标志位,最终"MCU卡死";

2、Bootloader按16bit编程的APP数据格式出错——读出APP数据,发现是按照大端模式存储数据;
    正确需要按照小端模式存储


页: [1]
查看完整版本: Bootloader跳转&固件升级有误