SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
© IS2T S.A. 2015-2016. All rights reserved.
THE OS FOR IOT
La French Tech, Rennes – April 19, 2016
vincent.perrier@microej.com
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.
AGENDA
• MicroEJ Overview
• From Embedded to IoT
• MicroEJ SDK
• MicroEJ Operating System
• MicroEJ OS Core
• Conclusion
MICROEJ OVERVIEW
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
PARTNERS & CONSORTIA
HARDWARE
SERVICES
SOFTWARE
ALLIANCES
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
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
APPLICATION
STORE
FOR
APPLICATION
DEPLOYMENT
SDK:
OS & TOOLS
FOR
DEVICE
SOFTWARE
DEVELOPMENT
STUDIO
FOR
APPLICATION
DEVELOPMENT
MICROEJ FLAGSHIP PRODUCT LINE
FROM EMBEDDED TO IOT
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.
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.
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.
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.
MICROEJ SDK
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.
MICROEJ SDK COMPONENTS
SDK
TARGET
HOST
WORKBENCH
OPERATING SYSTEM
RESIDENT APPLICATIONS
Core
Libraries
Application Designer
Simulator
OS
Builder
IDE
Virtual Device
Builder
GUI
DesignerAPP 1 APP 2
BSP
Legacy
APP 3
Firmware
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
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
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
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
MICROEJ OPERATING SYSTEM
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
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
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
MICROEJ OS GUI APP EXAMPLE
• Cortex-M4 @ 180MHz
• 2D DMA, HW acceleration
• 32-bit col. WQVGA, touch, transparency
• Display refresh: 50 frames/s
• Processing: 18% CPU load
• Design from scratch, 1 engineer, 1 day!
Memory Requirements
Flash 161KB RAM 11KB
Engine (runtime & GC) 28KB Engine 1KB
Libraries (graphics, com, float…) 114KB Native Stack 5KB
Graphical resources (images) 7KB
Application 12KB Application 5KB
MicroEJ needs
GUI EXAMPLES FOR MCUS
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
EXAMPLE 1: MICROEJ FOR RENESAS SYNERGY
Synergy Microcontrollers
Tools
& Kits
Synergy Software Package (SSP)
BSP
ThreadX®
RTOS
HAL Drivers
Stacks
Middleware
Libraries
Native
Application
Framework
Solutions
Synergy
Gallery
Third-Party
NativeLibrary
BSP
OPERATING SYSTEM
Native SW
MicroEJ Application SW + GUI
EXAMPLE 2: MICROEJ FOR AVNET VISIBLE THINGS*
Visible Things BSP/RTOS/Libs
MicroEJ OS
*WIP
MICROEJ OS CORE
MICROEJ OS CORE
Secure multi-application engine
• Optimized Java virtual machine
• Running its own compact HW-
independent code
• Performing runtime checks
• “Green thread” integration to RTOS
Languages, utilities & test
• Efficient Java-to-C native interface
• Utilities, logger, localization
• Test suite harness (for HIL testing)
• Performance traces: frame-per-
second (FPS), CPU load (%),
memory, threads
KEY FIGURES:
Soft Core (virtualization)
+ Smart RAM Optimizer
< 30 KB of Flash
Multi-app add-on < 10 KB of Flash
RAM footprint < 1.5 KB
Boot time < 2ms
on Cortex-M3 at 120
MHz
RTOS stack size < 1KB
Garbage
Collected
Heap
Java
Stacks
Optional
Loader
MicroEJ VM Native
Interface
Acceleration
Unit
Exceptions
Security
Native
Stacks
Runtime Data
MicroEJ Core Engine Components
MICROEJ CORE
ENGINE
High speed execution engine
• Canonical processor
• 32-bit instructions set
• ~200 instructions,
high density (compact)
• Multitasking operation
• Automatic memory
management
(garbage collector)
• Exception handling
• Integration with native
C/asm
Off-board ELF Linker
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
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
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
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
CONCLUSION
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
RESOURCES
• MicroEJ SDK free trial
http://www.microej.com/get-started/
• Includes examples, platforms, libraries,
BSP, user manuals, reference manuals,
getting started
• MicroEJ Studio free download
http://store.microej.com/
• Application notes, binary demos
http://www.microej.com/downloads/
• More: libraries (source/bin), platforms
(source/bin), examples
http://developer.microej.com/
https://github.com/MicroEJ
THANK YOU!

Contenu connexe

Tendances

Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSMediaTek Labs
 
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...Embarcados
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...MediaTek Labs
 
Axessor_Brochure_US_04-16
Axessor_Brochure_US_04-16Axessor_Brochure_US_04-16
Axessor_Brochure_US_04-16Axel de Blok
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionIntel® Software
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACMediaTek Labs
 
MediaTek IoT power management webinar
MediaTek IoT power management webinarMediaTek IoT power management webinar
MediaTek IoT power management webinarMediaTek Labs
 
Arduino camera interfacing OV7670
Arduino camera interfacing OV7670Arduino camera interfacing OV7670
Arduino camera interfacing OV7670Somnath Sharma
 
