MICROEJ VEE is agnostic about peripheral hardware, drivers, software stacks or operating systems.
Thanks to MicroEJ VEE, the hardware specific software is clearly separated from the virtualization layer, which contains the sandboxed applications. The intermediate stage (between low-level software and applications) is called an abstraction layer.
Example of such functionalities are network, user interface, bluetooth. All MicroEJ Abstraction Level APIs are defined in C header
files: a set of functions that must be implemented, most of the time using languages such as ASM, C or C++.
MicroEJ provides generic abstraction layers for typical peripherals used across various industries.
Any engineer can define its own Abstract Layer, to connect a specific peripheral to an API provided by its tuned VEE.
MicroEJ VEE supported MCU/MPU/SoC architectures are here.
The Core abstraction layers provides the basis features needed by the MEJ32 such as a timer, a standard output and the current time. This abstraction layer usually relies on an RTOS or an OS but it can be implemented using a hardware timer on baremetal systems.
Sample of supported implementations
UI abstraction layers defines the API to connect VEE with the various inputs (buttons, touch, switches, etc.) and the outputs (serigraph display, LCD displays, LEDs, etc.) of a device. The software graphical engine shall connect with the display driver, dialog with optional graphical hardware acceleration (GPU). These Abstraction Layer is tightly coupled with the display connection type, the LCD controller, the pixel format, etc.
Sample of supported implementations
Filesystem abstraction layers implements standard file operations on top of a persistent storage.
Sample of supported implementations
Network abstraction layers provides TCP, UDP and network management capabilities to the application network library. They depend usually on an IP software stack but they can also be implemented on top of a network hardware module.
Sample of supported implementations
Wi-Fi abstraction layer is an extension of the network layer. It includes functions to list Wi-Fi access points, connect to one or create one.
Sample of supported implementations
SSL/TLS abstraction layer is an extension of the network layer. It provides the capability to manage secured client or server sockets for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. These abstraction layers are implemented on top of SSL/TLS software libraries.
Sample of supported implementations
Cryptography abstraction layers provides implementation of cryptographic algorithms used by the security application library.
Sample of supported implementations
These abstraction layers can use cryptography libraries and hardware acceleration.
BLE abstraction layers provides Bluetooth Low Energy access for a peripheral.
Sample of supported implementations
Get access to our featured starter kits (available with or without hardware) to let you try and evaluate our technology. Happy coding!