mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-14 20:40:05 +00:00
Add "generic" STM32 setup instructions
... these really need screenshots, but it's a start.
This commit is contained in:
parent
00411f622e
commit
024a31bba4
2 changed files with 50 additions and 1 deletions
41
api/cpp/docs/mcu/stm32/generic.md
Normal file
41
api/cpp/docs/mcu/stm32/generic.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: MIT -->
|
||||
|
||||
# Generic Instructions for Slint on STM32 MCUs
|
||||
|
||||
The following instructions outline a rough, general path how to get started on an STM32 MCU
|
||||
with STM32 Cube tooling and Slint. Successful completion requires experience with STM32CubeMX
|
||||
as well as the peripherals of our board.
|
||||
|
||||
1. Make sure to install all the <project:../stm32.md#prerequisites>.
|
||||
2. Start a new project with STM32CubeMX:
|
||||
- Select your base board.
|
||||
- Enable all peripherals needed. This includes LTDC and typically the FMC to be able
|
||||
to place the framebuffers in RAM.
|
||||
- Select CMake in the code generator options.
|
||||
3. General the CMake project and skeleton code.
|
||||
4. In the STM32 VS Code Extension, choose the command to import a CMake project.
|
||||
5. In STM32CubeMX select the STM32Cube BSP that matches your board and install it.
|
||||
6. Copy the BSP drivers into your project's source tree and modify `CMakeLists.txt` to
|
||||
add them to the build.
|
||||
7. Add C++ support to the generated CMake project by adding `CXX` to the `LANGUAGES` option
|
||||
of the `project` command.
|
||||
8. Download and extract <https://github.com/slint-ui/slint/releases/latest/download/Slint-cpp-nightly-thumbv7em-none-eabihf.tar.gz>
|
||||
9. Set `CMAKE_PREFIX_PATH` to the extracted directory.
|
||||
10. Adjust your `CMakeLists.txt` for Slint use:
|
||||
1. Add a `find_package(Slint)` call.
|
||||
2. Enable resource embedding by adding `set(DEFAULT_SLINT_EMBED_RESOURCES embed-for-software-renderer)`.
|
||||
3. Set the default style to `Fluent` with `set(SLINT_STYLE "fluent-light")`.
|
||||
4. Add `SLINT_STM32_BSP_NAME=<name>` to your `target_compile_definitions` and replace `<name>` with the
|
||||
name of your BSP (for example `stm32h735g_discovery` or `stm32h747i_discovery`).
|
||||
5. Add `Slint::Slint` to your `target_link_libraries`.
|
||||
11. Add a C++ source file to your project, for example `appmain.cpp`, with an `appmain` function and call it
|
||||
from the generated `main.c`.
|
||||
12. Add a `.slint` file to your project and include it in your project by calling `slint_target_sources`.
|
||||
13. In your `appmain` function, initialize the screen via `BSP_LCD_InitEx` as well as the touch screen via `BSP_TS_Init`.
|
||||
14. Include `#include <slint-stm32.h>` and call `slint_stm32_init(SlintPlatformConfiguration());` to initialize the
|
||||
Slint platform integration for STM32.
|
||||
15. Finally, include the header file for your `.slint` file, instantiate the generated class, and invoke the event loop by
|
||||
calling `->run()` on the instance.
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue