2. LEGAL DISCLAIMER
All rights reserved.
Information, technical data and tutorials contained in this document are proprietary under copyright Law of
Industrial Smart Software Technology (IS2T S.A.) operating under the brand name MicroEJ®.
Without written permission from IS2T S.A., copying or sending parts of the document or the entire document by
any means to third parties is not permitted. Granted authorizations for using parts of the document or the entire
document do not mean IS2T S.A. gives public full access rights.
IS2T®, MicroEJ® and all relative logos are trademarks or registered trademarks of IS2T S.A. in France and other
Countries.
Java™ is Sun Microsystems' trademark for a technology for developing application software and deploying it in
cross-platform, networked environments. When it is used in this documentation without adding the ™ symbol, it
includes implementations of the technology by companies other than Sun.
Java™, all Java-based marks and all related logos are trademarks or registered trademarks of Sun Microsystems
Inc., in the United States and other Countries.
Other trademarks are proprietary of their respective owners.
3. AGENDA
• MicroEJ Overview
• From Embedded to IoT
• MicroEJ SDK
• MicroEJ Operating System
• MicroEJ OS Core
• Conclusion
5. ABOUT MICROEJ
Independent Software Vendor, global player in the IoT industry
• http://www.microej.com/about
• Software tool & runtime licenses
• Professional services, training & consulting
KEY FINANCIALS
• $5M Series A funding end 2011 – $20M R&D total investment
• Already 1 million devices shipped with MicroEJ
IS2T S.A. founded in 2004 – offices in France, Germany, USA
Expertise in embedded, virtualization, software engineering & process
Partnerships with key IoT, silicon, embedded SW and HW (EMS) vendors
7. RTOS Linux
OPERATING SYSTEMS FOR ENABLING THE IOT
Source: ARM
Average Selling Price of a Semiconductor Chip
>$25$10-15$3-6$1-2
Volume
75%
IoT = “sub-gig” things:
• Processor < GHz
• Memory < GB
25%
SW Foundation
8. MICROEJ IOT END-TO-END VALUE CHAIN
MicroEJ enables secured cloud-based services
IOT DEVICES
SW CONTENT
MANAGEMENT
APPLICATION
STORE
DEVICE
MANAGEMENT
DATA
ANALYTICS
GATEWAY
P
P
P
P
P MicroEJ Partners
P
11. UDP-TCP/IP, HTTP, REST…
SSL/TLS, SAML, DTLS…
Ethernet, USB, Serial (UART, I2C,
SPI), CAN…
2G/3G/4G, Wi-Fi, Bluetooth, Z-
Wave, WM-Bus, NFC, ZigBee…
HW
FW
SW
GUI
ServerClient
Proprietary
Over Standards
RTOS
BSP/HAL
Flash
RAM
Disk
MCU
FPU
DSP
Actuators
Analog/Digital I/Os
Libs
Stacks
Proprietary
Over Standards
Device Management
• Content: FW
• Operations
Sensors
Smart devices need to be able to acquire,
compute and store data, and perform
several tasks.
Connected devices need to support
many connectivity, communications and
security standards.
Interactive devices provide graphical and
touch interface.
Managed devices allow software content
update and operations management
from the Cloud.
12. XMPP, AMQP, MQTT, CoAP, DDS,
6LoWPAN, AllJoyn…
UDP-TCP/IP, HTTP, REST…
SSL/TLS, SAML, DTLS…
Ethernet, USB, Serial (UART, I2C,
SPI), CAN…
2G/3G/4G, Wi-Fi, Bluetooth, Z-
Wave, WM-Bus, NFC, ZigBee…
XML, JSON…
Standards
Over Standards
Services
HW
FW
SW
GUI
RTOS
BSP/HAL
Flash
RAM
Disk
MCU
FPU
DSP
Actuators
Analog/Digital I/Os
Libs
Stacks
Standards
Over Standards
Device Management
• Content: FW
• Operations
• Store: Apps
• Data
Sensors
Standards
Over Standards
ServicesAgentsApps GWY
IoT devices use standard frameworks and
agents for connecting to services in the
Cloud that provide software content and
operations management.
They leverage data streams and formats
for cloud-based analytics.
They may run multiple applications that
can be downloaded from an online store.
13. VERTICAL
INTEGRATION
Lib
App AppApp App
RTOS RTOS
Lib
?
Lib
Lib
Lib
?
?
API
API
Integrate
Develop
Integrate
API API API
Develop
Port
Fragmented HW
API API API
Embedded RTOS solutions have
efficiently addressed SW bring-up on
fragmented hardware by providing
vertical integration layers for each
combination (ISA/compiler/libs).
But they may require integration
work for the BSP and native libraries.
They may not provide ready-to-use
solutions for enabling IoT and cloud-
ready SW capabilities.
Applications still need to be ported
from one vertical silo to another,
further fragmenting developers
communities.
14. RTOS RTOS RTOS
App AppApp App
API
RTOS
API API APIAPI
Develop.
HORIZONTAL
INTEGRATION
Virtualization
Fragmented HW
The MicroEJ® Operating System
leverages the best of both worlds:
- The scalability of embedded RTOS
solutions for SW bring-up
- The large community of mobile &
PC developers for efficient SW
applications development
It provides APIs both for BSP/RTOS/libs
integration and SW app development.
It enables horizontal integration of OS
services thanks to a virtualization layer
that isolates application layers from
lib/RTOS/BSP/compiler/ISA layers.
16. With MicroEJ SDK, embedded software
reaches the industrialization era
Like IT for PC’s and servers in the 90’s
Like smartphones and tablets in the 2000’s
Agility & Security
IP Protection
Mainstream
Programming Techniques
Scalable
Operating System
Hardware
Virtualization
Fast development, massive deployment.
18. MICROEJ ECLIPSE-BASED IDE
IDE based on Eclipse
• Java and C++/C code editing
• Project management
• Launcher
• Target C/C++ toolchain integration
Test & Optimization Tools
• Code Coverage Analyzer
• Test Suite Engine
• Stack Trace Inspector
• Memory Map Inspector
• Heap Inspector
WORKBENCH
Application Designer
Simulator
OS
Builder
IDE
Virtual Device
Builder
GUI
Designer
19. MICROEJ SPECIFIC TOOLS
MicroEJ Application Designer
• MicroEJ Application development
• Java compiler and tools
• MicroEJ C Header Generator
• Classpath Dependencies
Analyzer*
• Java debugger
• Shielded Plug compiler and server
• MicroEJ GUI Designer
• Image Generator
• Font Designer
• Font Generator
MicroEJ Simulator
• Simulator with Hardware-In-the-
Loop (HIL) testing infrastructure
MicroEJ OS Builder
• Platform Builder : Core and
Libraries configuration & build
• Java language + ELF Smart Linker
(SOAR®)
MicroEJ Virtual Device Builder
• Front Panel Simulator Designer
*WIP
20. SIMULATION ENVIRONMENT
Rapid Prototyping
• Prototype before having hardware available
Build your virtual device
• Front Panel for UI (buttons, LCD display, LEDs, etc.)
• Sensors & actuators for embedded systems
• Network, USB, file system, serial…
Build your peripheral extensions (mocks)
• Software mocks connected to the simulation engine
• Hardware mocks connected to the PC workstation
Virtual Device Firmware
BSP
Mock
MicroEJ
Simulator
HW MOCKS
MicroEJ
Libraries
BSP
MicroEJ
Core
HARDWARE
BINARY
APP
Run the same binary
app code on both HW
and simulator
21. MicroEJ SDK
• Platform development
• App development
SINGLE-APP DEVELOPMENT WORKFLOW
Application
MicroEJ OS
+ Libraries
+ BSP
Platform
Executable
Binary
MicroEJ Studio
• App development
MicroEJ SDK
• Firmware development
MicroEJ OS
+ Libraries
+ BSP
Platform
App App App
MicroEJ
Firmware
MicroEJ
Firmware
App App
App App App
App binaries
(built for a specific firmware)
Deployment
to
Infrastructure
Program
Program
Dynamic
Load & Install
App
Resident App
Monolithic
MicroEJ
Firmware
Monolithic
MicroEJ
Firmware
MicroEJ
Firmware
Link
Executable
Binary
Link
MULTI-APP DEVELOPMENT WORKFLOW
store
23. MICROEJ OPERATING SYSTEM
Platform
OPERATING SYSTEM
BSP/DRIVERS
TARGET HARDWARE
APPLICATIONS
APP 1 APP 2 APP 3 APP 4 …
CORE
Secure Multi-Application Engine
CORE
Memory Management
CORE
Languages/Utilities/Test
CORE
CPU & Power Management
CORE
Components Management
IO
Sensors/Actuators/GPIO
COMM
Connectivity Wired/Wireless
STORE
Application Management
NUM
Numerical Methods
FILE & DATA
Persistence/File System
GUI
Graphics/Touch
NET & SEC
Network Protocols & Security
IOT
IoT/Cloud Middleware
24. SECURE MICROEJ OPERATING SYSTEM
ADVANTAGES HOW:
Hardware independence
• True Portability of BINARY SW across HW (no
recompilation needed)
Micro-Virtualization layer (30KB)
• Formal Separation between HW-dependent-
SW and HW-independent-SW
Safe SW programming & execution Build & runtime checks, Sandboxing
Full set of SW foundation blocks High-level API & stacks
Secured investments
• Legacy code integration
Multi-language support: Java, C/C++ / ASM
Future-proof
• SW updates
• New SW downloads
Multi-application framework
• Build-time configuration
• Run-time add-ons
HW1 HW2 HW3
SW
MicroEJ Operating System
HW dependent SW
HW independent SW
25. MICROEJ ENABLES APPLICATION-DRIVEN SERVICES
Offering user experience similar to
smartphones & tablets:
• User goes to application store,
browses and selects application
• Application is downloaded and
installed on selected device
owned by user
• User uses installed application on
device
Enabling new business models for IoT
devices:
• Delivering new services to end-
users
• Exploiting data generated by
devices (data analytics in cloud)
Application Store
28. MICROEJ OS FOUNDATIONS
HW FOUNDATIONS
MCU/MPU/SoC architectures and
starter kits
• ARM Cortex M/A
• MIPS, RX, PowerPC, TriCore
SW FOUNDATIONS
Hardware-dependent Software
• Bare metal/any RTOS
• BSP, drivers, libraries
Native SW SDKs
Your configuration already supported off-the-shelf
or ported in few days
34. EASY RTOS INTEGRATION (GREEN THREAD)
Multi-threaded Java execution environment within a single RTOS task
• True portability: same thread scheduling policy across all RTOS ports
• Full control of CPU resource usage
RTOS
Native tasks
(C/ASM)
1x native task
(Java language)
GUI hardware
LCD, buttons, …
Applicative hardware
Sensors, actuators, …
Javathreads
Shielded Plug
(SP)
Simple Native Interface
(SNI)
SP
SNI
SP
SNI
RTOS Examples:
● Simple scheduler
● µC/OS, ThreadX, RTX
● FreeRTOS
● Linux, Integrity, VxWorks
● Custom RTOS
35. MICROEJ OS CORE
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)
CPU & Power management
• Control of CPU allocation per app
• Management of app permissions to access system resources
Components management
• Static and dynamic code loader
• Incremental (no need to re-flash/re-build all), binary re-mappable in RAM/Flash
• Management of binary app lifecycle
• Sandboxing
• Isolating binary app execution contexts
• Allowing inter-app communications
• Controlling OS API available to apps
36. EASY JAVA-TO-C INTERFACE
SNI (ESR 012): SIMPLE NATIVE INTERFACE
• Call C/ASM function from Java
program
• Arguments: base types
• int, float, double, char
• Share arrays of base types
• Zero copy buffers and compatible
with DMA systems
T
I
M
E
Immortals
Java
heap
C
heap
Java methods
C functions
Call C
Return to Java
www.e-s-r.net
T
I
M
E
Immortals
Java methods
C functions
Java
heap
C
heap
Immortal objects:
• Live in a separate heap (immortal heap)
• Are not touched by garbage collector
• Have fixed addresses that can be shared with C world
37. MULTI-APP SANDBOXING
Built OS defines set of API &
resources available to apps
• Can’t access directly to code,
objects, threads
• No (bypassing) native code call
allowed
• No inter-dependencies
between apps
• Fully managed in binary
• Install, uninstall, start, stop
HARDWARE
BSP (= DRIVERS + RTOS)
RTOS
Task 1
MicroEJ Task
RTOS
Task 2
RTOS
Task n
MicroEJ CoreMemory Mgmt
Components Management
Resource Mgmt
Predictable Thread Scheduler
MicroEJ Libraries
App
1
App
2
App
3
App
4
App
5
App
n
Downloaded
App
Isolation
Layer
Resident
39. THE FUSION BETWEEN EMBEDDED AND INTERNET
Fragmented HW
Complex SW
Internet pace
Mobile
experience
Cloud services
Big Data
Low-cost MCU
Resource
constrained
Sensors &
actuators
Data streams
Portability
Scalability
IoT-ready
Community,
methods &
tools for
velocity
Footprint
Performance
Unified IoT
platform
IoT secured
connectivity
& frameworks
Multi-app OS
GUI & Store
for IoT
EMBEDDED
INTERNET
MICROEJ
OS, TOOLS & STORE