101 lines
7.5 KiB
Markdown
101 lines
7.5 KiB
Markdown
# FloatPUMP - Firmware Repository
|
|
|
|
This repository contains the necessary files to completely build the firmware for the FloatPUMP controller.
|
|
The toolchain used in this project is built up using **docker**. The following sections describe how to setup the
|
|
jetbrains
|
|
CLion IDE to automatically use the included docker image to build the project. It also contains some description
|
|
on how to use OpenOCD to flash the controller using a **STLink-V2** Programmer.
|
|
|
|
## Toolchain Setup
|
|
|
|
This chapter describes how to setup the CLion IDE to use the toolchain built with docker.
|
|
|
|
### Prerequisites
|
|
|
|
- Install jetbrains CLion IDE
|
|
- Install Docker
|
|
- Open the Project by clicking _New project from version control_
|
|
|
|
### Build the docker image
|
|
|
|
You can build the image by yourself. Alternatively you can pull the image from the robtor.de registry.
|
|
Open a command line and enter the subdirectory build-tools. There run the follwing command to
|
|
build the docker image:
|
|
|
|
`docker build -t dev-arm-stm32:latest .`
|
|
|
|
As an alternative you could open the Dockerfile in this directory using CLion and build it directly out of the IDE!
|
|
|
|
### Pulling the image
|
|
|
|
This method is currently not supported. Coming soon...
|
|
|
|
### Configure toolchain
|
|
|
|
First enter the Settings dialog in CLion while the floatpump-firmware project is opened.
|
|
Under `Build, Execution, Deployment > Toolchain` add a new toolchain and choose the type `docker`.
|
|
Now setup everything as depicted in this screenshot:
|
|

|
|
|
|
If you named the image different than dev-arm-stm32:latest, choose the correct image corresponding to your name.
|
|
|
|
Usually now the correct CMake build targets should appear under `Build, Execution, Deployment > CMake`.
|
|
|
|
### Configure OpenOCD
|
|
|
|
To configure OpenOCD for directly flashing and debugging out of CLion go to the BuildTargets dropdown in the
|
|
header line and click on `Edit configurations`.
|
|
There add a new configuration for `OpenOCD` and enter the following proerties:
|
|

|
|
As `Board config file` chosse the correct `floatpump.cfg` file contained in the project root dir.
|
|
|
|
## Project structure
|
|
|
|
| Folder | Contents |
|
|
|:--------------------------------|:-----------------------|
|
|
| .out | Build output directory |
|
|
| build-tools | Files for building the toolchain|
|
|
| doc | Files for documentation or inclusion in .md Files|
|
|
| floatpump/Core | Firmware core source files |
|
|
| floatpump/Drivers | STM32 HAL and CMSIS Library files |
|
|
| floatpump/Middlewares/floatpump | Modules for the floatpump firmware |
|
|
| Middlewares/ST | STM32 Middleware files for USB OTG implementation |
|
|
| USB_DEVICE | same as above |
|
|
| net | Folder containing material for external Tasmota device and SmartHome integration |
|
|
| stm32-cube | Old files from the originating STM32 Cube Project |
|
|
|
|
# License
|
|
| Component | Copyright | License |
|
|
|:--------- |:----------------------------------------------------------|:---------------------------------------------|
|
|
| CMSIS | ARM Limited | Apache License 2.0 |
|
|
| CMSIS Device | ARM Limited - STMicroelectronics | Apache License 2.0 |
|
|
| STM32F4 HAL | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F4-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F4xx_Nucleo_144 | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F4xx-Nucleo | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F401-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F411E-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F413H-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32F429I-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM324x9I_EVAL | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM324xG_EVAL | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32412G-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32446E_EVAL | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32469I_EVAL | STMicroelectronics | BSD-3-Clause |
|
|
| BSP STM32469I-Discovery | STMicroelectronics | BSD-3-Clause |
|
|
| BSP Components | STMicroelectronics | BSD-3-Clause |
|
|
| BSP Adafruit | STMicroelectronics | BSD-3-Clause |
|
|
| FreeRTOS kernel | Amazon.com, Inc. or its affiliates | MIT |
|
|
| FatFS | ChaN - STMicroelectronics | BSD-3-Clause |
|
|
| LibJPEG | Thomas G. Lane, Guido Vollbe | Independent JPEG Group License |
|
|
| LwIP | Swedish Institute of Computer Science | BSD-3-Clause |
|
|
| mbedTLS | ARM Limited | Apache License 2.0 |
|
|
| STM32_USB_Device_Library | STMicroelectronics | SLA0044 |
|
|
| STM32_USB_Host_Library | STMicroelectronics | SLA0044 |
|
|
| STemWin | STMicroelectronics | SLA0044 |
|
|
| TouchGFX | STMicroelectronics | SLA0044 |
|
|
| STM32_Audio | STMicroelectronics | SLA0044 |
|
|
| STM32 Projects | STMicroelectronics | SLA0044 (BSD-3-Clause for basic Examples) |
|
|
| STM32 Utilities | STMicroelectronics | BSD-3-Clause |
|
|
|
|
The default `LICENSE` file applies on all other Components not covered by the table above! |