microej, the os for iot

41
© IS2T S.A. 2015-2016. All rights reserved. THE OS FOR IO T La French Tech, Rennes – April 19, 2016 [email protected]

Upload: microej

Post on 15-Jan-2017

183 views

Category:

Software


0 download

TRANSCRIPT

Page 1: MicroEJ, the OS for IoT

© IS2T S.A. 2015-2016. All rights reserved.

THE OS FOR IOTLa French Tech, Rennes – April 19, 2016

[email protected]

Page 2: MicroEJ, the OS for IoT

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.

Page 3: MicroEJ, the OS for IoT

AGENDA

• MicroEJ Overview

• From Embedded to IoT

• MicroEJ SDK

• MicroEJ Operating System

• MicroEJ OS Core

• Conclusion

Page 4: MicroEJ, the OS for IoT

MICROEJ OVERVIEW

Page 5: MicroEJ, the OS for IoT

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

Page 6: MicroEJ, the OS for IoT

PARTNERS & CONSORTIA

HARDWARE

SERVICES

SOFTWARE

ALLIANCES

Page 7: MicroEJ, the OS for IoT

RTOS Linux

OPERATING SYSTEMS FOR ENABLING THE IOT

Source: ARM

Average Selling Price of a Semiconductor Chip

>$25$10-15$3-6$1-2

Vo

lum

e

75%IoT = “sub-gig” things:• Processor < GHz• Memory < GB

25%

SW Foundation

Page 8: MicroEJ, the OS for IoT

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

PP

P MicroEJ Partners

P

Page 9: MicroEJ, the OS for IoT

APPLICATIONSTORE

FOR

APPLICATION

DEPLOYMENT

SDK:OS & TOOLS

FOR

DEVICE

SOFTWARE

DEVELOPMENT

STUDIOFOR

APPLICATION

DEVELOPMENT

MICROEJ FLAGSHIP PRODUCT LINE

Page 10: MicroEJ, the OS for IoT

FROM EMBEDDED TO IOT

Page 11: MicroEJ, the OS for 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

ServerClientProprietary

Over Standards

RTOSBSP/HAL

FlashRAMDisk

MCUFPUDSP

Actuators

Analog/Digital I/Os

LibsStacks

ProprietaryOver Standards

Device Management

• Content: FW• Operations

Sensors

Smart devices need to be able to acquire,compute and store data, and performseveral tasks.Connected devices need to supportmany connectivity, communications andsecurity standards.Interactive devices provide graphical andtouch interface.Managed devices allow software contentupdate and operations managementfrom the Cloud.

Page 12: MicroEJ, the OS for IoT

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…

StandardsOver Standards

Services

HW

FW

SW

GUI

RTOSBSP/HAL

FlashRAMDisk

MCUFPUDSP

Actuators

Analog/Digital I/Os

LibsStacks

StandardsOver Standards

Device Management

• Content: FW• Operations

• Store: Apps• Data

Sensors

StandardsOver Standards

ServicesAgentsApps GWY

IoT devices use standard frameworks andagents for connecting to services in theCloud that provide software content andoperations management.

They leverage data streams and formatsfor cloud-based analytics.

They may run multiple applications thatcan be downloaded from an online store.

Page 13: MicroEJ, the OS for IoT

VERTICALINTEGRATION

Lib

App AppApp App

RTOS RTOS

Lib

?

Lib

Lib

Lib

?

?

API

API

Integrate

DevelopIntegrate

API API API

DevelopPort

Fragmented HW

API API API

Embedded RTOS solutions haveefficiently addressed SW bring-up onfragmented hardware by providingvertical integration layers for eachcombination (ISA/compiler/libs).

But they may require integrationwork for the BSP and native libraries.

They may not provide ready-to-usesolutions for enabling IoT and cloud-ready SW capabilities.

Applications still need to be portedfrom one vertical silo to another,further fragmenting developerscommunities.

Page 14: MicroEJ, the OS for IoT

RTOS RTOS RTOS

App AppApp App

API

RTOS

API API APIAPI

Develop.

HORIZONTALINTEGRATION

Virtualization

Fragmented HW

The MicroEJ® Operating Systemleverages the best of both worlds:- The scalability of embedded RTOS

solutions for SW bring-up- The large community of mobile &

PC developers for efficient SWapplications development

It provides APIs both for BSP/RTOS/libsintegration and SW app development.

It enables horizontal integration of OSservices thanks to a virtualization layerthat isolates application layers fromlib/RTOS/BSP/compiler/ISA layers.

Page 15: MicroEJ, the OS for IoT

MICROEJ SDK

Page 16: MicroEJ, the OS for IoT

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 & SecurityIP Protection

MainstreamProgramming Techniques

ScalableOperating System

Hardware Virtualization

Fast development, massive deployment.

Page 17: MicroEJ, the OS for IoT

MICROEJ SDK COMPONENTS

SDK

TARGET

HOST

WORKBENCH

OPERATING SYSTEM

RESIDENT APPLICATIONS

Core

Libraries

Application Designer

Simulator

OSBuilder

IDE

Virtual DeviceBuilder

GUIDesignerAPP 1 APP 2

BSP

Legacy

APP 3

Firmware

Page 18: MicroEJ, the OS for IoT

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

OSBuilder

IDE

Virtual DeviceBuilder

GUIDesigner

Page 19: MicroEJ, the OS for IoT

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

Page 20: MicroEJ, the OS for IoT

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

