Luos engine configuration
Compatible MCUs
Luos engine can manage any type of microcontrollers as long as they have a HAL. If your microcontroller is not supported yet, please contact us:
- by mail hello@luos.io
- on GitHub
Check the list of MCU families Luos engine cover:Hardware Abstraction Layers for MCU families,
Depending on what network you have, you may also configure the specific HAL of your network. By default, Luos engine uses the Robus network layer with Robus HAL.
Default Configurations
Luos engine is made to run on MCU and use the hardware peripherals of the MCU to complete communication between services. In order to configure this low-level part, Luos company provide, for many MCU families, a default configuration that can be followed to plug and play Luos engine with the chosen MCU family. The peripheral configuration is described in the luos_hal_config.h files, and can be redefined in the node_config.h file to fit with your design.
Luos engine's HAL configuration
To match pinout and fonctionality with your design, you can create or use the file node_config.h (see Luos examples). Based on the default configuration defined in luos_hal_config.h, you can define in the file node_config.h, in the section "LUOS HAL LIBRARY DEFINITION", pinout usart timer, etc.
This way, you are able to change the default hardware configuration so it needs to be called in the preprossessor variable section of your IDE to be taken into consideration for your project.
Each example provided by Luos has a node_config.h file and includes the file platformio.ini.
For example, you can redefine PTPA to fit with your design.
in luos_hal_config.h, this is defined as followed:
#ifndef PTPA_PIN
#define PTPA_PIN GPIO_PIN_8
#endif
in node_config.h this should be redefined as followed:
#define PTPA_PIN GPIO_PIN_11
There are many possible configurations that you can change, not all of them being necessary for your design:
- Pinout
- Communication
- Timer
- Flash
Function | Description | Comments |
---|---|---|
PORT_CLOCK_ENABLE | Activates clock for GPIO | Depends on port |
RX_EN_PIN/TX_EN_PIN | Chooses pinout to activate Rx/Tx comms | Necessary for special comms |
COM_TX_PIN/COM_RX_PIN | Chooses pinout for Rx/Tx comms | Adapts to the chosen serial bus |
PTPX_PIN/PTPX_IRQ/PINOUT_IRQHANDLER | Chooses pinout, IRQ and callback for the PTP line | Necessary for topology detection |
Function | Description | Comments |
---|---|---|
LUOS_COM_CLOCK_ENABLE | Activates clock for serial | Depends on serial bus |
LUOS_COM/LUOS_COM_IRQ/LUOS_COM_IRQHANDLER | Chooses serial bus, IRQ and callback | Adapts to the serial bus chosen |
LUOS_DMA_CLOCK_ENABLE | Activates clock for DMA | Necessary for for Tx |
LUOS_DMA_CHANNEL | Chooses Channel | Send Tx |
Function | Description | Comments |
---|---|---|
LUOS_TIMER_CLOCK_ENABLE | Activates clock for Timeout | Necessary for Timeout |
LUOS_TIMER/LUOS_TIMER_IRQ/LUOS_TIMER_IRQHANDLER | Chooses Timer, IRQ and callback | Necessary for Timeout |
Function | Description | Comments |
---|---|---|
BOOT_START_ADDRESS/APP_START_ADDRESS | define boot and App position | See bootloader section |
SHARED_MEMORY_ADDRESS | define shared memory position | Used to store Luos Information and alias |