From eeec18aaa92ef3171f3b5a18cccaa7908bad5e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Sat, 15 Apr 2017 13:58:39 +0200 Subject: [PATCH] add bootloader information --- README.md | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index eb15ab1..fb9f9b2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -this firmware template is designed for development boards based around [STM32 F1 series micro-controller](http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031). +This firmware template is designed for development boards based around [STM32 F1 series micro-controller](http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031). project ======= @@ -26,10 +26,7 @@ The underlying template also supports following board: - [core board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#core_board), based on a STM32F103C8T6 **Which board is used is defined in the Makefile**. -This is required: - -- for the linker script to know the memory layout (flash and RAM) -- map the user LED and button provided on the board +This is required to map the user LED and button provided on the board connections =========== @@ -63,10 +60,20 @@ To generate doxygen documentation run `make doc`. flash ----- -The firmware will be flashed using SWD (Serial Wire Debug). +There are two firmware images: `bootloader` and `application`. +The `bootloader` image allows to flash the `application` over USB using the DFU protocol. +The `bootloader` is started first and immediately jumps to the `application` if it is valid and the DFU mode is not forced (i.e. by pressing the user button on the board or requesting a DFU detach in the `application`). +The main application should be implemented in `application.c`. +It is up to the application to advertise USB DFU support (i.e. as does the provided USB CDC ACM example). + +The `bootlaoder` image will be flashed using SWD (Serial Wire Debug). For that you need an SWD adapter. The `Makefile` uses a Black Magic Probe (per default), or a ST-Link V2 along OpenOCD software. -To flash using SWD run `make flash`. +To flash the `booltoader` using SWD run `make flash_booloader`. + +Once the `bootloader` flashed it is possible to flash the `application` over USB using the DFU protocol by running `make flash`. +To force the bootloader to start the DFU mode press the user button or short a pin, depending on the board. +It is also possible to flash the `application` using SWD by running `make flash_application`. debug ----- @@ -81,4 +88,4 @@ The firmware offers serial communication over USART1 and USB (using the CDC ACM You can also reset the board by setting the serial width to 5 bits over USB. To reset the board run `make reset`. -This only works if the USB CDC ACM is running correctly and the micro-controller isn't stuck. +This only works if provided USB CDC ACM is running correctly and the micro-controller isn't stuck.