升级固件
视频教程5 - 升级固件:https://singtown.com/learn/49997/
视频教程41 - 新DFU烧录固件:https://singtown.com/learn/50903/
OpenMV项目是一直更新的,用户可以升级固件来保持更新。
每次更新,都会修复bug,增加新的功能。
有两种方式升级固件,一种是IDE自带的功能,使用bootloader升级固件,我们称之为常规升级。另一种是dfu升级,使用STM芯片的升级固件功能。
请优先使用常规升级,如果是用不了,或者是新的芯片,可以使用DFU烧录程序。
常规升级
OpenMV的IDE有更新固件的功能,非常好用,优先使用这个(Windows,MacOS,Ubuntu通用)。
如果你的固件不是最新版本的话,在IDE下方会有[out of data - click here to upgrade],如上图。点击这里,会弹出一个对话框:是否升级到最新固件?
选择OK
如果想擦除文件系统,选择Yes,如果想保留文件,选择No。
这个过程大概会持续1分钟,OpenMV的灯会闪。
最后会提示:升级成功。
然后,OpenMV就升级到最新版了。
DFUSE升级(废弃)
请优先使用常规升级。DFUSE软件的兼容性不好。
DFU模式,是STM芯片特有的bootloader,这种升级方式,适用于没有烧录过固件的OpenMV,或者烧写固件错误的OpenMV。
dfu升级不需要调试器,只需要一根杜邦线和USB线。
第一步,安装软件
在OpenMV的IDE就集成了这个烧录软件:DFUSE
双击打开。
第二步,下载最新固件
同样,在IDE中就集成了最新的固件。
第三步,进入DFU模式
用杜邦线连接Boot引脚和RST引脚。
就进入了DFU模式,设备管理器会出现一个DFU设备。
如果没有自动安装驱动,可以在DfuSe软件的安装路径中找到驱动文件,安装即可。
第四步,烧录固件
打开软件,点击Choose选择openmv.dfu(不要选择左侧的Choose)。
请注意区分OpenMV2与OpenMV3的固件。如果你是OpenMV3 M7的板子,请选择OpenMV3的固件;如果是OpenMV2 M4的板子,请选择OpenMV2的固件。
这样就上传成功啦。 拔下杜邦线,然后重新插上USB线,运行IDE试试吧!
MacOS DFU升级
MacOS也是可以常规升级的,请优先使用常规升级。
DFU模式,是STM芯片特有的bootloader,这种升级方式,适用于没有烧录过固件的OpenMV,或者烧写固件错误的OpenMV。
Linux和Mac OS下没有找到GUI的程序,只有命令行的。
安装软件:
brew install dfu-util
固件下载
官方固件下载: https://github.com/openmv/openmv/releases
中国服务器下载:http://openmv.cc/downloads/
并把固件解压到当前目录:
ls
openmv.dfu
进入DFU模式
先检查一下:
>> sudo dfu-util -l
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Deducing device DFU version from functional descriptor length
Found Runtime: [05ac:828f] ver=0131, devnum=4, cfg=1, intf=3, path="20-3", alt=0, name="UNKNOWN", serial="UNKNOWN"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-2", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="348633623235"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-2", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="348633623235"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-2", alt=1, name="@Option Bytes /0x1FFFC000/01*016 e/0x1FFEC000/01*016 e", serial="348633623235"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-2", alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg,04*016Kg,01*064Kg,07*128Kg", serial="348633623235"
说明已经进入dfu模式了。
烧录固件
sudo dfu-util --alt 0 -D openmv.dfu
如果正常的话,会显示:
image for alternate setting 0, (2 elements, total size = 1008036)
parsing element 1, address = 0x08000000, size = 65536
Download [=========================] 100% 65536 bytes
Download done.
parsing element 2, address = 0x08010000, size = 942484
Download [=========================] 100% 942484 bytes
Download done.
done parsing DfuSe file
这样就成功升级完固件了
参考资料:https://github.com/openmv/openmv/wiki/Using-DFU-to-update-your-firmware