Flash firmware images
This application was designed for flashing usb devices. General purpose - raspberry device (Emlid Edge).
Firmware updater generally runs as subprocess of any applications. Interprocess communication implemented via QtRemoteObjects.
For use Firmware Updater from your project, you should include main/shared/shared.pri into your pro file. The project is written on C++14 standard.
- Find Edge device in the system
- Boot Edge as mass storage (via rpiboot)
- Get the version of current firmware
- Flash image
- Validate writing (CRC)
- Linux (most distros)
- Microsoft Windows 7 and later
- MacOSX
| OS | Requirements |
|---|---|
| Linux | g++5 or higher, 64 bit |
| Windows | msvc2015, 32 bit |
| OSX | clang++, 64 bit |
- Download the Qt installer
- You need to install
Qt 5.9.3or higher, and following packages:- Qt Core for your compiler (msvc2015/g++/clang++)
- QtRemoteObjects
| OS | Packages |
|---|---|
| Linux | sudo apt-get install libusb-1.0.0-dev libblkid-dev libudev-dev |
| Windows | Download libusb: extract it into the C:\libusb directory |
| OSX | brew install libusb |
Note: On Windows you should install drivers for rpiboot. Download .exe from
official usbboot repo
and install drivers for BCM2708 and BCM2710 using command line (Run cmd.exe as administrator):
.\wdi-simple.exe -n "Raspberry Pi USB boot" -v 0x0a5c -p 0x2763 -t 0
.\wdi-simple.exe -n "Raspberry Pi USB boot" -v 0x0a5c -p 0x2764 -t 0-
From directory with project (use shadow build), type in terminal:
-
sh
cd .. mkdir fwupdater-build cd fwupdater-build qmake "../edge-firmware-updater/fwupdater.pro" make
-
pwsh (PowerShell)
cd .. mkdir fwupdater-build cd fwupdater-build qmake "..\edge-firmware-updater\fwupdater.pro" jom.exe
-
-
Note: By default
qmakelocates in[QTPATH]/[QTVERSION]/[COMPILER]/bin. For example~/Qt/5.9.1/clang_64/bin/qmake. On Windows, instead of make you can usejom.exewhich installs with msvc compiler. -
ccache: For building with ccache add
QMAKE_CXX='ccache $${QMAKE_CXX}'to the end of qmake or QtCreator build kit
See tests