STM32JAVA. Embedded Java Solutions for STM32

Size: px
Start display at page:

Download "STM32JAVA. Embedded Java Solutions for STM32"

Transcription

1 STM32JAVA Embedded Java Solutions for STM32

2 What is STM32Java? Solution to develop and to deploy software applications on STM32F0 to STM32F7 microcontrollers using Java Help to reduce the total cost of ownership of embedded system design (development, BOM, maintenance and updates) This solution is designed in partnership with:» STMicroelectronics: STM32 manufacturer» IS2T: Software editor (provider of the MicroEJ software platform)

3 MicroEJ Overview

4 MicroEJ MicroEJ SDK lets you use Java for embedded system development Goals of this presentation» Discover MicroEJ

5 Agenda Embedded Java» Why using Java for embedded system development? MicroEJ SDK» What is MicroEJ? Java platforms» What is the concept of software platform? Execution» How do I execute my Java application? Interactions with the native world» How can C and Java communicate? GUI» How to design a rich graphical application?

6 Embedded Java

7 Software Complexity 32-bits MCU with important memory Increasing complexity with GUI and IoT

8 Java Modern object-oriented language» Loose coupling» Managing complexity Portability Memory management» Garbage collector» Ideal for event driven systems Widely used

9 Java Platform Concept /** * Java Copyright IS2T. All rights reserved. * For demonstration purpose only. * IS2T PROPRIETARY. Use is subject to license terms. */ package com.is2t.appnotes.microui.mvc; import java.io.ioexception; import ej.microui.eventgenerator; import ej.microui.io.display; import ej.microui.io.flyingimage; import ej.microui.io.image; import ej.microui.io.pointer; Java language /** * Shows three views (bar, pie, text) that represents the same data model (a percentage value). * It is possible to resize the Java technology RTOS JVM Libs RTOS JVM Libs RTOS JVM Libs Java Virtual Machines (JVM - software processors) Microprocessors IS2T 2012

10 Software Portability Portability is needed when» You want to use the same code for several projects» Your hardware platform becomes obsolete» You target several hardware platforms with the same application When switching to a new hardware platform» You only change the hardware specific parts» You re-create an isofunctional computing platform» Your software runs the same on this new platform Hardware abstracted software is the key point for portability

11 MicroEJ SDK

12 MicroEJ SDK Create platforms and software running on these platforms MicroEJ SDK provides» MicroEJ IDE, based on Eclipse» Tools to build platforms» Tools for application development like code coverage or simulation» Libraries to code with Java as high-level language» Native libraries and mechanism to allow developers to use C and to create interactions between C and Java features

13 MicroEJ IDE

14 Supported architectures Available» ARM Cortex-M» Cortex-A» Linux» Android» ios Additional architectures on demand

15 Optimized JVMs for Embedded Systems 32/64-bit CPU Optimized implementation 32-bit MCU/MPU Java Code quality Productivity Reliability Portability Scalability Maintainability Code density Java High speed execution Tiny footprint Interface C/asm Low power,

16 Java Runtime Compiler version» Java 7 Runtime library» EDC (Embedded Device Configuration)» Close to Java ME MicroJvm virtual machine

17 MicroEJ Libraries Available libraries» EDC» B-ON» MicroUI» MWT» NLS» ECOM-COMM» Shielded Plug» SNI». Specifications by ESR Consortium»

18 Example Washing machine Hardware» STM32F2x (Cortex-M3) 120MHz» 16-bit bpp QVGA LCD» Touchscreen Libraries» B-ON, CLDC, MicroUI, MWT, SNI Boot time < 2 ms Application M em ory Requirem ents Flash 422KB RAM 42KB Virtual Machine (runtime & GC) 28KB Virtual Machine 1KB Libraries (graphics, com, float ) 132KB Native Stack 28KB Graphical resources (images) 228KB Application 34KB Application 13KB

19 Example Washing machine Hardware» 180MHz» 32-bit col. WQVGA LCD» Touchscreen Performance» Refresh rate = 50fps» CPU load = 24 %» Boot time < 2ms Application M em ory Requirem ents FLASH 161KB RAM 11KB Java engine & Smart RAM optimizer 28KB Java engine 1KB Firmware (STUI libs, BSP, ) 114KB C Stack 5KB Graphical resources (images, fonts) 7KB Application 12KB Application 5KB

20 Java Platforms

21 Java Platforms JPF = Java PlatForm Java is used to code the application C (or any other native language) is used along with MicroEJ libraries, drivers and operating system to construct the platform Decoupling software from hardware

22 Application Point of View Application sees the JPF as a framework» It offers several libraries» It executes the application Abstraction barrier hiding hardware details» Application is agnostic to hardware specifications» Application uses high-level functions given by the platform APIs» JPF translates high-level functionalities to level-low operations

23 Abstraction Example Strong coupling with hardware particularity» Application waits for a push button pressed event to start a motor» What if the order is now sent through a serial link? Bad abstraction! Software not aware of hardware details» Application should be waiting for a start motor even» No matter how the order is given, semantic is not changed Good abstraction!

24 Target Specific A JPF targets» A specific microcontroller architecture since one JVM is made for one microcontroller specific instruction set» A specific board and how peripherals are connected to the microcontroller A JPF also depends on the compiler» Keil s ARMCC» GCC» IAR Embedded Workbench»

25 Dual platforms : SimJPF & EmbJPF JPF is composed of two platforms» SimJPF : for simulation (on workstation)» EmbJPF : for embedded execution (on microcontroller) Parallel update» You should update both when adding a new feature» Create mock objects to simulate hardware features

26 Java Platform Content A JPF includes» MicroJvm Java Virtual Machine» Simulator» Java and native libraries» Drivers» Operating system» Native code provided by developers» Mock objects»

27 Drag Emb Drop TM

28 Benefits Keep hardware and software design cycles independent Application prototype ahead of hardware development Simplify design, tests, evolutions Reduce development time

29 Waterfall Mkt. specs HW ready 1 st integration SW ready Release Marketing Human factors Graphics Hardware dev. Only few changes are possible Software dev. HW/SW integration IS2T 2013 time

30 Agility Mkt. specs HW ready JPF ready Release Marketing Human factors & Graphics Software dev. (continuous integration and iterative deliveries) Simulated Java Platform Hardware dev. Embedded Java Platform HW/JPF test Changes are possible anytime IS2T 2013

31 Execution

32 Execution Flows

33 Launch Configurations Launch Configurations» Eclipse provides the concept for launch configurations» A launch configuration tells what is executed, what is the runtime environment, what are the execution options» Available through the Run menu A Launch Configuration can be executed as» A Run Configuration to simply run an application» A Debug Configuration to debug this application External Tool Configuration to run an external program

34 Launch Configurations MicroEJ provides new launch configuration types» MicroEJ Application» MicroEJ Tool

35 MicroEJ Application A MicroEJ Application configuration lets you» Select the kind of execution (SimJPF or EmbJPF)» Configure libraries and memory usage

36 Execution Flow on SimJPF Simulator is launched on the workstation Java application is executed Simulator uses mock objects to simulate hardware features

37 SimJPF Simulator engine is a Java SE application» Works on Windows, Linux and OS X Same byte code is executed by both SimJPF and EmbJPF Features» Debugging inside Eclipse / MicroEJ (JDWP)» Heap dumping for analysis» Code coverage» Partial simulation of the EmbJPF characteristics

38 Execution Flow on EmbJPF General case» Java application is compiled and link with libraries» An object file is generated» This file is linked with drivers and operating system to produce executable files (done by a 3 rd party tool) Kickstart platforms are a special case» They include precompiled driver and OS» They have special linker scripts» MicroEJ create executable files

39 MicroEJ and C IDE MicroEJ provides» Java application as an object file» Java runtime environment as library files» Header files with types and functions provided by these libraries C IDE provides» Drivers» Operating system» LLAPI implementation C IDE compiles C code, link application and deploy binary file

40 C IDE Configuration Modify include path» MicroEJ header files must be on the path Modify linker configuration» MicroEJ libraries and Java application object file must be used during link edition Start Java from your C program» sni.h provides functions to initialize and start the JVM

41 Low Level API Generic programing and implementation details» JVM and libraries integrate everything that is generic» But some functions cannot be generic since they are specific to the hardware target along with BSP» Platform developers must implement these functions in C Several modules come with Low Level APIs (LLAPIs) to implement» Runtime (LLMJVM)» Display (LLDISPLAY)» Input (LLINPUT)» LED (LLLED)» ECOM-COMM (LLCOMM)»

42 Executable Generation

43 Interactions with Native World

44 Interactions with Native World Not everything can be done in Java» Access to hardware peripherals (registers) Not everything should be done in Java» Intense computation, especially with matrices» Useless to translate legacy code to a new language overall application is in fact composed of Java and C need for interactions between Java and native worlds

45 Interactions with Native World You may need to create your own API to access your specific hardware peripheral» SNI / HIL to call a C function from a Java method You may need to share data between Java and C» Shielded Plug to create a database to exchange data» B-ON s Immortal Objects to share segments of memory Java application should be hardware agnostic» Design high-level APIs» Find the good abstraction level

46 SNI

47 SNI Java Side SNI = Simple Native Interface Java offers the native keyword» Declares a method which is not implemented in Java» Must be static (visibility doesn t matter)» Example: public static native void log(int id); SNI connects a Java native method to a C function» Defines a naming convention to create a symbol» Defines the calling convention at runtime

48 SNI Native Side Implementation» Developers write the corresponding functions» They name these functions after the ESR naming convention» sni.h provides compatible type definitions Link edition» Java object file generated by MicroEJ contains unresolved symbols» 3 rd party IDE links the Java object file with the C functions» All dependencies are revolved during link edition hence no surprise at runtime

49 Naming Convention package GPIO; public class Main { public static native void toggle(); } public static void main(string[] a) throws InterruptedException { while(true){ toggle(); Thread.sleep(10); } } #include <sni.h> #include gpio.h void Java_GPIO_Main_toggle(){ GPIOE->ODR ^= GPIO_Pin_2 ; }

50 Flow Immortals Java methods C functions Call C Java heap C heap Return to Java T I M E

51 Java threads Green Thread Architecture 1x native task (Java) Native tasks (C/ASM) Shielded Plug (SP) Simple Native Interface (SNI) SP SNI RTOS SP SNI GUI hardware LCD, buttons, Applicative hardware Sensors, actuators, IS2T 2013

52 SNI-GT SNI and SNI-GT Advantages» Easy integration with OS» Can be used without any OS» Clear separation between native and Java Restrictions» Not possible to call Java from C» Java objects cannot be used as parameters or return values» Calling a native method pauses the VM scheduler

53 Immortals

54 Immortal Objects B-ON library Immortal objects» Live in a separate heap (immortal heap)» Are not touched by garbage collector» Have fixed addresses so they can be shared with the native world

55 Immortal Object Creation Generally, objects are created and then turned into immortal objects» int[] array = new int[10]; Immortals.setImmortal(array); Immortals.isImmortal(array); Objects can be created directly in the immortal heap» public static void run(runnable runnable) Impossible to free memory» OutOfMemoryErrors can be thrown

56 Share with Native World package com.corp.examples; public class Hello { static int[] array = (int[])immortals.setimmortal(new int[50]); public static native int getdata(int[] array); } public static void main(string[] args){ int nb = getdata(array); } #include <sni.h> jint Java_com_corp_examples_Hello_getData(jint* array){ array[0] = 0xBEEF; return 1 ; }

57 Flow Immortals Java methods C functions Java heap C heap T I M E

58 Shielded Plug

59 Shielded Plug Shielded Plug (often shorten as SP )» Database to exchange data» Publish / subscribe model

60 Shielded Plug Purpose Isolate processes» Well-defined segregation between producers and consumers» Processes run independently with no interactions except data exchanges» Producers and consumers are not necessarily aware of each others Data exchange» Database is made to share data between several software components» It is neither a one-to-one relation nor a C-to-Java relation only» Can share data from Java to C, from Java to Java, from C to C

61 GUI

62 Core of the Framework MicroUI is the core the UI framework» ESR002 MicroUI module provides a Java library that gives access to every feature MicroUI relies on stacks» MicroUI module on its own is just a Java library that offers APIs» Additional modules translate these features to simulated or hardware functions

63 Stacks EmbJPF relies on several stacks SimJPF relies on the Front Panel, a mock object for these stacks

64 MicroUI vs. MWT MicroUI (Micro User Interface) = Mechanisms for GUI» Hardware abstraction (screens, joysticks, buttons)» Display and event management management» Low level library MWT (Micro Widget Toolkit) = concepts for widgets on top of MicroUI» High level library» Developers will generally code their applications with MWT

65 Layers

66 Widgets Widget = Window + Gadget Widgets are graphical components of applications» Interact with user : display data, receive inputs» Should be reusable Renderable Widget

67 Renderers Widgets are not responsible for their rendering» They carry only graphical data» They contains the logic to interact with the user Model and Controller of MVC pattern Renderers are responsible for rendering widgets graphically View of MVC pattern

68 Loose Coupling Widget Controller Application & user events Application Data Model Widget Data Model Data related to the application Data related to representation Widget Renderers Widget Renderers Themes

69 Composite Widget A composite widget is a widget that contains widgets Allow to lay out widgets Create complex hierarchized structures Widget 1 Widget 2 Composite Widget 3

70 Widget Hierarchy Display Desktop Panel Composite Widget

71 Examples

72 Any Questions?

Java Embedded Applications

Java Embedded Applications TM a One-Stop Shop for Java Embedded Applications GeeseWare offer brings Java in your constrained embedded systems. You develop and simulate your Java application on PC, and enjoy a seamless hardware validation.

More information

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications

More information

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul jellul@imperial.ac.uk Overview Brief introduction to Body Sensor Networks BSN Hardware

More information

Development of Java ME

Development of Java ME Y39PDA Development of Java ME application České vysoké učení technické v Praze Fakulta Elektrotechnická Content What is Java ME Low Level a High Level API What is JSR LBS Java ME app. life-cycle 2/29 Is

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

Practical Performance Understanding the Performance of Your Application

Practical Performance Understanding the Performance of Your Application Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

Effective Java Programming. efficient software development

Effective Java Programming. efficient software development Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of

More information

Programación de Sistemas Empotrados y Móviles (PSEM)

Programación de Sistemas Empotrados y Móviles (PSEM) Introduction to Windows Embedded Programación de Sistemas Empotrados y Móviles (PSEM) Marco A. Peña marcoa@ac.upc.edu Table of contents Windows XP Embedded vs. Windows CE Windows XP Embedded Windows CE

More information

Java Embedded Applications Development and Manufacturing

Java Embedded Applications Development and Manufacturing A One Stop Shop for Java Embedded Applications Development and Manufacturing Gérard BOUVET Sales Manager 1 Table of Content Embedded Market trends and applications Java versus Linux/C/C++ 2011 Embedded

More information

Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011 Implementação Interfaces Pessoa Máquina 2010/11 2009-11 baseado em material Alan Dix 1 Windowing systems Architecture Layers Higher level Tool UI Toolkit (Widgets) Window System OS Application Hardware

More information

Application Note: AN00141 xcore-xa - Application Development

Application Note: AN00141 xcore-xa - Application Development Application Note: AN00141 xcore-xa - Application Development This application note shows how to create a simple example which targets the XMOS xcore-xa device and demonstrates how to build and run this

More information

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

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

STLinux Software development environment

STLinux Software development environment STLinux Software development environment Development environment The STLinux Development Environment is a comprehensive set of tools and packages for developing Linux-based applications on ST s consumer

More information

Embedded Software development Process and Tools:

Embedded Software development Process and Tools: Embedded Software development Process and Tools: Lesson-2 Integrated Development Environment (IDE) 1 1. IDE 2 Consists of Simulators editors, compilers, assemblers, etc., IDE 3 emulators logic analyzers

More information

System Structures. Services Interface Structure

System Structures. Services Interface Structure System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

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

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Java Micro Edition (ME) 8: Bringing Java to the Internet of Things Robert Clark Senior Software Development Director Safe Harbor Statement The following is intended to outline our general product direction.

More information

Selection Criteria for ZigBee Development Kits

Selection Criteria for ZigBee Development Kits Selection Criteria for ZigBee Development Kits This article gives an overview about different considerations, when it comes to prioritizing ZigBee Development Kits, supplied by different vendors. Before

More information

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

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah (DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de jens_onno.krah@fh-koeln.de NIOS II 1 1 What is Nios II? Altera s Second Generation

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

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

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Complete Integrated Development Platform. 2013 Copyright Atmel Corporation

Complete Integrated Development Platform. 2013 Copyright Atmel Corporation Complete Integrated Development Platform 2013 Copyright Atmel Corporation MCU Developer s Challenge 80% increase in SW in next MCU project Top Engineering Concern: Hitting Schedules More complex end user

More information

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition 10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can

More information

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

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

KURA M2M/IoT Gateway. reducing the distance between embedded and enterprise technologies. Tiziano Modotti, October 28 th, 2014

KURA M2M/IoT Gateway. reducing the distance between embedded and enterprise technologies. Tiziano Modotti, October 28 th, 2014 KURA M2M/IoT Gateway reducing the distance between embedded and enterprise technologies Tiziano Modotti, October 28 th, 2014 IoT Architecture @ M2M/IoT Integration Platform on Cloud Business Applications

More information

Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013

Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013 Open Source building blocks for the Internet of Things Benjamin Cabé JFokus 2013 Who I am Benjamin Cabé Open Source M2M Evangelist at Sierra Wireless Long-time Eclipse lover M2M? IoT? Technology that supports

More information

Embedded Component Based Programming with DAVE 3

Embedded Component Based Programming with DAVE 3 Embedded Component Based Programming with DAVE 3 By Mike Copeland, Infineon Technologies Introduction Infineon recently introduced the XMC4000 family of ARM Cortex -M4F processor-based MCUs for industrial

More information

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 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide

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 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide 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 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights

More information

Keys To Developing an Embedded UA Server

Keys To Developing an Embedded UA Server Keys To Developing an Embedded UA Server Liam Power, Embedded OPC UA Subject Matter Expert Darek Kominek, P.Eng, MatrikonOPC Marketing Manager Edmonton, Alberta, Canada - 2013 Executive Summary Strong

More information

CSC230 Getting Starting in C. Tyler Bletsch

CSC230 Getting Starting in C. Tyler Bletsch CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly

More information

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

Enhanced Project Management for Embedded C/C++ Programming using Software Components Enhanced Project Management for Embedded C/C++ Programming using Software Components Evgueni Driouk Principal Software Engineer MCU Development Tools 1 Outline Introduction Challenges of embedded software

More information

Building Applications Using Micro Focus COBOL

Building Applications Using Micro Focus COBOL Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

Board also Supports MicroBridge

Board also Supports MicroBridge This product is ATmega2560 based Freeduino-Mega with USB Host Interface to Communicate with Android Powered Devices* like Android Phone or Tab using Android Open Accessory API and Development Kit (ADK)

More information

Using the TASKING Software Platform for AURIX

Using the TASKING Software Platform for AURIX Using the TASKING Software Platform for AURIX MA160-869 (v1.0rb3) June 19, 2015 Copyright 2015 Altium BV. All rights reserved. You are permitted to print this document provided that (1) the use of such

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

Java VM monitoring and the Health Center API. William Smith will.smith@uk.ibm.com

Java VM monitoring and the Health Center API. William Smith will.smith@uk.ibm.com Java VM monitoring and the Health Center API William Smith will.smith@uk.ibm.com Health Center overview What problem am I solving? What is my JVM doing? Is everything OK? Why is my application running

More information

Alcatel-Lucent IMS Application Server

Alcatel-Lucent IMS Application Server September Alain Grignac, Gérard Tixier Application BD/ CTO Office History 1999/2000/2001 Java middleware initiated as basis for a high-performances WAP Gateway. First commercial deployments 2002/2003/2004

More information

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

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008 Medical Device Design: Shorten Prototype and Deployment Time with NI Tools NI Technical Symposium 2008 FDA Development Cycle From Total Product Life Cycle by David W. Fiegal, M.D., M.P.H. FDA CDRH Amazon.com

More information

VELOCITY LAB TM Embedded Development Ecosystem

VELOCITY LAB TM Embedded Development Ecosystem VELOCITY LAB TM Embedded Development Ecosystem 0C05B Renesas Electronics America Inc. Renesas Technology & Solution Portfolio 2 Microcontroller and Microprocessor Line-up 2010 2013 32-bit 8/16-bit 1200

More information

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

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012 Android Development Lecture 1 Android SDK & Development Environment Università Degli Studi di Parma Lecture Summary - 2 The Android Platform Android Environment Setup SDK Eclipse & ADT SDK Manager Android

More information

PC Base Adapter Daughter Card UART GPIO. Figure 1. ToolStick Development Platform Block Diagram

PC Base Adapter Daughter Card UART GPIO. Figure 1. ToolStick Development Platform Block Diagram TOOLSTICK VIRTUAL TOOLS USER S GUIDE RELEVANT DEVICES 1. Introduction The ToolStick development platform consists of a ToolStick Base Adapter and a ToolStick Daughter card. The ToolStick Virtual Tools

More information

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Freescale Semiconductor, I

Freescale Semiconductor, I nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development

More information

Running a Program on an AVD

Running a Program on an AVD Running a Program on an AVD Now that you have a project that builds an application, and an AVD with a system image compatible with the application s build target and API level requirements, you can run

More information

1/5/2013. Technology in Action

1/5/2013. Technology in Action 0 1 2 3 4 5 6 Technology in Action Chapter 5 Using System Software: The Operating System, Utility Programs, and File Management Chapter Topics System software basics Types of operating systems What the

More information

Android Developer Fundamental 1

Android Developer Fundamental 1 Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Java ME & NetBeans Mobility Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda Java ME introduction Java ME applications NetBeans Mobility Edition Power of advanced features Demos, demos,

More information

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center IOTIVITY AND EMBEDDED LINUX SUPPORT Kishen Maloor Intel Open Source Technology Center Outline Brief introduction to IoTivity Software development challenges in embedded Yocto Project and how it addresses

More information

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

The Future of IoT. Zach Shelby VP Marketing, IoT Feb 3 rd, 2015 The Future of IoT Zach Shelby VP Marketing, IoT Feb 3 rd, 2015 1 Internet of (really nerdy) People 1980s 2 Internet of (content silo) People 1990s 3 Internet of (Web) People 2000s 4 Internet of (really

More information

How To Develop A Toolstick

How To Develop A Toolstick TOOLSTICK BASE ADAPTER USER S GUIDE 1. Handling Recommendations To enable development, the ToolStick Base Adapter and daughter cards are distributed without any protective plastics. To prevent damage to

More information

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS CLOUD COMPUTING Cloud computing is a model for enabling convenient, ondemand network access to a shared pool of configurable computing

More information

Oracle Application Development Framework Overview

Oracle Application Development Framework Overview An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services

More information

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to

More information

Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications. ni.com

Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications. ni.com Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications System Deployment System Replication Configuration Mgmt. System Monitoring System Updates 2 Agenda Preparing for

More information

UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction

UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction User manual Getting started with STM32F429 Discovery software development tools Introduction This document describes the software environment and development recommendations required to build an application

More information

Easing embedded Linux software development for SBCs

Easing embedded Linux software development for SBCs Page 1 of 5 Printed from: http://www.embedded-computing.com/departments/eclipse/2006/11/ Easing embedded Linux software development for SBCs By Nathan Gustavson and Eric Rossi Most programmers today leaving

More information

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

Customer Experience. Silicon. Support & Professional Eng. Services. Freescale Provided SW & Solutions September 2013 Silicon Support & Professional Eng. Services Customer Experience Freescale Provided SW & Solutions Provide Valued Software, Support & Professional Engineering Services, Competitively 2 Customer

More information

Introduction to Virtual Machines

Introduction to Virtual Machines Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity

More information

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd. Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps Hyeokgon Ryu, Infraware Technology, Ltd. Talking about Needs of Automated Converting from Android To Tizen Introduce

More information

Programming the VEX Robot

Programming the VEX Robot Preparing for Programming Setup Before we can begin programming, we have to set up the computer we are using and the robot/controller. We should already have: Windows (XP or later) system with easy-c installed

More information

Operating System Structures

Operating System Structures COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating

More information

Virtualization and Other Tricks.

Virtualization and Other Tricks. Virtualization and Other Tricks. Pavel Parízek, Tomáš Kalibera, Peter Libič DEPARTMENT OF DISTRIBUTED AND DEPENDABLE SYSTEMS http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and

More information

Java and Real Time Storage Applications

Java and Real Time Storage Applications Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual

More information

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd Getting Started with Tizen SDK : How to develop a Web app Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd Introduction to Tizen SDK Tizen Platform (1/2) Application Web Applications Native Applications

More information

Mobile Operating Systems. Week I

Mobile Operating Systems. Week I Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone

More information

How To Develop Android On Your Computer Or Tablet Or Phone

How To Develop Android On Your Computer Or Tablet Or Phone AN INTRODUCTION TO ANDROID DEVELOPMENT CS231M Alejandro Troccoli Outline Overview of the Android Operating System Development tools Deploying application packages Step-by-step application development The

More information

Virtual Platforms Addressing challenges in telecom product development

Virtual Platforms Addressing challenges in telecom product development white paper Virtual Platforms Addressing challenges in telecom product development This page is intentionally left blank. EXECUTIVE SUMMARY Telecom Equipment Manufacturers (TEMs) are currently facing numerous

More information

A Modular Approach to Teaching Mobile APPS Development

A Modular Approach to Teaching Mobile APPS Development 2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development

More information

12. Introduction to Virtual Machines

12. Introduction to Virtual Machines 12. Introduction to Virtual Machines 12. Introduction to Virtual Machines Modern Applications Challenges of Virtual Machine Monitors Historical Perspective Classification 332 / 352 12. Introduction to

More information

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer Java Monitoring Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer A Bit About Me Current: Past: Pre-Sales Engineer (1997 present) WaveMaker Wily Persistence GemStone Application

More information

How To Use Java On An Ipa 2.2.2 (Jspa) With A Microsoft Powerbook (Jempa) With An Ipad 2.3.2 And A Microos 2.5 (Microos)

How To Use Java On An Ipa 2.2.2 (Jspa) With A Microsoft Powerbook (Jempa) With An Ipad 2.3.2 And A Microos 2.5 (Microos) Java Monitoring and Diagnostic Tooling Iris Baron IBM Java JIT on System Z ibaron@ca.ibm.com Session ID: 16182 Insert Custom Session QR if Desired. Java Road Map Java 7.0 Language Updates Java 6.0 SE 5.0

More information

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

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development Android Development Lecture AD 0 Android SDK & Development Environment 2013/2014 Parma Università degli Studi di Parma Lecture Summary Android Module Overview The Android Platform Android Environment Setup

More information

High Performance or Cycle Accuracy?

High Performance or Cycle Accuracy? CHIP DESIGN High Performance or Cycle Accuracy? You can have both! Bill Neifert, Carbon Design Systems Rob Kaye, ARM ATC-100 AGENDA Modelling 101 & Programmer s View (PV) Models Cycle Accurate Models Bringing

More information

New Features in XE8. Marco Cantù RAD Studio Product Manager

New Features in XE8. Marco Cantù RAD Studio Product Manager New Features in XE8 Marco Cantù RAD Studio Product Manager Marco Cantù RAD Studio Product Manager Email: marco.cantu@embarcadero.com @marcocantu Book author and Delphi guru blog.marcocantu.com 2 Agenda

More information

Lecture 25 Symbian OS

Lecture 25 Symbian OS CS 423 Operating Systems Design Lecture 25 Symbian OS Klara Nahrstedt Fall 2011 Based on slides from Andrew S. Tanenbaum textbook and other web-material (see acknowledgements) cs423 Fall 2011 1 Overview

More information

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

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

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi ANDROID PROGRAMMING - INTRODUCTION Roberto Beraldi Introduction Android is built on top of more than 100 open projects, including linux kernel To increase security, each application runs with a distinct

More information

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

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote. Specifications for ARINC 653 compliant RTOS & Development Environment Notes and terms of conditions Vendor shall note the following terms and conditions/ information before they submit their quote. 1.

More information

picojava TM : A Hardware Implementation of the Java Virtual Machine

picojava TM : A Hardware Implementation of the Java Virtual Machine picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer

More information

Data Transfer between Two USB Flash SCSI Disks using a Touch Screen

Data Transfer between Two USB Flash SCSI Disks using a Touch Screen Data Transfer between Two USB Flash SCSI Disks using a Touch Screen Anurag A. Chakravorty #1, Raghwendra J. Suryawanshi *2, # Bachelor of Engineering, Department of Information Technology, Matsyodari Shikshan

More information

Instrumentation Software Profiling

Instrumentation Software Profiling Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts

More information

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE BEAJRockit Mission Control Using JRockit Mission Control in the Eclipse IDE Mission Control 3.0.2 Document Revised: June, 2008 Contents 1. Introduction Benefits of the Integration................................................

More information

Design for Success: Designing for the Internet of Things with TiWiConnect

Design for Success: Designing for the Internet of Things with TiWiConnect Design for Success: Designing for the Internet of Things with TiWiConnect Today s presenters Scott Lederer Senior Software Architect Dave Burleton Vice President of Marketing LSR.com Today s Agenda Why

More information

UG103.8 APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS

UG103.8 APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS This document provides an overview of the toolchain used to develop, build, and deploy EmberZNet and Silicon Labs Thread applications, and discusses some additional

More information

System Requirements Table of contents

System Requirements Table of contents Table of contents 1 Introduction... 2 2 Knoa Agent... 2 2.1 System Requirements...2 2.2 Environment Requirements...4 3 Knoa Server Architecture...4 3.1 Knoa Server Components... 4 3.2 Server Hardware Setup...5

More information

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP Know the Difference Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP 1 Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject

More information

32F072BDISCOVERY. Discovery kit for STM32F072xx microcontrollers. Features. Description

32F072BDISCOVERY. Discovery kit for STM32F072xx microcontrollers. Features. Description Discovery kit for STM32F072xx microcontrollers Data brief Features STM32F072RBT6 microcontroller featuring 128 KB of Flash memory, 16 KB of SRAM in an LQFP64 package On-board ST-LINK/V2 with switch to

More information

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

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Chapter 2 System Structures

Chapter 2 System Structures Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices

More information

Source Code Translation

Source Code Translation Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven

More information

UEFI on Dell BizClient Platforms

UEFI on Dell BizClient Platforms UEFI on Dell BizClient Platforms Authors: Anand Joshi Kurt Gillespie This document is for informational purposes only and may contain typographical errors and technical inaccuracies. The content is provided

More information