This folder contains the hardware and RTOS bindings that make the Solaris Packet Protocol (SPP) runnable on real targets. Each port implements the abstract APIs defined in external/spp/hal and external/spp/osal, keeping the core protocol untouched while adapting it to specific MCUs and kernels.
hal/: hardware backends. Theesp32/example wires the generic SPI HAL (SPP_HAL_SPI_*) to the ESP-IDF driver, adds ESP-specific macros, and provides amain.exampleand simple tests to verify the integration.osal/: operating-system backends. Currentlyfreertos/implements the OSAL primitives (tasks, semaphores, queues, mutexes) on top of FreeRTOS and includes lightweight tests.
Add new targets by copying one of these folders and providing your own implementation that satisfies the HAL/OSAL contracts.
- Start from a working
external/sppbuild and include the HAL/OSAL headers from this directory in your firmware project. - Implement any missing hooks required by SPP (SPI init, task spawning, synchronization). Use the ESP32/FreeRTOS examples as reference for required function signatures.
- Rebuild the Doxygen docs in
external/spp/docsif you need updated API references for porting work (doxygen external/spp/Doxyfile).
With these ports, SPP can be reused across multiple Solaris projects simply by selecting the right HAL/OSAL backend for the hardware in use.