diff options
Diffstat (limited to 'firmware/README.md')
-rw-r--r-- | firmware/README.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/firmware/README.md b/firmware/README.md new file mode 100644 index 0000000..1fee659 --- /dev/null +++ b/firmware/README.md @@ -0,0 +1,48 @@ + +# ledcontrol + +A firmware project for the STM32F103C8T6 to control LED strips. + +## Usage + +Install the necessary software. For Arch Linux this works like this: +``` +sudo pacman -S \ + base-devel \ + arm-none-eabi-binutils \ + arm-none-eabi-gcc \ + arm-none-eabi-gdb \ + arm-none-eabi-newlib +``` + +Clone this repository with all Git submodules: +``` +git clone --recurse-submodules https://cgit.xengineering.eu/ledcontrol +``` + +Enter the repository and build the software +``` +cd ledcontrol +make +``` + +Connect your STM32F103C8T6 with an STLINK V2 debugger and flash the firmware: +``` +bash ocd.sh +# switch to a second terminal in the same folder +bash gdb.sh build/ledcontrol.elf +load +run +# CTRL + C will stop the execution +# leave GDB with CTRL + D +``` + +Mention that you do not have to quit GDB to upload new compiled firmware. Just +call `load` and `run` again. + +## External References + +- Nice [tutorial](https://jacobmossberg.se/posts/2018/08/11/run-c-program-bare-metal-on-arm-cortex-m3.html) about C programs on bare-metal ARM chips +- Another useful [tutorial](https://www.rhye.org/post/stm32-with-opencm3-0-compiling-and-uploading/) about STM32 programming with libopencm3 +- A nice [PWM example](https://github.com/libopencm3/libopencm3-examples/blob/master/examples/stm32/f1/obldc/pwmleds/pwmleds.c) from the libopencm3 project + |