diff --git a/boards/common/doc.txt b/boards/common/doc.txt index aff35c3f3eab1e1cbb3286adcd5c94a8a1ff5482..8ca2c2592245402b83ba09e5e72447c700233aed 100644 --- a/boards/common/doc.txt +++ b/boards/common/doc.txt @@ -5,4 +5,29 @@ Several boards share many definitions and implementations, these are collectively stored into a common module per board group. + +## Utilise DFU-Util with bootloader to flash RIOT binaries + +### Flash the bootloader + +1. Download the bootloader binary matching you boards from + https://github.com/rogerclarkmelbourne/STM32duino-bootloader + e.g., for the STM32 bluepill use `generic_boot20_pc13.bin`. + +2. Flash the bootloader using ST-Link, for instructions see: + - https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Flashing-Bootloader-for-BluePill-Boards + - https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Programming-an-STM32F103XXX-with-a-generic-%22ST-Link-V2%22-programmer-from-Linux + +### Flash RIOT binaries + +The following steps are tested with the STM32 bluepill board: + +1. Set Boot1 pin to 1 and reset device via button, this will ensure that the + bootloader stops and will not load any binary already present on the device. +2. Connect bluepill via USB to your PC, the LED should blink continuously. +3. Run `dfu-util -l` to list available, it should list (at least) 3 device with + USB device ID `1eaf:0003`. If not check Boot1 pin setting +4. Flash RIOT binary by running `PROGRAMMER=dfu-util BOARD=bluepill make flash` +5. Reset Boot1 pin to 0 and reset device via button, this should boot the RIOT + binary. */ diff --git a/boards/common/stm32f103c8/Makefile.include b/boards/common/stm32f103c8/Makefile.include index bd99710c0eb240f9a191c582482e2e42e58125a8..9cac24d4117d27809fabb554aeecd7ab11dffc33 100644 --- a/boards/common/stm32f103c8/Makefile.include +++ b/boards/common/stm32f103c8/Makefile.include @@ -23,7 +23,9 @@ ifeq ($(PROGRAMMER),dfu-util) export RESET = # dfu-util has no support for resetting the device HEXFILE = $(BINFILE) - export FFLAGS = -d 1d50:6017 -s 0x08002000:leave -D "$(HEXFILE)" + export FFLAGS = -d 1eaf:0003 -a 2 -D "$(HEXFILE)" + # for older bootloader versions use this: + #export FFLAGS = -d 1d50:6017 -s 0x08002000:leave -D "$(HEXFILE)" else # this board uses openocd by default