Skip to content

File syn_config_template.h

FileList > src > syntropic > syn_config_template.h

Go to the source code of this file

SyntropicOS configuration template. More...

Macros

Type Name
define SYN_CLI_HISTORY_DEPTH 0
define SYN_CLI_LINE_BUF_SIZE 128
define SYN_CLI_MAX_ARGS 16
define SYN_COREDUMP_STACK_SIZE 128
define SYN_CRC_USE_TABLE 1
define SYN_FILTER_MAX_WINDOW 32
define SYN_FW_USE_HMAC 0
define SYN_GFX_BACKEND [**SYN\_GFX\_BACKEND\_CANVAS**](syn__gfx_8h.md#define-syn_gfx_backend_canvas)
define SYN_GFX_BACKEND_CANVAS 0
define SYN_GFX_BACKEND_DIRECT 1
define SYN_LOG_BUF_SIZE 192
define SYN_LOG_COLOR 0
define SYN_LOG_LEVEL 1
define SYN_LOG_TIMESTAMP 1
define SYN_SPINLOCK_COUNT 4
define SYN_UART_MAX_INSTANCES 2
define SYN_UART_RX_BUF_SIZE 128
define SYN_UART_TX_BUF_SIZE 128
define SYN_USE_ACTUATOR 1
define SYN_USE_ADC 1
define SYN_USE_AO 1
define SYN_USE_AUTOTUNE 1
define SYN_USE_BIQUAD 1
define SYN_USE_BLAKE2S 1
define SYN_USE_BOOT 1
define SYN_USE_BUTTON 1
define SYN_USE_CANVAS 1
define SYN_USE_CBOR 1
define SYN_USE_CHACHA20POLY1305 1
define SYN_USE_CLI 1
define SYN_USE_COAP 1
define SYN_USE_COBS 1
define SYN_USE_COREDUMP 0
define SYN_USE_DALI 1
define SYN_USE_DATALOG 1
define SYN_USE_DC_MOTOR 1
define SYN_USE_DMA 0
define SYN_USE_DNS 1
define SYN_USE_ENCODER 1
define SYN_USE_ERRLOG 1
define SYN_USE_ETHERCAT 1
define SYN_USE_EVENT 1
define SYN_USE_EXTI 1
define SYN_USE_FAT 1
define SYN_USE_FAULT 1
define SYN_USE_FFT 1
define SYN_USE_FILTER 1
define SYN_USE_FMT 1
define SYN_USE_FSM 1
define SYN_USE_GEO 1
define SYN_USE_GPIO 1
define SYN_USE_HEARTBEAT 1
define SYN_USE_HPCLOCK 1
define SYN_USE_HTTP 1
define SYN_USE_HTTPD 1
define SYN_USE_HWWDT 1
define SYN_USE_I2C_ASYNC 0
define SYN_USE_IMGUI 1
define SYN_USE_JSON 1
define SYN_USE_LED 1
define SYN_USE_LFS 1
define SYN_USE_LIN 1
define SYN_USE_LOG 1
define SYN_USE_MBUS 1
define SYN_USE_MENU 1
define SYN_USE_MODBUS 1
define SYN_USE_MOTOR_CTRL 1
define SYN_USE_MQTT 1
define SYN_USE_MULTICORE 0
define SYN_USE_PARAM 1
define SYN_USE_PID 1
define SYN_USE_PMBUS 1
define SYN_USE_POOL 1
define SYN_USE_POWER 1
define SYN_USE_PROFILER 1
define SYN_USE_PT 1
define SYN_USE_PUBSUB 1
define SYN_USE_RAMP 1
define SYN_USE_ROUTER 1
define SYN_USE_SCHED 1
define SYN_USE_SCURVE 1
define SYN_USE_SENSOR 1
define SYN_USE_SEQUENCER 1
define SYN_USE_SERVO 1
define SYN_USE_SETTINGS 1
define SYN_USE_SHA256 1
define SYN_USE_SIGNAL 1
define SYN_USE_SMBUS 1
define SYN_USE_SNTP 1
define SYN_USE_SOFT_PWM 1
define SYN_USE_SPI_ASYNC 0
define SYN_USE_STEPPER 1
define SYN_USE_TICKLESS 0
define SYN_USE_TIMER 1
define SYN_USE_TIMESYNC 1
define SYN_USE_TRACE 1
define SYN_USE_TRANSPORT_TCP 1
define SYN_USE_UART 1
define SYN_USE_VFS 1
define SYN_USE_WATCHDOG 1
define SYN_USE_WEBSOCKET 1
define SYN_USE_WG 1
define SYN_USE_WORKQUEUE 1
define SYN_USE_X25519 1
define SYN_WG_MTU 1420

Detailed Description

HOW TO USE: * Copy this file to your project's include path. * Rename the copy to "syn_config.h". * Edit the copy to enable/disable modules and set buffer sizes.

SyntropicOS headers look for "syn_config.h" on the include path. If the file is not found, sensible defaults are used.

Macro Definition Documentation

define SYN_CLI_HISTORY_DEPTH

#define SYN_CLI_HISTORY_DEPTH `0`

Command history depth (0=disabled)


define SYN_CLI_LINE_BUF_SIZE

#define SYN_CLI_LINE_BUF_SIZE `128`

Max command line length


define SYN_CLI_MAX_ARGS

#define SYN_CLI_MAX_ARGS `16`

Max argc (including command name)


define SYN_COREDUMP_STACK_SIZE

#define SYN_COREDUMP_STACK_SIZE `128`

< Flash address for core dump sector Bytes of stack to capture


define SYN_CRC_USE_TABLE

#define SYN_CRC_USE_TABLE `1`

1=lookup table (fast), 0=bitwise


define SYN_FILTER_MAX_WINDOW

#define SYN_FILTER_MAX_WINDOW `32`

Max filter window size


define SYN_FW_USE_HMAC

#define SYN_FW_USE_HMAC `0`

HMAC-signed firmware images (requires: SHA256, BOOT)


define SYN_GFX_BACKEND

#define SYN_GFX_BACKEND `SYN_GFX_BACKEND_CANVAS`

Active renderer


define SYN_GFX_BACKEND_CANVAS

#define SYN_GFX_BACKEND_CANVAS `0`

Framebuffer canvas (default)


define SYN_GFX_BACKEND_DIRECT

#define SYN_GFX_BACKEND_DIRECT `1`

Direct-draw (no framebuffer)


define SYN_LOG_BUF_SIZE

#define SYN_LOG_BUF_SIZE `192`

Log output buffer size (bytes)


define SYN_LOG_COLOR

#define SYN_LOG_COLOR `0`

Enable ANSI color codes


define SYN_LOG_LEVEL

#define SYN_LOG_LEVEL `1`

Compile-time min level (0=TRACE..5=FATAL, 6=NONE)


define SYN_LOG_TIMESTAMP

#define SYN_LOG_TIMESTAMP `1`

Include [tick] timestamp in output


define SYN_SPINLOCK_COUNT

#define SYN_SPINLOCK_COUNT `4`

Number of spinlock IDs


define SYN_UART_MAX_INSTANCES

#define SYN_UART_MAX_INSTANCES `2`

Max simultaneous UART handles


define SYN_UART_RX_BUF_SIZE

#define SYN_UART_RX_BUF_SIZE `128`

RX ring buffer size (bytes)


define SYN_UART_TX_BUF_SIZE

#define SYN_UART_TX_BUF_SIZE `128`

TX ring buffer size (bytes)


define SYN_USE_ACTUATOR

#define SYN_USE_ACTUATOR `1`

Linear actuator (requires: PID)


define SYN_USE_ADC

#define SYN_USE_ADC `1`

ADC with oversampling + calibration


define SYN_USE_AO

#define SYN_USE_AO `1`

Active Object (requires: FSM)


define SYN_USE_AUTOTUNE

#define SYN_USE_AUTOTUNE `1`

Motor auto-tuner (requires: MOTOR_CTRL)


define SYN_USE_BIQUAD

#define SYN_USE_BIQUAD `1`

Biquad digital filter


define SYN_USE_BLAKE2S

#define SYN_USE_BLAKE2S `1`

BLAKE2s hash + keyed MAC (RFC 7693)


define SYN_USE_BOOT

#define SYN_USE_BOOT `1`

Boot manager (crash recovery)


define SYN_USE_BUTTON

#define SYN_USE_BUTTON `1`

Button debouncer (requires: FSM)


define SYN_USE_CANVAS

#define SYN_USE_CANVAS `1`

Display canvas / framebuffer


define SYN_USE_CBOR

#define SYN_USE_CBOR `1`

CBOR binary serializer


define SYN_USE_CHACHA20POLY1305

#define SYN_USE_CHACHA20POLY1305 `1`

ChaCha20-Poly1305 AEAD (RFC 8439)


define SYN_USE_CLI

#define SYN_USE_CLI `1`

Command-line interface


define SYN_USE_COAP

#define SYN_USE_COAP `1`

CoAP protocol client


define SYN_USE_COBS

#define SYN_USE_COBS `1`

COBS packet framing


define SYN_USE_COREDUMP

#define SYN_USE_COREDUMP `0`

Persistent core dump to flash (requires: FAULT, CRC)


define SYN_USE_DALI

#define SYN_USE_DALI `1`

DALI / IEC 62386 lighting stack


define SYN_USE_DATALOG

#define SYN_USE_DATALOG `1`

Data logger (ring buffer to flash)


define SYN_USE_DC_MOTOR

#define SYN_USE_DC_MOTOR `1`

DC motor (H-bridge + ramp)


define SYN_USE_DMA

#define SYN_USE_DMA `0`

DMA port abstraction


define SYN_USE_DNS

#define SYN_USE_DNS `1`

DNS resolver


define SYN_USE_ENCODER

#define SYN_USE_ENCODER `1`

Rotary encoder (quadrature)


define SYN_USE_ERRLOG

#define SYN_USE_ERRLOG `1`

Persistent error registry


define SYN_USE_ETHERCAT

#define SYN_USE_ETHERCAT `1`

EtherCAT bare-metal protocol stack


define SYN_USE_EVENT

#define SYN_USE_EVENT `1`

Event flag groups (32-bit bitmask)


define SYN_USE_EXTI

#define SYN_USE_EXTI `1`

GPIO interrupt dispatcher


define SYN_USE_FAT

#define SYN_USE_FAT `1`

FAT filesystem adapter (requires: VFS)


define SYN_USE_FAULT

#define SYN_USE_FAULT `1`

Hard Fault diagnostics


define SYN_USE_FFT

#define SYN_USE_FFT `1`

Fast Fourier Transform (FFT)


define SYN_USE_FILTER

#define SYN_USE_FILTER `1`

Digital filters (MA, EMA, Median)


define SYN_USE_FMT

#define SYN_USE_FMT `1`

Lightweight printf alternative


define SYN_USE_FSM

#define SYN_USE_FSM `1`

Table-driven finite state machine


define SYN_USE_GEO

#define SYN_USE_GEO `1`

WGS84 & 3D local ENU geodetic math


define SYN_USE_GPIO

#define SYN_USE_GPIO `1`

GPIO pin control


define SYN_USE_HEARTBEAT

#define SYN_USE_HEARTBEAT `1`

Heartbeat / keep-alive service


define SYN_USE_HPCLOCK

#define SYN_USE_HPCLOCK `1`

High-precision 64-bit system clock


define SYN_USE_HTTP

#define SYN_USE_HTTP `1`

HTTP client


define SYN_USE_HTTPD

#define SYN_USE_HTTPD `1`

HTTP server (embedded web server)


define SYN_USE_HWWDT

#define SYN_USE_HWWDT `1`

Hardware watchdog timer


define SYN_USE_I2C_ASYNC

#define SYN_USE_I2C_ASYNC `0`

Async I2C transactions


define SYN_USE_IMGUI

#define SYN_USE_IMGUI `1`

Immediate-mode GUI


define SYN_USE_JSON

#define SYN_USE_JSON `1`

JSON reader/writer


define SYN_USE_LED

#define SYN_USE_LED `1`

LED controller (blink/flash/pattern)


define SYN_USE_LFS

#define SYN_USE_LFS `1`

LittleFS adapter (requires: VFS)


define SYN_USE_LIN

#define SYN_USE_LIN `1`

LIN bus 2.1/2.2a & ISO 17987 stack


define SYN_USE_LOG

#define SYN_USE_LOG `1`

Logging system (requires: FMT)


define SYN_USE_MBUS

#define SYN_USE_MBUS `1`

M-Bus (EN 13757-2/3) protocol engine


define SYN_USE_MENU

#define SYN_USE_MENU `1`

UI menu system


define SYN_USE_MODBUS

#define SYN_USE_MODBUS `1`

Modbus RTU slave (requires: CRC)


define SYN_USE_MOTOR_CTRL

#define SYN_USE_MOTOR_CTRL `1`

Closed-loop motor controller (requires: PID)


define SYN_USE_MQTT

#define SYN_USE_MQTT `1`

MQTT 3.1.1 client


define SYN_USE_MULTICORE

#define SYN_USE_MULTICORE `0`

AMP multicore support


define SYN_USE_PARAM

#define SYN_USE_PARAM `1`

Wear-leveled parameter store (requires: CRC)


define SYN_USE_PID

#define SYN_USE_PID `1`

PID controller


define SYN_USE_PMBUS

#define SYN_USE_PMBUS `1`

PMBus 1.2/1.3 protocol & linear fmt


define SYN_USE_POOL

#define SYN_USE_POOL `1`

Fixed-size block memory pool


define SYN_USE_POWER

#define SYN_USE_POWER `1`

Power management (sleep/wake)


define SYN_USE_PROFILER

#define SYN_USE_PROFILER `1`

Task CPU profiler


define SYN_USE_PT

#define SYN_USE_PT `1`

Protothreads (cooperative coroutines)


define SYN_USE_PUBSUB

#define SYN_USE_PUBSUB `1`

Publish-subscribe message bus


define SYN_USE_RAMP

#define SYN_USE_RAMP `1`

Ramp / slew rate generator


define SYN_USE_ROUTER

#define SYN_USE_ROUTER `1`

Network router / dispatcher


define SYN_USE_SCHED

#define SYN_USE_SCHED `1`

Cooperative task scheduler


define SYN_USE_SCURVE

#define SYN_USE_SCURVE `1`

S-curve motion profile


define SYN_USE_SENSOR

#define SYN_USE_SENSOR `1`

Sensor polling framework


define SYN_USE_SEQUENCER

#define SYN_USE_SEQUENCER `1`

Timed action sequencer


define SYN_USE_SERVO

#define SYN_USE_SERVO `1`

Hobby servo (pulse-width control)


define SYN_USE_SETTINGS

#define SYN_USE_SETTINGS `1`

Settings manager (requires: PARAM, CRC)


define SYN_USE_SHA256

#define SYN_USE_SHA256 `1`

SHA-256 hash + HMAC-SHA256


define SYN_USE_SIGNAL

#define SYN_USE_SIGNAL `1`

Signal statistics (sliding window)


define SYN_USE_SMBUS

#define SYN_USE_SMBUS `1`

SMBus 1.1/2.0/3.0 protocol engine


define SYN_USE_SNTP

#define SYN_USE_SNTP `1`

SNTP time synchronization client


define SYN_USE_SOFT_PWM

#define SYN_USE_SOFT_PWM `1`

Software PWM on any GPIO


define SYN_USE_SPI_ASYNC

#define SYN_USE_SPI_ASYNC `0`

Async SPI transactions


define SYN_USE_STEPPER

#define SYN_USE_STEPPER `1`

Stepper motor (step/dir + accel)


define SYN_USE_TICKLESS

#define SYN_USE_TICKLESS `0`

Tickless idle scheduler (requires: SCHED, port sleep_until)


define SYN_USE_TIMER

#define SYN_USE_TIMER `1`

Software timers (one-shot + periodic)


define SYN_USE_TIMESYNC

#define SYN_USE_TIMESYNC `1`

GPS/RTC time discipline service


define SYN_USE_TRACE

#define SYN_USE_TRACE `1`

Event trace buffer


define SYN_USE_TRANSPORT_TCP

#define SYN_USE_TRANSPORT_TCP `1`

TCP transport layer


define SYN_USE_UART

#define SYN_USE_UART `1`

Peripheral UARTs (Modbus, GPS, etc)


define SYN_USE_VFS

#define SYN_USE_VFS `1`

Virtual File System (VFS)


define SYN_USE_WATCHDOG

#define SYN_USE_WATCHDOG `1`

Task-level watchdog monitor


define SYN_USE_WEBSOCKET

#define SYN_USE_WEBSOCKET `1`

WebSocket client


define SYN_USE_WG

#define SYN_USE_WG `1`

WireGuard VPN client (requires: BLAKE2S, CHACHA20POLY1305, X25519, SNTP)


define SYN_USE_WORKQUEUE

#define SYN_USE_WORKQUEUE `1`

Deferred work queue (ISR→main)


define SYN_USE_X25519

#define SYN_USE_X25519 `1`

X25519 Diffie-Hellman (RFC 7748)


define SYN_WG_MTU

#define SYN_WG_MTU `1420`

WireGuard tunnel MTU (inner payload)



The documentation for this class was generated from the following file src/syntropic/syn_config_template.h