Embedded System Development. Java vs. C++

Similar documents
Java Embedded Applications

STLinux Software development environment

Chapter 12. Development Tools for Microcontroller Applications

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

About Yazata Business Consulting

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

#311 Engineer. Year of birth 1967 Specialities: Embedded Systems, Linux

Enhanced Project Management for Embedded C/C++ Programming using Software Components

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Embedded PC The modular Industrial PC for mid-range control. Embedded PC 1

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Example of Standard API

Dr. Dimitar Valtchev. 24 June 2010, Stuttgart, Eclipse Embedded Day

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

Customer Experience. Silicon. Support & Professional Eng. Services. Freescale Provided SW & Solutions

Embedded Development Tools

Mobile Operating Systems. Week I

A Process Oriented Tool for Mobile Devices for Monitoring OSCAR Clusters

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.

Keys To Developing an Embedded UA Server

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

,... Innovative Software in its Simplicity! Windows Linux Mac OS X ios

The shortest path to cellular communications: Cellular Development Platform

Virtualization. Michael Tsai 2015/06/08

STM32JAVA. Embedded Java Solutions for STM32

Research and Design of Universal and Open Software Development Platform for Digital Home

Effective Java Programming. efficient software development

Smart Cards a(s) Safety Critical Systems

JavaPOS TM FAQ. What is an FAQ? What is JavaPOS?

A hypervisor approach with real-time support to the MIPS M5150 processor

Agenda. Company Platform Customers Partners Competitive Analysis

Full and Para Virtualization

Instrumentation Software Profiling

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Embedded Linux Platform Developer

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

A Zebra Technologies White Paper. Bar Code Printing from Oracle WMS and MSCA

Development With ARM DS-5. Mervyn Liu FAE Aug. 2015

Linux for Embedded and Real-Time Systems

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Java and Real Time Storage Applications

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Chapter 2 System Structures

WIND RIVER INTELLIGENT DEVICE PLATFORM XT

DeltaV Virtual Studio

WinCon Programmable Automation. Controller

Virtualization for Cloud Computing

I vantaggi dell?utilizzo di JAVA nella strategia M2M

MediaTek LinkIt Smart 7688 FAQ

An Embedded Wireless Mini-Server with Database Support

The Future of IoT. Zach Shelby VP Marketing, IoT Feb 3 rd, 2015

Development of complex KNX Devices

SBC6245 Single Board Computer

AN3354 Application note

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

A lap around Team Foundation Server 2015 en Visual Studio 2015

Visual Paradigm product adoption roadmap

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

7a. System-on-chip design and prototyping platforms

