[星瞳科技]OpenMV如果进行固件升级和编译?

升级固件

视频教程5 - 升级固件:OpenMV升级固件 | 星瞳科技
视频教程41 - 新DFU烧录固件:新DFU烧录固件 | 星瞳科技

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

固件下载

官方固件下载: Releases · openmv/openmv · GitHub

中国服务器下载: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"
Copy

说明已经进入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
Copy

这样就成功升级完固件了
参考资料:Create new page · openmv/openmv Wiki · GitHub

编译固件

参考:Home · openmv/openmv Wiki · GitHub

注意

OpenMV正常使用时不需要编译固件,只需要通过IDE连接OpenMV板,然后运行Python代码。

如果你对OpenMV的固件源码感兴趣,想深入了解,可以编译固件。

获取Ubuntu

你可以安装双系统,安装虚拟机,或者使用win10下的bash on windows。

现在假设你已经有了Ubuntu。

安装必须使用的软件

sudo apt-get remove gcc-arm-none-eabi
sudo apt-get autoremove
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
sudo apt-get install libc6-i386
sudo apt-get install git
sudo apt-get install make
Copy

获取项目代码

GitHub在国内因为网络问题,很容易出现子项目下载错误,导致编译失败。为了避免问题,可以直接从星瞳的下载地址下载全部代码:

下载V4.2.1:https://dl.singtown.com/openmv/openmv_v4.2.1.zip

下载后解压出 openmv_v4.2.1 文件夹

编译

cd openmv_v4.2.1
make -j$(nproc) -C src/micropython/mpy-cross
make -j$(nproc) TARGET=OPENMV4 -C src
Copy

代码会编译出OpenMV Cam H7的固件。 如果需要编译其他板子,通过更改TATGET参数:

TARGET=OPENMV3 # 编译 OpenMV Cam M7 固件
TARGET=OPENMV4 # 编译 OpenMV Cam H7 固件 (default)
TARGET=OPENMV4P # 编译 OpenMV Cam H7 Plus 固件
Copy

固件文件

固件会在 src/build/bin 目录中生成:

bootloader.bin - Bootloader Binary Image (not directly used)
bootloader.dfu - Bootloader DFU Image (not directly used)
bootloader.elf - Bootloader ELF Image (used to generate the BIN/DFU Files)
firmware.bin - Firmware Binary Image (Used by Tools->Run Bootloader in OpenMV IDE)
firmware.dfu - Firmware DFU Image (not directly used)
firmware.elf - Firmware ELF Image (used to generate the BIN/DFU Files)
openmv.bin - Combined Bootloader+Firmware Binary Image (not directly used)
openmv.dfu - Combined Bootloader+Firmware DFU Image (Used by Tools->Run Bootloader in OpenMV IDE)
uvc.bin - Alternative UVC Binary Image (not directly used)
uvc.dfu - Alternative UVC DFU Image (not directly used)
uvc.elf - Alternative UVC ELF Image (used to generate the BIN/DFU Files)
Copy

烧录固件

参考视频:

OpenMV视频教程05-升级固件:OpenMV升级固件 | 星瞳科技

正版授权

OpenMV是一个开放的项目,所有的文件都是开源的。但是同时也会有一些麻烦,和Arduino类似,有一些人自行制作OpenMV的PCB板,然后以廉价的方式出售,这样的行为损害了项目的利益和发展。

  • 减少生产数量,会影响OpenMV的成本控制
  • 减少盈利,会影响OpenMV的软件开发
  • 粗制滥造的板子会带来一些问题,会困扰开发者

所以,对于不是在官方购买的板子,OpenMV的IDE会采取一定的措施。

每当连接的时候,会提示3个对话框,建议你在OpenMV购买License。

License


购买过License后,会发送一个邮件,将一串字符密钥发送给你。

可以填入密钥,然后软件会将这个密钥和你的板子绑定到一起。

一个密钥只能对应一个OpenMV。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值