Getting Started

See also

Midgard
Developing applications running directly on Midgard’s STM32F7 with or without a RTOS.

See also

Asgard
Developing applications running on Asgard’s STM32MP1 A7 Core under Linux or bare metal on its M4 Core

Compiling

libyggdrasil is a C++20 library and requires at least GCC v9.3 to build. Additionally, there are a few setup requirements for the project:

Pre-Processor defines

Important

Make sure to apply the settings to both the gcc and g++ section!

Defines

Description

BOARD=<BOARD_NAME>

BOARD_NAME represents the Board in use. Can be MIDGARD, ASGARD or ASGARD_COPROC

YGGDRASIL_PERIPHERAL_DEFS

Adds default peripheral definitions. Not supported when using a custom ioc

C++ Compile Flags

Flag

Description

-std=gnu++2a

Enables C++20 mode with GNU extensions

-fconcepts

Enables use of Concepts

-u _printf_float

Enables printf float support in newlib

Include Paths

Path

Description

../libyggdrasil/Inc

Main include path for libyggdrasil

../libyggdrasil/Inc/c/cmsis/dsp

ARM DSP functions

Source Paths

Path

Description

../libyggdrasil/Src

Main source path for libyggdrasil

Initialization

To use most core functionality of libyggdrasil, all hardware and peripheral drivers need to be initialized and libyggdrasil configured. At the start of main after all hardware initialization has been done, the function yggdrasil_init() needs to be called for this.