Lesson 06: Basics of Software Development (W02D2

PROGRAMMABLE LINUX GATEWAY WITH JAVA AND OSGI

Java-based Functionality and Data Management in the Automobile. Prototyping at BMW Car IT GmbH. by Alexandre Saad, BMW Car IT GmbH, Munich/Germany

Workshop on Android and Applications Development

Enabling Technologies for Distributed Computing

Complete Integrated Development Platform Copyright Atmel Corporation

Embedded Software development Process and Tools:

Resource Management and Containment for Active Services

Computer Automation Techniques. Arthur Carroll

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

SOLUTIONS FOR BUSINESS PROCESS & ENTERPRISE CONTENT MANAGEMENT. Imaging & Enterprise Content Management

Open Source Software

Make the green IP switch Low-energy semiconductor solutions for VoIP

WIND RIVER DIAB COMPILER

UM0985 User manual. Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench software. Introduction

A Performance Monitor based on Virtual Global Time for Clusters of PCs

Enterprise Deployment

What s Cool in the SAP JVM (CON3243)

Lean and Easy Ways to Adopt MOST Technology

Chapter 3 Operating-System Structures

Principles of a Vehicle Infotainment Platform

Z-TWS4. Multifunction Straton / LINUX Controller.

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Triteq Software Services, Products & Skills

Support for a reconfiguration DSL in highly constrained embedded systems. Juraj Polakovic, Sebastien Mazaré, Jean-Bernard Stefani Séminaire SARDES

Cloud Utilization for Online Price Intelligence

evm Virtualization Platform for Windows

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v Steps to Developing a QNX Program Quickstart Guide

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Embedded Display Module EDM6070

Transcription:

Embedded System Development. Java vs. C++ Dr.-Ing. Ingo Elsen, Dr. rer. nat. Hans-Jürgen Habrock, Dipl.-Ing. Detlev Uhlenbrock T-Systems International Systems Integration T-Systems, Embedded System Development 17.11.2008 1

Agenda. Software Development at T-Systems The Best Language for Embedded System Development? Java for Embedded Systems Pro/Contra C++ for Embedded Systems Pro/Contra Volere Requirements and Constraints that drive the decision Example Embedded Application with a large user base Requirements Basic function cores Application Speed, Size etc. Cost Drivers Candidates to improve performance and reduce cost The decision, its impacts and its outcome Examples for Code migration Summary and Conclusion T-Systems, Embedded System Development 17.11.2008 2

T-Systems Systems Integration International Delivery Network. We serve our customers all over the world. Points of Production Points of Delivery Brazil Argentina Hungary Austria Russia Brazil China Czech Rep. France Hungary Iberia (ES/PT) Italy Japan Mexico Point of Delivery P & D Auto Services P&H Finance Telco Horizontal ADSF ADF ASF TF SF Point of Production ADSF ADF ASF TF SF Nordic (DK/SE) Russia Singapore South Africa Switzerland Concentration of industry know-how within P&D Industrialization of production within ADSF UK USA T-Systems, Embedded System Development 17.11.2008 3

Structure of T-Systems Systems. Integration Delivery Portfolio. Industries Automotive Aerospace /Defense /Security Other Discrete Manufacture Industry Telecommunication Travel, Transport & Logistics Finance Public Healthcare Horizontals T-Systems, Embedded System Development 17.11.2008 4

T-Systems Systems Integration. Industrialized Software Development. Project Model Project Management (PM Book) Software-Engineering (SE Book) Sales (Sales Book) Requirement Analyses Specification System Design Programming Integration Rollout ALM (SM Book) Configuration Management Quality Assurance Software Development Environment Reengineering Generators System Landscapes T-Systems, Embedded System Development 17.11.2008 5

The Best Language for Embedded System Development. If You Know the Language You are Cool Is Young, Is Modern Is Cool Real Object Oriented Object Oriented Runs Everywhere Complex Language Old but Heavy It s Proved and Safe Tools, Tools, Tools, Rule the Hardware Easy to Learn Lot of Open Source You get Everything T-Systems, Embedded System Development 17.11.2008 6

Java for Embedded Systems. PRO Contra Huge knowledge base Large number of frameworks and open source code available. XML, Networking, Security and more are part of Java standard edition Write once, run everywhere Available Java optimized hardware (Java Microcontroller, J-Control, J ) Component based design with frameworks (e.g. OSGI etc.) Fast prototyping capability Easy maintenance of Java based applications Large number of development tools also for testing, documentation and code-review JME (Micro Edition) for embedded system development. Must have operation system (OS) Overhead for memory and microprocessor VM Hardware abstraction layer Possible code optimization only with special compiler, no machine code No prediction of the runtime behavior except for Real-Time VMs based on RTSJ Specification OS specific middleware for hardware integration needed No direct access to hardware or OS functionality Difficulty in source code protection (Reengineering) T-Systems, Embedded System Development 17.11.2008 7

C++ for Embedded Systems. PRO Contra Huge knowledge base Large number of frameworks and open source code available. Generating of native machine code C/C++ based operating systems No need for special hardware or runtime environments (VM etc.) Support for virtually every microcontroller Component based design with frameworks Fast and small systems Real-time capability Large number of development tools also for Testing, Documentation and Code-Review Direct hardware access Possible hardware and software code protection Complex debugging (e.g. Pointer) Complexity of language can lead to code that is difficult to understand Not enough free or open tools Not platform independent Different compiler behavior (e.g. MS, Intel, gcc, Portland) T-Systems, Embedded System Development 17.11.2008 8

Java vs. C++ Example for an Embedded Development. T-Systems, Embedded System Development 17.11.2008 9

Volere Requirements and Constraints that drive the decision Customer Concept Phase Specification Phase Design Phase Build Phase Integration Phase Test Phase Business Case Feature List Wishes and Ideas Business Requirements 1. Level System Requirements 1. Level System Architecture Constraints Target Costs T-Systems, Embedded System Development 17.11.2008 10

Basic Requirements and Constrains. Limited CPU performance Power Consumption Microcontroller vs. FPGA Small memory footprint (RAM, ROM, Flash etc.) Defined Hardware Interfaces E.g. RS-232, USB, SPI, CAN, LCD, ADC/DAC, GPIO, SD-Card Small Size Limited Space and Weight Limited Cost Prototypes, Small number of Units, Mass-Products Software Update Special Processes, Methods (e.g. SD-Card, USB) Component Update or Complete Update Environment Constrains Thermal, Size, Robustness, Usability Size and Type of HMI (e.g. LCD, Keyboard) Source: www.atmel.com CPU T-Systems, Embedded System Development 17.11.2008 11

Example - Embedded Application with a Large User Base. Introduction and Requirements. Example Road Charge System Embedded system unit for road charging Large number of units Very reasonable price Essential Use Cases Determine GPS position Map geo-position to geo-object object (e.g. roads) Calculate the road charge Communication via GPRS/GSM/UMTS with central system Transfer road charge data to central system for billing Update data for road charge models and maps Software update T-Systems, Embedded System Development 17.11.2008 12

Development Process. Error and Changes Specification Software Debugging Implementation Unit Test Code Documentation Code Review Components Test Delivery Integration & Test Acceptance Test Hardware Debugging Embedded System T-Systems, Embedded System Development 17.11.2008 13

Development Process (Specification). Structure diagrams Class diagram Component diagram Composite structure diagram Object diagram Deployment diagram UML Models Behavior diagrams Activity diagram State diagram Use case diagram Interaction diagrams Communication diagram Interaction overview diagram Sequence diagram Timing diagrams Requirements Business Requirements Customer Requirements System Requirements Functional Requirements Performance Requirements Design Requirements Derived Requirements Allocated Requirements Enterprise Architect Documentation MS Office Requirements DOORS Specification T-Systems, Embedded System Development 17.11.2008 14

Dynamic Model View. Specification Error & Changes Implementation Test Verification Classic Process Specification Implementation Code and binaries test and verification Specification Error & Changes Test Verification Error & Changes Implementation Test Verification Model Driven Process Specification Model test and verification Implementation Code and binaries test and verification Dynamic Model Test and Verification Use Cases Test & Verification UML Model OCL Expressions OCL Constraints Dynamic Model T-Systems, Embedded System Development 17.11.2008 15

Development Process Java (Implementation). Specification Source Code Java IDE Byte Code Java IDE Editor Compiler Debugger Make, Build Unit Test Code Documentation Code Review Software Debugging Version and Configuration Management System Debugger Environment Java VM T-Systems, Embedded System Development 17.11.2008 16

Development Process C++ (Implementation). Specification Source Code C/C++ IDE C/C++ IDE Editor Compiler, Cross-Compiler Linker Debugger, Remote Debugger Make, Build Unit Test Code Documentation Code Review Software Debugging Binaries Hardware Remote Debugging Version and Configuration Management System Software Simulator Hardware Simulator T-Systems, Embedded System Development 17.11.2008 17

Development Process C++ (Software Remote Debugging). Windows XP Linux (Reference Platform) Source IDE C++ Eclipse Application [C++] gdb Debugger (Client) Debugging Environment Ethernet (TCP/IP) API & Hardware Simulation gdb Remote Debugger (Server) Runtime Environment Simulation Database T-Systems, Embedded System Development 17.11.2008 18

Development Process C++ (Daily Build Process). Preparation Update source code and test data repository Build binaries (Compile and link all sources) Performing test, review and verification processes Verification of methods (Unit Test) Verification of Unit Test coverage (LCov) Low level use case and component test (Module Test) Generation of source code documentation (Doxygen) Code review (PCLint) Source code metrics and quality analysis (RSM) Create reports Evaluate, analyze report and results Performing source code modification and error correction Code modification and documentation Code error correction and documentation Linux Script SVN Update Build Binaries Perform Unit Test Perform LCov Perform Module Test Perform Doxygen Perform PCLint Perform RSM Reports T-Systems, Embedded System Development 17.11.2008 19

Cost Drivers - Candidates to Reduce Cost. ARM9 400Mhz 256MB 512MB VM + JNI Framework CPU RAM ROM VM OSGI ARM7 200Mhz 128MB 256MB X X T-Systems, Embedded System Development 17.11.2008 20

The decision, its impacts and its outcome. 10 15 10 15 Contribution = 50 /Unit Concept Phase Operating System Virtual Machine Framework Required Memory Required CPU Development Embedded System 10 Operating System Framework 5 Required Memory 10 Required CPU Contribution = 25 /Unit Decision Impacts Outcome Software development with C++ Development of the framework Use of Linux operating system Smaller memory footprint Higher development costs Complex test and debugging Additional software simulations Binaries with small memory footprint IP for framework and application Very reasonable price for the complete embedded system T-Systems, Embedded System Development 17.11.2008 21

Example: C++ Code Base Code and Data Share. C++ Source Code and Data Total 640 MByte Embedded System Binaries Total 157 MByte Without management data (PM/SE) Without miscellaneous code and data (e.g. simulation, scripts) T-Systems, Embedded System Development 17.11.2008 22

Examples for Code migration. Road Charge Application Pricing models Application [C++] User Interface (HMI) Road charge calculation Services for Application Framework [C++] Security Geo-mapping API [C++] Hardware Abstraction Layer Diagnosis Navigation Communication Drivers e.g. Windows, Linux, VxWorks, QNX Operating System Drivers e.g. Windows, Linux, VxWorks, QNX Operating System Update Application Program Interface Embedded Hardware Embedded Hardware Hardware and OS independent access to hardware modules, drivers and OS GPS LCD Key GSM µwm IRM SD-Card SIM GPS LCD Key GSM µwm IRM SD-Card SIM Hardware Modules Customer specific modules T-Systems, Embedded System Development 17.11.2008 23

Summary and Conclusion. Java vs. C++ No winner chose the one that fulfills customers needs in the best way One size doesn t fit all Do not chose your tools, architectures and designs by reflex The system domain determines the best fit, that includes more than software, even more than hardware Cost Share per Unit Learn something about programming, how to 140 choose the best fitting 120 technology 100 Focused on technology 80 % 110 (C++ = 100%) 88 issues but rarely 60 considering things like 40 20 maintainability and total 11 12 0 costs Java C++ Development Concept Hardware Development T-Systems, Embedded System Development 17.11.2008 24

Thank You Dr.-Ing. Ingo Elsen, Dr. rer. nat. Hans-Jürgen Habrock, Dipl.-Ing. Detlev Uhlenbrock Ingo.elsen@t-systems.com ADF ISS ES T-Systems, Embedded System Development 17.11.2008 25

Imprint Visit us at http://www.t-systems.com Copyright 2008 by T-Systems Enterprise Services GmbH. All rights reserved, also those regarding the reprint in extracts, the reproduction/copying (including microfiche and electronic reproduction) as well as the evaluation by data banks or similar systems. T-Systems, Embedded System Development 17.11.2008 26

Services, IPC & Software Update C++. Update Process Stop service Kill service process Copy new service executable Execute new service Service connects to middleware Start service Middleware Provides communication function for Data exchange Data object exchange Message queue Provides status information about services Start, running, stop Application as services Middleware Execution of services as single applications Service 1 Service 2 Service 3 Service n Service 1 Service 2 Service 3 Service n API Use of API function to access the operating system and hardware Use of middleware to communicate with other services Drivers e.g. Embedded Windows, Linux, VxWorks, QNX Operating System Embedded Hardware API Provides function to access the operating system and hardware T-Systems, Embedded System Development 17.11.2008 27