所有嵌入式设备都包含“恢复出厂设置”选项,允许用户在出现问题时重置其设备。我正在开发STM32板上的固件。固件包括一个引导加载程序,允许通过UART升级应用程序(通过发送包含新图像的二进制文件),我想添加另一个功能:恢复出厂设置。当用户选择此选项时,电路板应加载原始图像。什么是恢复出厂设置?它是关于将整个二进制文件再次加载到内存中还是仅调用重新初始化由最终用户修改的变量的函数?这样做的最佳做法是什么?哪里有原装FW?是在内部还是外部闪光灯?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我经常做两件事:
确保始终有一种可靠的方式进入引导加载程序,这样即使是部分/错误的固件更新也无法阻止设备。
有办法重置固件设置,以防用户更改某些内容,特定设置组合将使应用程序崩溃等。
两者都可以通过按钮(长按,短按),DIP开关或其他通信手段(例如UART,USB)来完成。
例如,如果将一个GPIO用于单个按钮,则可以通过以下方式使用它:
按下开机+按钮=调用bootloader
开机,未按下按钮=等待3秒,闪烁LED指示灯,如果按下按钮(在窗口内)并保持5秒,则重置固件设置
它采用闪存芯片和易失性电池备份SRAM存储芯片制成。闪存芯片包含程序,SRAM包含设置。
在恢复出厂设置时,将删除volatile sram的内容。在下次引导时,它会检测到设置的校验和无效并恢复程序中包含的默认值。
这不仅限于电池备份SRAM,也可以用FLASH或EEPROM完成。但是可以在不给机器加电的情况下擦除备用电池SRAM。
另一个术语是工厂恢复,这仅仅意味着它包含两次主程序。但是只有一个副本可以由用户升级。
双BIOS就是一个例子。
在较高级别的系统(如电话和计算机)上,这意味着它使用安装文件将操作系统恢复到出厂状态。
一周热门 更多>