MicroEJLibraries

BSPMicroEJ

Core

HARDWARE

BINARY APP

Run the same binaryapp code on both HWand simulator

Page 21: MicroEJ, the OS for IoT

MicroEJ SDK

• Platform development

• App development

SINGLE-APP DEVELOPMENT WORKFLOW

Application

MicroEJ OS+ Libraries

+ BSPPla

tfo

rm

ExecutableBinary

MicroEJ Studio

• App development

MicroEJ SDK

• Firmware development

MicroEJ OS+ Libraries

+ BSPPla

tfo

rm

App App App

MicroEJFirmware

MicroEJFirmware

App App

App App App

App binaries(built for a specific firmware)

Deployment to

Infrastructure

Program

Program

DynamicLoad & Install

Ap

p

Resident App

MonolithicMicroEJ

Firmware

MonolithicMicroEJ

Firmware

MicroEJFirmware

Link

ExecutableBinary

Link

MULTI-APP DEVELOPMENT WORKFLOWstore

Page 22: MicroEJ, the OS for IoT

MICROEJ OPERATING SYSTEM

Page 23: MicroEJ, the OS for IoT

MICROEJ OPERATING SYSTEM

Platform

OPERATING SYSTEM

BSP/DRIVERS

TARGET HARDWARE

APPLICATIONS

APP 1 APP 2 APP 3 APP 4 …

CORESecure Multi-Application Engine

COREMemory Management

CORELanguages/Utilities/Test

CORECPU & Power Management

COREComponents Management

IOSensors/Actuators/GPIO

COMMConnectivity Wired/Wireless

STOREApplication Management

NUMNumerical Methods

FILE & DATAPersistence/File System

GUIGraphics/Touch

NET & SECNetwork Protocols & Security

IOTIoT/Cloud Middleware

Page 24: MicroEJ, the OS for IoT

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

Page 25: MicroEJ, the OS for IoT

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

Page 26: MicroEJ, the OS for IoT

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) 7KBApplication 12KB Application 5KB

MicroEJ needs

Page 27: MicroEJ, the OS for IoT

GUI EXAMPLES FOR MCUS

Page 28: MicroEJ, the OS for IoT

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

Page 29: MicroEJ, the OS for IoT

EXAMPLE 1: MICROEJ FOR RENESAS SYNERGY

Synergy Microcontrollers

Tools

& Kits

Synergy Software Package (SSP)

BSP

ThreadX®

RTOSHAL Drivers

Stacks

Middleware

Libraries

Native

Application

Framework

SolutionsSynergy

Gallery

Th

ird

-Pa

rty

Na

tive

Lib

rary

BSP

OPERATING SYSTEM

Native SW

MicroEJ Application SW + GUI

Page 30: MicroEJ, the OS for IoT

EXAMPLE 2: MICROEJ FOR AVNET VISIBLE THINGS*

Visible Things BSP/RTOS/Libs

MicroEJ OS

*WIP

Page 31: MicroEJ, the OS for IoT

MICROEJ OS CORE

Page 32: MicroEJ, the OS for IoT

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 < 2mson Cortex-M3 at 120 MHz

RTOS stack size < 1KB

Page 33: MicroEJ, the OS for IoT

Garbage Collected

HeapJava

Stacks

OptionalLoader

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

Page 34: MicroEJ, the OS for IoT

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 hardwareLCD, buttons, …

Applicative hardwareSensors, actuators, …

Java

th

read

s Shielded Plug (SP)

Simple Native Interface (SNI)

SPSNI

SPSNI

RTOS Examples:

● Simple scheduler

● µC/OS, ThreadX, RTX

● FreeRTOS

● Linux, Integrity, VxWorks

● Custom RTOS

Page 35: MicroEJ, the OS for IoT

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

Page 36: MicroEJ, the OS for IoT

EASY JAVA-TO-C INTERFACESNI (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

Javaheap

Cheap

Java methods

C functions

Call C

Return to Java

www.e-s-r.net

T

I

M

E

Immortals

Java methods

C functions

Javaheap

Cheap

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

Page 37: MicroEJ, the OS for IoT

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)

RTOSTask 1

MicroEJ TaskRTOSTask 2

RTOSTask n

MicroEJ CoreMemory Mgmt

Components Management

Resource Mgmt

Predictable Thread Scheduler

MicroEJ Libraries

App1

App2

App3

App4

App5

Appn

Downloaded

AppIsolation

Layer

Resident

Page 38: MicroEJ, the OS for IoT

CONCLUSION

Page 39: MicroEJ, the OS for IoT

THE FUSION BETWEEN EMBEDDED AND INTERNET

Fragmented HWComplex SW

Internet pace

Mobile experience

Cloud servicesBig Data

Low-cost MCUResource constrained

Sensors & actuatorsData streams

PortabilityScalabilityIoT-ready

Community, methods &

tools for velocity

FootprintPerformance

Unified IoT platform

IoT secured connectivity

& frameworks

Multi-app OSGUI & Store

for IoT

EM

BE

DD

ED

IN

TE

R

NE

T

MICROEJOS, TOOLS & STORE

Page 40: MicroEJ, the OS for IoT

RESOURCES

• MicroEJ SDK free trialhttp://www.microej.com/get-started/

• Includes examples, platforms, libraries, BSP, user manuals, reference manuals, getting started

• MicroEJ Studio free downloadhttp://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

Page 41: MicroEJ, the OS for IoT

THANK YOU!