Hardware Abstraction Layer
Luos engine can work on a single node using localhost communication or it can create a network for communication between services located on different nodes. This communication should be defined and hardware-configured to fit with the chosen MCU. The files luos_hal.c and luos_hal.h define all the functions needed by Luos engine. Then, there is a HAL depending on the network layer you use to send messages through the physical bus.
The file luos_hal_config.h contains a default configuration for an MCU family and can be redefined in a configuration file to fit your design.
Luos engine's HAL
Luos engine need some peripheral access to properly work:
- TIMER: Used for the systick and for the nanosecond precision timestamping of events.
- FLASH: Stores services' aliases in the system and writes your firmware on bootloader mode.
Robus is the default network layer used by Luos engine. Here is a list of all the hardware peripherals used to drive the physical bus:
- PORT: Defines necessary pins, PTP lines, Rx/Tx, enable/disable.
- TIMER: Defines timeouts for communication.
- COM: Serial bus.
- CRC: Optionaly used to optimize the messages validation. CRC can be generated through hardware or software.
- DMA: Optionaly used to optimize the communication.