Skip to main content
Version: 2.9.0

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.

Discover the configuration of Luos engine HAL.

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 HAL

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.