mirror of
https://github.com/arabine/open-story-teller.git
synced 2025-12-06 17:09:06 +01:00
50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# Software development
|
|
|
|
## Firmware/software
|
|
|
|
The firmware is highly configurable and highly portable. To achieve that, it is split in multiple parts:
|
|
- The core source file, which is common to every target
|
|
- the ports, dedicated to an embedded MCU and board
|
|
- The tests, to easily test part of source on a standard PC
|
|
- A desktop/mobile implementation
|
|
|
|
The core is written in pure C, targets implementations may add other languages and libraries (QML/C++/python ...).
|
|
|
|
|
|
## CMake build system
|
|
|
|
The project uses CMake as build system. For the embedded targets, the main CMakeLists.txt includes a generic cross compiler file that should be good for many configurations as soon as your compiler is GCC.
|
|
|
|
## Invocation
|
|
|
|
1. Create a build directory (mkdir build)
|
|
2. Invoke cmake with some options, passed as definitions for CMake (-Doption)
|
|
|
|
| Option | Role |
|
|
| -------------------- | --------------------------------------------------------- |
|
|
| TOOLCHAIN | specify the prefix name of the cross GCC binary |
|
|
| CMAKE_TOOLCHAIN_FILE | Includes before everything else a compiler toolchain file |
|
|
| CMAKE_BUILD_TYPE | Debug or Release (default ?) |
|
|
| OST_BUNDLE | Specify the bundle name to build |
|
|
| TOOLCHAIN_DIR | Specify a directory for the cross-gcc toolchain location |
|
|
|
|
|
|
Example: `cmake -DTOOLCHAIN=riscv64-unknown-elf -DCMAKE_TOOLCHAIN_FILE=cmake/cross-gcc.cmake -DCMAKE_BUILD_TYPE=Debug -DOST_BUNDLE=LONGAN_NANO ..`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|