MicroEJ Architecture features the MicroEJ Core Engine built for a specific instructions set (ISA) and compiler.
The MicroEJ Core Engine is a tiny and fast runtime associated with a Scheduler and a Garbage Collector.
MicroEJ Architecture provides implementations of the following Foundation Libraries :
- EDC: Embedded Device Configuration.
- BON Beyond Profile (see [BON]).
- SNI Simple Native Interface ([SNI]).
- SP Shielded Plug ([SP]).
- KF Kernel & Features ([KF]).
The following figure shows the components involved.
Three Low Level APIs allow the MicroEJ Architecture to link with (and port to) external code, such as any kind of RTOS or legacy C libraries:
- Simple Native Interface (see [SNI])
- Low Level MicroEJ Core Engine (see LLMJVM)
- Low Level Shielded Plug (see LLSP)
See MicroEJ Architecture Import for usage.
On top of a MicroEJ Architecture can be imported MicroEJ Packs which provide additional features such as:
Each MicroEJ Pack is optional and can be selected on demand during the MicroEJ Platform configuration step.
This section summarizes the steps required to build a MicroEJ Platform and obtain a binary file to deploy on a board.
The following figure shows the overall process. The first three steps are performed within the MicroEJ Platform builder. The remaining steps are performed within the C IDE.
The steps are as follow:
- Create a new MicroEJ Platform configuration project. This project describes the MicroEJ Platform to build (MicroEJ Architecture, metadata, etc.).
- Select which modules provided by the MicroEJ Architecture will be installed in the MicroEJ Platform.
- Build the MicroEJ Platform according to the choices made in steps 1 and 2.
- Compile a MicroEJ Application against the MicroEJ Platform in order to obtain an application file to link in the BSP.
- Compile the BSP and link it with the MicroEJ Application that was built previously in step 4 to produce a MicroEJ Firmware.
- Final step: Deploy MicroEJ Firmware (i.e. the binary application) onto a board.