diff --git a/README.md b/README.md index 9840d73..4e9208e 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,23 @@ # 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 +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_ + +- 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: @@ -23,9 +27,11 @@ build the docker image: 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: @@ -36,8 +42,60 @@ If you named the image different than dev-arm-stm32:latest, choose the correct i 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 + +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: ![openocd_settings.png](doc/openocd_settings.png) 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! \ No newline at end of file