Build dfu-util mit static libusb
Für Projekte mit Bootloader benutze ich DFU kompatible interfaces. Diese sollten von Windows aus mit dfu util flashbar sein.
Dafür habe ich ich dfu-util nach der Anleitung von https://dfu-util.sourceforge.net/ gebaut.
Dazu habe ich alles in ein Script kopiert: (Script und Binäre Dateien unter: https://coolcow.de/projects/Tools/dfu-util)
#sudo apt-get install gcc-mingw-w64-x86-64
wget https://github.com/libusb/libusb/releases/download/v1.0.24/libusb-1.0.24.tar.bz2
tar -xvjf libusb-1.0.24.tar.bz2
mkdir -p build
cd libusb-1.0.24
PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig ./configure \
--host=x86_64-w64-mingw32 --prefix=$PWD/../build
make LDFLAGS=-static
make install
cd ..
wget https://dfu-util.sourceforge.net/releases/dfu-util-0.11.tar.gz
tar -xvzf dfu-util-0.11.tar.gz
cd dfu-util-0.11
PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig ./configure \
--host=x86_64-w64-mingw32 --prefix=$PWD/../build
make
make install
cd ..
Beispiel für die Übertragung einer neuen Firmware bei einem STM32F1x:
.\dfu-util.exe -n 57 -D .\GenericTestd.elf.blinky.hex.bin --dfuse-address=0x08004000:leave
Bisher kann dfu-util nur binärdaten übertragen, deshalb muss die Firmware in .bin form vorliegen. Das kann zum Beispiel hiermit erreicht werden:
objcopy -Iihex -Obinary GenericTestd.elf.blinky.hex GenericTestd.elf.blinky.hex.bin