HomeBlogMagic

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
Permalink: https://adirmeier.de/Blog/ID_444
Tags: Blog, build, dfu-util, ubuntuvon am 2023-03-14