Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

MicroEJ OS for IoT devices

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 41 Publicité

MicroEJ OS for IoT devices

Télécharger pour lire hors ligne

MicroEJ OS is a scalable Operating System for resource-constrained embedded and IoT devices, optimized for a wide range of hardware architectures.

With MicroEJ OS, OEMs use proven methods that cut software development time and cost. They create software that delivers incredible user experience and adjusts to Internet business needs.

MicroEJ development tools enable device manufacturers to deliver differentiating firmware using MicroEJ SDK.

MicroEJ OS is a scalable Operating System for resource-constrained embedded and IoT devices, optimized for a wide range of hardware architectures.

With MicroEJ OS, OEMs use proven methods that cut software development time and cost. They create software that delivers incredible user experience and adjusts to Internet business needs.

MicroEJ development tools enable device manufacturers to deliver differentiating firmware using MicroEJ SDK.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à MicroEJ OS for IoT devices (20)

Publicité

Plus récents (20)

MicroEJ OS for IoT devices

  1. 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. 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. 3. AGENDA • MicroEJ Overview • From Embedded to IoT • MicroEJ SDK • MicroEJ Operating System • MicroEJ OS Core • Conclusion
  4. 4. MICROEJ OVERVIEW
  5. 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
  6. 6. PARTNERS & CONSORTIA HARDWARE SERVICES SOFTWARE ALLIANCES
  7. 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. 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
  9. 9. APPLICATION STORE FOR APPLICATION DEPLOYMENT SDK: OS & TOOLS FOR DEVICE SOFTWARE DEVELOPMENT STUDIO FOR APPLICATION DEVELOPMENT MICROEJ FLAGSHIP PRODUCT LINE
  10. 10. FROM EMBEDDED TO IOT
  11. 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. 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. 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. 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.
  15. 15. MICROEJ SDK
  16. 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. 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. 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. 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. 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. 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
  22. 22. MICROEJ OPERATING SYSTEM
  23. 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. 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. 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. 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
  27. 27. GUI EXAMPLES FOR MCUS
  28. 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. 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. 30. EXAMPLE 2: MICROEJ FOR AVNET VISIBLE THINGS* Visible Things BSP/RTOS/Libs MicroEJ OS *WIP
  31. 31. MICROEJ OS CORE
  32. 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. 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. 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. 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. 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. 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
  38. 38. CONCLUSION
  39. 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. 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
  41. 41. THANK YOU!

×