King Kévin 5a2a0130c8 | ||
---|---|---|
lib | ||
libopencm3@ad5ec6af08 | ||
.gitignore | ||
.gitmodules | ||
Doxyfile | ||
Makefile | ||
README.md | ||
application.c | ||
application.ld | ||
bootloader.c | ||
bootloader.ld | ||
global.c | ||
global.h | ||
usb_dfu.c | ||
usb_dfu.h |
README.md
this firmware template is designed for development boards based around STM32 F1 series micro-controller.
project
summary
describe project purpose
technology
described electronic details
board
The current implementation uses a core board.
The underlying template also supports following board:
- Maple Mini, based on a STM32F103CBT6
- System Board, based on a STM32F103C8T6
- blue pill, based on a STM32F103C8T6
- 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
connections
Connect the peripherals the following way (STM32F10X signal; STM32F10X pin; peripheral pin; peripheral signal; comment):
- list board to preipheral pin connections
All pins are configured using define
s in the corresponding source code.
code
dependencies
The source code uses the libopencm3 library.
The projects is already a git submodules.
To initialize and it you just need to run once: git submodule init
and git submodule update
.
firmware
To compile the firmware run make
.
documentation
To generate doxygen documentation run make doc
.
flash
The firmware 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
.
debug
SWD also allows to debug the code running on the micro-controller using GDB.
To start the debugging session run make debug
.
USB
The firmware offers serial communication over USART1 and USB (using the CDC ACM device class).
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.