13.1.11. 固件更新与恢复¶
IDE 同时也是摄像头的固件管理器。每个 IDE 版本都为每块开发板捆绑了相匹配的固件版本,连接时会自动运行版本检查,并且内置了每个开发板系列引导加载程序的加载器——IDE 会自动检测开发板并使用正确的协议通信,无需手动指定。要让摄像头保持最新,只需将其连接并接受提示即可。
13.1.11.1. 更新¶
当连接时发现摄像头运行的固件版本早于捆绑的版本,IDE 会先完成连接,然后提供更新(你可以永久关闭该提示)。接受更新后,IDE 会将摄像头重启进入引导加载程序,烧录新固件,然后重新连接。更新对话框中的两个复选框——擦除内部闪存文件系统和重置 ROM 文件系统——默认都不勾选,并会记住你上次的选择;两者都关闭时,更新会保留摄像头上存储的所有内容。例外情况是从非常旧的固件升级时,对话框会强制开启擦除,并以警告说明这一点。同样的检查也可以通过状态栏中的固件版本条目按需运行。
在版本发布之间,工具 → 安装最新开发版本会为已连接的开发板获取并安装当前的开发构建——这是获取已合并但尚未正式发布的修复或新特性的方式。开发构建顾名思义就是开发版本;生产用摄像头应当跟随正式发布版本。
除固件之外,IDE 在启动时还会检查 IDE 本身是否有可用的更新资源——示例、捆绑固件、文档——并提供安装。它还会在有更新的 IDE 版本可用时通知你,并附带下载页面的链接。
13.1.11.2. 加载自定义固件¶
工具 → 加载自定义固件(Ctrl+Shift+L)会从磁盘烧录固件二进制文件,而非捆绑的发布版本——这是用于从源码构建的固件的部署路径,其中可以内置冻结脚本或自定义配置。该对话框需要选择固件文件,并提供与更新提示相同的擦除文件系统和重置 ROMFS 复选框。
参见
构建固件 介绍了如何首先构建该二进制文件。
13.1.11.3. 擦除文件系统¶
工具 → 擦除内部 FAT 文件系统(Ctrl+Shift+E)会重新格式化摄像头的内部闪存文件系统,移除所有存储的文件——main.py、库、资源、日志——并重新创建默认内容。这是摄像头存储的出厂重置:用于修复损坏的文件系统,以及在将摄像头交给他人之前清空数据。固件本身和 ROM 文件系统不受影响。
13.1.11.4. 恢复变砖的摄像头¶
如果摄像头的固件损坏严重到不再显示为串口,它仍然可以被挽救,因为引导加载程序位于固件之下,除非硬件损坏,否则它能够在任何情况下存活。当连接时找不到摄像头,IDE 会询问是否连接了一个变砖的摄像头,并引导你完成恢复:你选择开发板类型,IDE 驱动该开发板的引导加载程序接口,然后写入捆绑的发布固件。工具 → 强制进入 OpenMV Cam 引导加载程序会对仍能连接的摄像头显式执行重启进入引导加载程序这一步。对于最坏的情况,开发板还提供了在上电时强制进入引导加载程序的硬件方式;每块开发板的快速参考页面都介绍了其具体步骤。