MediaTek Labs Webinar: Getting Started with LinkIt ONE
MediaTek Labs Webinar: Getting Started with LinkIt ONEMediaTek Labs Webinar: Getting Started with LinkIt ONE
MediaTek Labs Webinar: Getting Started with LinkIt ONEMediaTek Labs
 
Introduction ciot workshop premeetup
Introduction ciot workshop premeetupIntroduction ciot workshop premeetup
Introduction ciot workshop premeetupBeMyApp
 
MediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Labs
 
Nio100 product guide 20150520
Nio100 product guide 20150520Nio100 product guide 20150520
Nio100 product guide 20150520和得 王
 
Introduction to epid
Introduction to epidIntroduction to epid
Introduction to epidBeMyApp
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitIntel® Software
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityQualcomm Developer Network
 
Geek Pic-Nic Master Class
Geek Pic-Nic Master ClassGeek Pic-Nic Master Class
Geek Pic-Nic Master ClassMediaTek Labs
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTPôle Systematic Paris-Region
 
Creating a successful IoT product with MediaTek Labs
Creating a successful IoT product with MediaTek LabsCreating a successful IoT product with MediaTek Labs
Creating a successful IoT product with MediaTek LabsMediaTek Labs
 

Tendances (20)

Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
 
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...
Webinar: Plataforma Renesas Synergy – Construindo sua aplicação MQTT com anal...
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
 
Axessor_Brochure_US_04-16
Axessor_Brochure_US_04-16Axessor_Brochure_US_04-16
Axessor_Brochure_US_04-16
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT Edition
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
 
MediaTek IoT power management webinar
MediaTek IoT power management webinarMediaTek IoT power management webinar
MediaTek IoT power management webinar
 
Arduino camera interfacing OV7670
Arduino camera interfacing OV7670Arduino camera interfacing OV7670
Arduino camera interfacing OV7670
 
MediaTek Labs Webinar: Getting Started with LinkIt ONE
MediaTek Labs Webinar: Getting Started with LinkIt ONEMediaTek Labs Webinar: Getting Started with LinkIt ONE
MediaTek Labs Webinar: Getting Started with LinkIt ONE
 
Introduction ciot workshop premeetup
Introduction ciot workshop premeetupIntroduction ciot workshop premeetup
Introduction ciot workshop premeetup
 
MediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 Webinar
 
Nio100 product guide 20150520
Nio100 product guide 20150520Nio100 product guide 20150520
Nio100 product guide 20150520
 
Introduction to epid
Introduction to epidIntroduction to epid
Introduction to epid
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything Connectivity
 
Geek Pic-Nic Master Class
Geek Pic-Nic Master ClassGeek Pic-Nic Master Class
Geek Pic-Nic Master Class
 
The Future Mobile Security
The Future Mobile Security The Future Mobile Security
The Future Mobile Security
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
Esp8266 basics
Esp8266 basicsEsp8266 basics
Esp8266 basics
 
Creating a successful IoT product with MediaTek Labs
Creating a successful IoT product with MediaTek LabsCreating a successful IoT product with MediaTek Labs
Creating a successful IoT product with MediaTek Labs
 

Similaire à MicroEJ, the OS for IoT

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleMicroEJ
 
Bevywise - IoT / IIoT Portfolio
Bevywise - IoT / IIoT  PortfolioBevywise - IoT / IIoT  Portfolio
Bevywise - IoT / IIoT PortfolioRanjith Kumar
 
Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Eurotech
 
mbed Connect Asia 2016 Intro to mbed OS
mbed Connect Asia 2016 Intro to mbed OSmbed Connect Asia 2016 Intro to mbed OS
mbed Connect Asia 2016 Intro to mbed OSarmmbed
 
La technologie Java embarquée pour des plateformes de services riches
La technologie Java embarquée pour des plateformes de services richesLa technologie Java embarquée pour des plateformes de services riches
La technologie Java embarquée pour des plateformes de services richescharlotte75009
 
LAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical OverviewLAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical OverviewLinaro
 
Eclipse IoT Overview
Eclipse IoT OverviewEclipse IoT Overview
Eclipse IoT OverviewIan Skerrett
 
Kura M2M IoT Gateway
Kura M2M IoT GatewayKura M2M IoT Gateway
Kura M2M IoT GatewayEurotech
 
Dusun Gateway Hardware For Developer White Paper.pdf
Dusun Gateway Hardware For Developer White Paper.pdfDusun Gateway Hardware For Developer White Paper.pdf
Dusun Gateway Hardware For Developer White Paper.pdfYongxiaoCheng
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Ken Owens
 
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)Open Mobile Alliance
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)Balena
 
IoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemIoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemMarco Dal Pino
 
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfBest Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfNishaadequateinfosof
 

Similaire à MicroEJ, the OS for IoT (20)

Software virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scaleSoftware virtualization lessons for extreme IoT portability and scale
Software virtualization lessons for extreme IoT portability and scale
 
IoT architecture
IoT architectureIoT architecture
IoT architecture
 
