STA Core library
Collection of useful stuff.
Modules
Assert
Assertion handling.
Configuration:
#define STA_ASSERT_ENABLE
: Enable module#define STA_ASSERT_DISABLE
: Forces module off when defined#define STA_HALT <func_name>
: Override function called after failed assertsDEBUG
: Automatically enables module when definedNDEBUG
: Forces module off when defined
Both sta::assert_failed
and sta::assert_halt
provide weak definitions and
can be overridden by the application. sta::assert_halt
is only called
via the STA_HALT macro which can also be provided by the application.
The default implementation of sta::assert_failed
uses STA_DEBUG_PRINT internally
and will not generate any output if the DEBUG_SERIAL module is disabled.
Debug Serial
Debug serial output macros.
Configuration:
#define STA_DEBUG_SERIAL_ENABLE
: Enable module#define STA_DEBUG_SERIAL_DISABLE
: Forces module off when definedDEBUG
: Automatically enables module when definedNDEBUG
: Forces module off when defined
The sta::DebugSerial
instance must be provided.
Endian
Endian-ness conversion for multi-byte types.
Enum Flags
Type for using enum values as combinable flags.
Lang
Macros related to compiler features. Not actually part of the C/C++ language.
MCU
Defines specific to different MCUs. Include the appropriate header from sta/mcu
for the MCU used by the application in the <sta/config.hpp>
header.
Printf
Choose which printf
implementation is used by STA libraries.
Configuration:
#define STA_PRINTF_USE_STDLIB
: Use the stdlib implementation#define STA_PRINTF_USE_MPALAND
: Use the implementation by Marco Paland (thread safe & reentrant)
HAL Delay
HAL based delay functions.
Configuration:
#define STA_HAL_DELAY_ENABLE
: Enable module#define STA_HAL_DELAY_US_TIM <tim_handle>
: 1 MHz TIM instance used bysta::delayUs
TIM time base must be started before using sta::delayUs
by calling sta::initHAL
.
When using the startup system task this is handled automatically.