VM Embedded Systems Development

TECHNOLOGY

What is MEJ32 For Embedded Systems?

MEJ32 is a 32-bit software processor optimized for various embedded systems processors including ARM Cortex-M, ARM Cortex-A, Renesas RX and V850, MIPS32, Infineon TriCore, and Tensilica Xtensa.

MEJ32 provides a unique J2VM Instruction Set Architecture (ISA) for MCU/MPU/SoC : the SOAR. This exclusive MicroEJ feature acts as a linker between the Java source code and the final applications that will run on MicroEJ runtime.

Thanks to MicroEJ Virtual Execution Environment runtime, applications can be safely ported from one embedded system to another with minimum adapation, thanks to full virtualization and sandboxing security.

For hardware version of the MEJ32 core, please contact MicroEJ for availability.

See Supported Architectures
TECHNOLOGY

Trusted Multi-Sandbox Virtual Machine

  • High speed execution engine
  • Canonical processor:
    • 32-bit instructions set
    • 204 instructions
    • High code density
  • Built-in Multitasking operation system
  • Smart RAM optimizer:
    • Automatic memory management
    • No-fragmentation
    • Can be deterministic and/or incremental
  • Exception handling
  • Integration with many languages (Java, JS, Python, C/ASM)
  • Off-board ELF Linker, with optional on-board dynamic loader
  • SOAR tool to translate J2VM core Industrial Standard Architecture (ISA) to MEJ32 ISA (in order to run Java/Python/JS code)
TECHNOLOGY

Fast and Easy Port

  • “Green thread” integration to RTOS ➔ one timer needed
  • Holistic Low Power approach ➔ leverage Low Power SoC architectures
  • Available for all types of processors
  • Support in a few weeks for new CPU core ISA
TECHNOLOGY

Key Figures

  • Core Engine: <30 KB of Flash
  • TEE add-on (multi-sandbox): <20 KB of Flash
  • RAM Footprint: <1.5 KB
  • Boot time: <2 ms
  • Software Implementation RTOS stack size: <1KB
TECHNOLOGY

Languages, Utilities & Test

  • Efficient cross language native interface
  • Utilities, logger, localization
  • Test suite harness (for HIL testing)
  • Performance traces: frame-per-second (FPS), CPU load (%), memory, threads
TECHNOLOGY

CPU & Power Management

  • Efficient power management schemes
  • Control of CPU and RAM allocation per app
  • App permissions control to access system resources
TECHNOLOGY

Memory Management

  • Smart RAM optimizer (garbage collector)
  • Management of MicroEJ objects lifecycle
  • No memory leaks or rogue pointers, no fragmentation
  • One shared C-Java heap (immortal objects)
  • Static objects in flash (immutable objects)
TECHNOLOGY

Components Management

  • Static and dynamic code loader
  • Binary app lifecycle & Sandboxing
  • Allowing inter-app communications

How Can I Know My Hardware Is Supported?

MicroEJ offers MICROEJ MEJ32 implementations for a wide range of popular hardware architectures. Examples of MICROEJ VEE are available for dedicated evaluation boards.
Follow the link below in order to find out if your hardware is supported and which MICROEJ VEE implementation is right for your project according to your processor core architecture and C tool chain.

Supported Architectures