Boodskap overview
Boodskap overview Boodskap overview
Boodskap overview
 
Bevywise - IoT / IIoT Portfolio
Bevywise - IoT / IIoT  PortfolioBevywise - IoT / IIoT  Portfolio
Bevywise - IoT / IIoT Portfolio
 
Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation Developing Interoperable Components for an Open IoT Foundation
Developing Interoperable Components for an Open IoT Foundation
 
mbed Connect Asia 2016 Intro to mbed OS
mbed Connect Asia 2016 Intro to mbed OSmbed Connect Asia 2016 Intro to mbed OS
mbed Connect Asia 2016 Intro to mbed OS
 
La technologie Java embarquée pour des plateformes de services riches
La technologie Java embarquée pour des plateformes de services richesLa technologie Java embarquée pour des plateformes de services riches
La technologie Java embarquée pour des plateformes de services riches
 
LAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical OverviewLAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical Overview
 
Eclipse IoT Overview
Eclipse IoT OverviewEclipse IoT Overview
Eclipse IoT Overview
 
Kura M2M IoT Gateway
Kura M2M IoT GatewayKura M2M IoT Gateway
Kura M2M IoT Gateway
 
VenutoResume
VenutoResumeVenutoResume
VenutoResume
 
Dusun Gateway Hardware For Developer White Paper.pdf
Dusun Gateway Hardware For Developer White Paper.pdfDusun Gateway Hardware For Developer White Paper.pdf
Dusun Gateway Hardware For Developer White Paper.pdf
 
nathan
nathannathan
nathan
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
 
Sa*ple
Sa*pleSa*ple
Sa*ple
 
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
 
Windows for IOT
Windows for IOTWindows for IOT
Windows for IOT
 
IoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemIoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot system
 
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfBest Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
 

Dernier

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Dernier (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

MicroEJ, the OS for IoT

  • 1. © IS2T S.A. 2015-2016. All rights reserved. THE OS FOR IOT La French Tech, Rennes – April 19, 2016 vincent.perrier@microej.com
  • 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.
  • 17. MICROEJ SDK COMPONENTS SDK TARGET HOST WORKBENCH OPERATING SYSTEM RESIDENT APPLICATIONS Core Libraries Application Designer Simulator OS Builder IDE Virtual Device Builder GUI DesignerAPP 1 APP 2 BSP Legacy APP 3 Firmware
  • 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
  • 26. MICROEJ OS GUI APP EXAMPLE • Cortex-M4 @ 180MHz • 2D DMA, HW acceleration • 32-bit col. WQVGA, touch, transparency • Display refresh: 50 frames/s • Processing: 18% CPU load • Design from scratch, 1 engineer, 1 day! Memory Requirements Flash 161KB RAM 11KB Engine (runtime & GC) 28KB Engine 1KB Libraries (graphics, com, float…) 114KB Native Stack 5KB Graphical resources (images) 7KB Application 12KB Application 5KB MicroEJ needs
  • 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
  • 29. EXAMPLE 1: MICROEJ FOR RENESAS SYNERGY Synergy Microcontrollers Tools & Kits Synergy Software Package (SSP) BSP ThreadX® RTOS HAL Drivers Stacks Middleware Libraries Native Application Framework Solutions Synergy Gallery Third-Party NativeLibrary BSP OPERATING SYSTEM Native SW MicroEJ Application SW + GUI
  • 30. EXAMPLE 2: MICROEJ FOR AVNET VISIBLE THINGS* Visible Things BSP/RTOS/Libs MicroEJ OS *WIP
  • 32. MICROEJ OS CORE Secure multi-application engine • Optimized Java virtual machine • Running its own compact HW- independent code • Performing runtime checks • “Green thread” integration to RTOS Languages, utilities & test • Efficient Java-to-C native interface • Utilities, logger, localization • Test suite harness (for HIL testing) • Performance traces: frame-per- second (FPS), CPU load (%), memory, threads KEY FIGURES: Soft Core (virtualization) + Smart RAM Optimizer < 30 KB of Flash Multi-app add-on < 10 KB of Flash RAM footprint < 1.5 KB Boot time < 2ms on Cortex-M3 at 120 MHz RTOS stack size < 1KB
  • 33. Garbage Collected Heap Java Stacks Optional Loader MicroEJ VM Native Interface Acceleration Unit Exceptions Security Native Stacks Runtime Data MicroEJ Core Engine Components MICROEJ CORE ENGINE High speed execution engine • Canonical processor • 32-bit instructions set • ~200 instructions, high density (compact) • Multitasking operation • Automatic memory management (garbage collector) • Exception handling • Integration with native C/asm Off-board ELF Linker
  • 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
  • 40. RESOURCES • MicroEJ SDK free trial http://www.microej.com/get-started/ • Includes examples, platforms, libraries, BSP, user manuals, reference manuals, getting started • MicroEJ Studio free download http://store.microej.com/ • Application notes, binary demos http://www.microej.com/downloads/ • More: libraries (source/bin), platforms (source/bin), examples http://developer.microej.com/ https://github.com/MicroEJ