Platform interface
The platform interface
The platform interface is the part of eLua that makes it easily portable between different hardware platforms by grouping the common elements of all platforms supported by eLua in a common interface. For more details about the platform interface and the overall structure of eLua in general, check this link.
The platform interface is defined in the inc/platform.h header file from the eLua source distribution. It is a collection of various components (UART, SPI, timers ...), each of them is detailed in the next subsections. Each such component has an id which is a number that identifies that component in eLua. Generally, numbers are assigned to components in their "natural" order; for example, PORTA will have the id 0, PORTB will have 1 and so on. Similarly, the second SPI interface (SPI1) of the MCU will probably have an id equal to 1. However, this is not a strict rule. The implementation of the platform interface might choose to expose only some of the peripherals (components) of the MCU, thus this rule might be broken. For example, if a board has 3 UARTs, but for some reason the second UART (UART1) is dedicated and can't be touched by eLua, then UART0 will have the id 0 and UART2 will have the id 1, so UART1 won't ever be accessible to the code.
With some exceptions (most notably the low-level support functions), the different modules supported by the platform interface are mirrored more or less accurately in separate Lua modules that can be used directly from eLua. Check the reference manual for a complete description of these modules.