How saltek1/nexus-embedded-systems-portfolio works
Nexus is an STM32F4 embedded-systems portfolio progressing from bare-metal sensing to event-driven, low-power, multitask, and safety-oriented RTOS firmware. The principal workflow is sensor acquisition, application/state processing, and UART telemetry; later stages add event flags, power control, RTOS queues, filtering, persistence, supervision, and recovery. The graph combines documented milestone capabilities with sampled call paths. Several Guardian task relationships are intentionally left unconnected because their implementations were not sampled.
Main entry points: bsp_uart.c UART BSP · main.c Guardian Main · bsp_adc.c ADC BSP · app_logic.c Low Power Logic
Components 29
Bare-Metal Foundation
- Core Main
Nexus-Core/Core/Src/main.c - Core FSM
Nexus-Core/App/Logic/fsm.c - Core Logging
Nexus-Core/App/Services/log_service.c
DAQ Variants
- Low Power Main
Nexus-Core-Low-Power-DAQ/Core/Src/main.c - Low Power Logic
Nexus-Core-Low-Power-DAQ/App/Logic/app_logic.c - Sleep Manager
Nexus-Core-Low-Power-DAQ/App/Services/power_manager.c - Event Main
Nexus-Event-Interrupt-DAQ/Core/Src/main.c - Event Logic
Nexus-Event-Interrupt-DAQ/App/Logic/app_logic.c - Event Manager
Nexus-Event-Interrupt-DAQ/App/Services/event_manager.c
RTOS Runtime
- Multitask Main
Nexus-RTOS-Multitask-DAQ/Core/Src/main.c - RTOS IPC
Nexus-RTOS-Multitask-DAQ/App/Services/rtos_manager.c - Sensor Queue
Guardian Safety
- Guardian Main
Nexus-RTOS-Guardian-Core/Core/Src/main.c - Control FSM
Nexus-RTOS-Guardian-Core/App/Logic/fsm.c - Safety Supervisor
Nexus-RTOS-Guardian-Core/App/Supervisor/supervisor.c - Acquire Task
Nexus-RTOS-Guardian-Core/App/Services/acquire_task.c - Processing Tasks
Nexus-RTOS-Guardian-Core/App/Services/processing_tasks.c - Signal Filters
Nexus-RTOS-Guardian-Core/App/Services/filters.c - Telemetry Service
Nexus-RTOS-Guardian-Core/App/Telemetry/telemetry.c - Flash Persistence
Nexus-RTOS-Guardian-Core/App/Services/flash_service.c - System Configuration
Nexus-RTOS-Guardian-Core/App/Common/system_config.c - Hardware Watchdog
Nexus-RTOS-Guardian-Core/Core/Src/iwdg.c
Hardware Abstraction
Other components
- Host Operator
- Analog Sensor
- Nonvolatile Memory
- UART Console
Connections 25
- Analog Sensor → ADC BSP: provides samples
- Core Main → Core FSM: updates FSM
- Core Main → Core Logging: writes startup log
- Low Power Main → Low Power Logic: updates logic
- Low Power Logic → ADC BSP: reads sensor
- Low Power Logic → UART BSP: sends telemetry
- Low Power Main → Sleep Manager: enters sleep
- Event Main → Event Logic: updates logic
- Event Main → Event Manager: initializes events
- Event Manager → Event Logic: signals readiness
- Multitask Main → RTOS IPC: starts RTOS
- RTOS IPC → Sensor Queue: queues samples
- RTOS IPC → UART Console: logs messages
- Guardian Main → Flash Persistence: loads state
- Guardian Main → Flash Persistence: saves state
- Guardian Main → UART BSP: prints boot status
- Guardian Main → Safety Supervisor: starts supervision
- Safety Supervisor → Hardware Watchdog: manages recovery
- Acquire Task → ADC BSP: acquires samples
- Processing Tasks → Signal Filters: processes samples
- Telemetry Service → UART BSP: exports telemetry
- Flash Persistence → Nonvolatile Memory: persists logs
- ADC BSP → STM32 HAL: uses HAL
- UART BSP → STM32 HAL: uses HAL
- UART BSP → Host Operator: reports status