Integrating visualstate code with C++

Size: px
Start display at page:

Download "Integrating visualstate code with C++"

Transcription

1 Integrating visualstate code with C++ The information in this document is based on version 4.2 of the IAR visualstate software. It may also apply to other versions of IAR visualstate. SUMMARY The code generated by visualstate is ANSI C-compliant. A visualstate System share several properties with the concept of a class, thus it would be convenient to wrap a visualstate System in a C++ class. This note outlines how this could be done. KEYWORDS C++, class, instantiation, instances, visualstate System. The problem to be solved If the primary language of an embedded application is C++, it would be convenient to interface to the visualstate generated code in an object-oriented manner. But since the code generated by visualstate is ANSI C-compliant, this is not straightforward. The entity in the code generated by visualstate that resembles the concept of an object-oriented class most closely, is a visualstate System. However, as visualstate Systems are primarily encoded as sets of functions and statically allocated variables, a class must be constructed for each visualstate System that embeds the visualstate System. Such classes are referred to by embedders in the following. Note: It may be beneficial to read IAR Application Note Interfacing visualstate and existing C code before proceeding with this note. Solution Since the number of instances of a visualstate System is fixed when the visualstate Coder is invoked, instantiation of embedder objects should be restricted. The simple case is when a single statically allocated instance of a visualstate System is used. Matters are slightly more complicated when multiple statically allocated instances of a visualstate System are used. Clients of the embedder should not have access to the functions and variables that make up the visualstate System, but they should have access to more general visualstate elements such as completion codes. The application structure could be as outlined in Figure 1. 1

2 embedder.h semlibb.h (general VS elements) client.cpp embedder.cpp vssystemdata.h vssystemaction.h (System specific VS elements) Figure 1: Application structure In this example, embedders for single and multiple statically allocated instances are constructed assuming the use of the IAR visualstate Basic API. The embedders are for a visualstate System with the following events and action functions: Events: Action functions: Event1() Event2() VS_VOID Func1() VS_VOID Func2(VS_INT i) Single statically allocated instance When using the visualstate Basic API with a single instance, the embedder should be a singleton, i.e. a class that can be instantiated only once. This can be achieved by declaring the constructor and copy constructor as private members of the embedder. Access to the single instance can be via a static data member that has the type of the embedder. In the code shown below, this data member is denoted s. The class definition for the embedder could be as follows: embedder.h #include "semlibb.h" class UserSystem public: // events unsigned char _Event1(); unsigned char _Event2(); // action functions void _Func1(); void _Func2(VS_INT i); static UserSystem s; private: UserSystem(); UserSystem(const UserSystem&); 2

3 unsigned char MacroStep(SEM_EVENT_TYPE eventno); ; Because this file is a header file intended for inclusion by C++ source files, the visualstate API header semlibb.h file must be included via the linkage specification. For every event in the visualstate System, the embedder has a member function that initiates a visualstate macrostep for that event. For every action function in the visualstate System, the embedder has a member function with the same declaration as the globally defined action function. Both types of mapper functions must be public: the event mapper functions in order to enable clients to access the embedder, the action mapper functions in order for the globally defined action functions to be able to call the action mapper functions. A private member function MacroStep is called by the event mapper functions in order to perform a macrostep. The implementations of the member functions are as follows: embedder.cpp #include "embedder.h" #include "vssystemdata.h" #include "vssystemaction.h" unsigned char UserSystem::_Event1() return MacroStep(Event1); unsigned char UserSystem::_Event2() return MacroStep(Event2); void UserSystem::_Func1() /*... */ void UserSystem::_Func2(VS_INT i) /*... */ UserSystem::UserSystem() unsigned char UserSystem::MacroStep(SEM_EVENT_TYPE eventno) unsigned char cc; SEM_ACTION_EXPRESSION_TYPE actionexprno; if ((cc = SEM_Deduct(eventNo))!= SES_OKAY) while ((cc = SEM_GetOutput(&actionExprNo)) == SES_FOUND) SEM_Action(actionExprNo); if (cc!= SES_OKAY) return SEM_NextState(); UserSystem UserSystem::s; 3

4 VS_VOID Func1(VS_VOID) UserSystem::s._Func1(); VS_VOID Func2(VS_INT i) UserSystem::s._Func2(i); The event mapper functions initiate a macrostep by calling MacroStep with their associated event. The action mapper functions are left empty for the developer to define their functionality. The constructor is empty, and it is included with the sole purpose of making it private. Alternatively, code for initializing the visualstate System and sending the initialization event (normally SE_RESET) could be inserted here. This however requires the constructor to be able to signal error in case the initialization fails. Since the singleton pattern is implemented with a statically allocated instance, this potential error will occur before control is transferred to the main function, which may not be preferable. The function MacroStep is a straightforward implementation of a visualstate macrostep (see IAR Application Note Setting up the visualstate main loop with the IAR visualstate Basic API). The action functions in the visualstate System must be defined with the linkage specification, since they are referred to by the visualstate System. The action functions call the action function wrappers defined in the embedder class via the singleton object s. However, if the context of the embedder is not needed for performing the tasks of the action functions, the action function wrappers may be omitted, and the globally defined action functions may perform their tasks directly without involving the embedder. Multiple statically allocated instances When using the visualstate Basic API with multiple instances, the technique used above for restricting the creation of embedders can be applied in a slightly modified way. Instead of statically allocating a single instance of the embedder, an array as of such objects is allocated. The size of the array should be the number of instances in the visualstate System which is encoded in the Coder-generated macro VS_NOF_INSTANCES. The class definition for the embedder class is as follows: embedder.h #include "semlibb.h" class UserSystem public: // events unsigned char _Event1(); unsigned char _Event2(); // action functions void _Func1(); 4

5 void _Func2(VS_INT i); const SEM_INSTANCE_TYPE instanceno; static UserSystem as[vs_nof_instances]; static UserSystem& ActiveInstance(); private: UserSystem(); UserSystem(const UserSystem&); unsigned char MacroStep(SEM_EVENT_TYPE eventno); ; static SEM_INSTANCE_TYPE nextinstanceno; static SEM_INSTANCE_TYPE activeinstanceno; Each instance of the embedder object is associated with an instance of the visualstate System through the constant data member instanceno. The static member function ActiveInstance is to be used by the globally defined action functions to determine which embedder object to manipulate. The function uses the static data member activeinstanceno to determine the embedder to return. Finally the embedder class uses the static data member nextinstanceno as a counter for initializing the non-static data member instanceno. The implementations of the member functions are as follows: embedder.cpp #include "embedder.h" #include "vssystemdata.h" #include "vssystemaction.h" unsigned char UserSystem::_Event1() return MacroStep(Event1); unsigned char UserSystem::_Event2() return MacroStep(Event2); void UserSystem::_Func1() /*... */ void UserSystem::_Func2(VS_INT i) /*... */ UserSystem::UserSystem(): instanceno(nextinstanceno++) unsigned char UserSystem::MacroStep(SEM_EVENT_TYPE eventno) unsigned char cc; SEM_ACTION_EXPRESSION_TYPE actionexprno; 5

6 activeinstanceno = instanceno; if ((cc = SEM_SetInstance(instanceNo))!= SES_OKAY) if ((cc = SEM_Deduct(eventNo))!= SES_OKAY) while ((cc = SEM_GetOutput(&actionExprNo)) == SES_FOUND) SEM_Action(actionExprNo); if (cc!= SES_OKAY) return SEM_NextState(); UserSystem UserSystem::aS[VS_NOF_INSTANCES]; UserSystem& UserSystem::ActiveInstance() return as[activeinstanceno]; SEM_INSTANCE_TYPE UserSystem::activeInstanceNo = 0; SEM_INSTANCE_TYPE UserSystem::nextInstanceNo = 0; VS_VOID Func1(VS_VOID) UserSystem::ActiveInstance()._Func1(); VS_VOID Func2(VS_INT i) UserSystem::ActiveInstance()._Func2(i); The most important difference between this implementation and the implementation for the single statically allocated instance is the initialization of the instanceno member in the constructor, and the change of active instance in the MacroStep function. Dynamically allocated instances Although the visualstate Expert API is able to use dynamic memory allocation, it is not possible to allocate an arbitrary number of instances of a visualstate System. The reason is that the visualstate Expert API only uses dynamic memory to allocate parts of a visualstate System, while other parts are allocated statically. So even when using the Expert API, instantiation of embedder objects should be restricted to the number of instances specified by the visualstate System. Conclusions visualstate Systems can be embedded in a C++ class to ease interfacing from other C++ objects. In addition, the use of C++ features such as protected members makes it possible to better encapsulate a visualstate System and to protect a visualstate System from accidental (unintended) changes. 6

7 Constructors can be used to ensure that initialization takes place before events are deducted. Singleton patterns and variants can be used to restrict access to instantiation of embedder objects. References IAR Application Note Interfacing visualstate and existing C code. IAR Application Note Setting up the visualstate main loop with the IAR visualstate Basic API. Contact information SWEDEN: IAR Systems AB P.O. Box 23051, S Uppsala Tel: / Fax: info@iar.se USA: IAR Systems US HQ - West Coast One Maritime Plaza, San Francisco, CA Tel: / Fax: info@iar.com USA: IAR Systems - East Coast 2 Mount Royal, Marlborough, MA Tel: / Fax: info@iar.com UK: IAR Systems Ltd 9 Spice Court, Ivory Square, London SW11 3UE Tel: / Fax: info@iarsys.co.uk GERMANY: IAR Systems AG Posthalterring 5, D Parsdorf Tel: / Fax: info@iar.de DENMARK: IAR Systems A/S Lykkesholms Allé 100, DK-8260 Viby J Tel: / Fax: info@iar.dk JAPAN: IAR Systems K.K. 1-2 Kanda-Ogawamachi, Chiyoda-ku Tokyo, Tel: +81 (0) / Fax: +81 (0) info@iarsys.co.jp Copyright 2001 IAR Systems. All rights reserved. The information in this document is subject to change without notice and does not represent a commitment on any part of IAR Systems. While the information contained herein is assumed to be accurate, IAR Systems assumes no responsibility for any errors or omissions. visualstate is a registered trademark of IAR Systems. IAR visualstate RealLink, IAR Embedded Workbench and IAR MakeApp are trademarks of IAR Systems. Microsoft is a registered trademark, and Windows is a trademark of Microsoft Corporation. All other product names are trademarks or registered trademarks of their respective owners. First published: March Revised: October

Setting up the visualstate main loop with the IAR visualstate Basic API

Setting up the visualstate main loop with the IAR visualstate Basic API Setting up the visualstate main loop with the IAR visualstate Basic API The information in this document is based on version 4.2 of the IAR visualstate software. It may also apply to other versions of

More information

Configuring and implementing a visualstate target application for debugging with IAR visualstate RealLink

Configuring and implementing a visualstate target application for debugging with IAR visualstate RealLink Configuring and implementing a visualstate target application for debugging with IAR visualstate RealLink The information in this document is based on versions 4.2 and 4.3 of the IAR visualstate software.

More information

Integrating a visualstate application with a Real-Time Operating System (RTOS)

Integrating a visualstate application with a Real-Time Operating System (RTOS) Integrating a visualstate application with a Real-Time Operating System (RTOS) The information in this document is based on version 5.0.4 of the IAR visualstate software. It may also apply to subsequent

More information

IAR TTCN Developer s Studio

IAR TTCN Developer s Studio AM1J AM1J h732 c397 IAR TTCN Developer s Studio C196 Bluetooth Edition A131 From Idea to Target * System description Implementation Debugging Make executable IAR PreQual Encoders/ Decoders etc. IAR PreQual

More information

IAR Embedded Workbench

IAR Embedded Workbench IAR Embedded Workbench Integrated Development Environment From Idea to Target The IAR Embedded Workbench is a fully Integrated Development Environment for developing embedded applications. The workspace

More information

MTIM Driver for the MC9S08GW64

MTIM Driver for the MC9S08GW64 Freescale Semiconductor Application Note Document Number: AN4160 Rev. 0, 8/2010 MTIM Driver for the MC9S08GW64 by: Tanya Malik Reference Design and Applications Group India IDC MSG NOIDA 1 Introduction

More information

Preparations. Creating a New Project

Preparations. Creating a New Project AVR030: Getting Started with C for AVR Features How to Open a New Project Description of Option Settings Linker Command File Examples Writing and Compiling the C Code How to Load the Executable File Into

More information

Device support in IAR Embedded Workbench for 8051

Device support in IAR Embedded Workbench for 8051 Device support in IAR Embedded Workbench for 8051 This guide describes how you can add support for a new device to IAR Embedded Workbench and how you can modify the characteristics of an already supported

More information

Outline. 1. Input of Ports P10 and P Applicable Products. 1.2 Applicable MCU. 1.3 Details

Outline. 1. Input of Ports P10 and P Applicable Products. 1.2 Applicable MCU. 1.3 Details [Notes] CS+ Code Generator for RL78 (CS+ for CC), CS+ Code Generator for RL78 (CS+ for CA, CX), e 2 studio Code Generator Plug-in, Applilet3 Coding Assistance Tool for RL78 R20TS0139EJ0100 Rev.1.00 Outline

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

CS 251 Intermediate Programming Methods and More

CS 251 Intermediate Programming Methods and More CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

*HWWLQJVWDUWHGZLWKWKH,$5 (PEHGGHG:RUNEHQFK $QGWKH,$5&FRPSLOHUIRU$WPHO$95ŠGHYLFHV

*HWWLQJVWDUWHGZLWKWKH,$5 (PEHGGHG:RUNEHQFK $QGWKH,$5&FRPSLOHUIRU$WPHO$95ŠGHYLFHV ,$5$SSOLFDWLRQ1RWH$95 *HWWLQJVWDUWHGZLWKWKH,$5 (PEHGGHG:RUNEHQFK $QGWKH,$5&FRPSLOHUIRU$WPHO$95ŠGHYLFHV 6800$5< This application note provides new users with an introduction to the Embedded Workbench programming

More information

PDB Driver for the MC9S08GW64

PDB Driver for the MC9S08GW64 Freescale Semiconductor Application Note Document Number: AN4163 Rev. 0, 8/2010 PDB Driver for the MC9S08GW64 by: Tanya Malik Reference Design and Applications Group Noida India 1 Introduction This document

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

AVR32 UC3 Software Framework... User Manual

AVR32 UC3 Software Framework... User Manual ... User Manual Section 1 AVR32 UC3 Software Framework 1.1 Features Drivers for each AVR 32 UC3 peripheral Software libraries optimized for AVR32 Hardware components drivers Demo applications that use

More information

IIC Driver for the MC9S08GW64

IIC Driver for the MC9S08GW64 Freescale Semiconductor Application Note Document Number: AN4158 Rev. 0, 8/2010 IIC Driver for the MC9S08GW64 by: Tanya Malik Reference Design and Applications Group Noida India 1 Introduction This document

More information

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation. : Real-Time Clock (RTC) using the Asynchronous Timer Features Real-Time Clock with Very Low Power Consumption (4µA @ 3.3V) Very Low Cost Solution Adjustable Prescaler to Adjust Precision Counts Time, Date,

More information

SCI Driver for the MC9S08GW64

SCI Driver for the MC9S08GW64 Freescale Semiconductor Application Note Document Number: AN4161 Rev. 0,8/2010 SCI Driver for the MC9S08GW64 by: Tanya Malik Reference Design and Applications Group Noida India 1 Introduction This document

More information

8. Object-oriented Programming. June 15, 2010

8. Object-oriented Programming. June 15, 2010 June 15, 2010 Introduction to C/C++, Tobias Weinzierl page 1 of 41 Outline Recapitulation Copy Constructor & Operators Object-oriented Programming Dynamic and Static Polymorphism The Keyword Static The

More information

Week 8: Operator overloading

Week 8: Operator overloading Due to various disruptions, we did not get through all the material in the slides below. CS319: Scientific Computing (with C++) Week 8: Operator overloading 1 The copy constructor 2 Operator Overloading

More information

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051 Migration guide Migrating from Keil µvision for 8051 to for 8051 Use this guide as a guideline when converting project files from the µvision IDE and source code written for Keil toolchains for 8051 to

More information

etpu Automotive Function Set (Set 2)

etpu Automotive Function Set (Set 2) Freescale Semiconductor Application Note Document Number: AN3768 Rev. 0, 05/2009 etpu Automotive Function Set (Set 2) by: Geoff Emerson East Kilbride U.K. 1 Introduction This application note complements

More information

OLED display with pixels resolution Ambient light sensor CPU load Analog filter Quadrature Encoder with push button Digital I/O

OLED display with pixels resolution Ambient light sensor CPU load Analog filter Quadrature Encoder with push button Digital I/O APPLICATION NOTE Atmel AT02657: XMEGA-E5 Xplained Software User Guide Features OLED display with 128 32 pixels resolution Ambient light sensor CPU load Analog filter Quadrature Encoder with push button

More information

Interrupt Controlled UART

Interrupt Controlled UART AVR306 Design Note: Using the AVR UART in C Features Setup and Use the AVR UART Code Examples for Polled and Interrupt Controlled UART Compact Code C-Code Included for AT90S8515 Description This application

More information

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051 Migration guide Migrating from Keil µvision for 8051 to for 8051 Use this guide as a guideline when converting project files from the µvision IDE and source code written for Keil toolchains for 8051 to

More information

RSARTE External C++ Integration

RSARTE External C++ Integration RSARTE External C++ Integration Anders Ek IBM RSARTE EXTERNAL C++ INTEGRATION...1 INTRODUCTION...2 BUILD/FILE INTEGRATION...2 FILE ARTIFACTS... 2 EXTERNAL CDT PROJECTS... 4 EXTERNAL COMPONENTS... 4 FUNCTIONAL

More information

CS3215. Outline: 1. Introduction 2. C++ language features 3. C++ program organization

CS3215. Outline: 1. Introduction 2. C++ language features 3. C++ program organization CS3215 C++ briefing Outline: 1. Introduction 2. C++ language features 3. C++ program organization CS3215 C++ briefing 1 C++ versus Java Java is safer and simpler than C++ C++ is faster, more powerful than

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

1 AS5048 Demoboard. AS5048 Demoboard OPERATION MANUAL. Application Note

1 AS5048 Demoboard. AS5048 Demoboard OPERATION MANUAL. Application Note AS5048 Demoboard OPERATION MANUAL Application Note 1 AS5048 Demoboard The AS5048 Demoboard is a complete rotary encoder system with built-in microcontroller, USB interface and graphical LCD display. The

More information

C++ (classes) Hwansoo Han

C++ (classes) Hwansoo Han C++ (classes) Hwansoo Han Inheritance Relation among classes shape, rectangle, triangle, circle, shape rectangle triangle circle 2 Base Class: shape Members of a class Methods : rotate(), move(), Shape(),

More information

Cisco Aironet In-Building Wireless Solutions International Power Compliance Chart

Cisco Aironet In-Building Wireless Solutions International Power Compliance Chart Cisco Aironet In-Building Wireless Solutions International Power Compliance Chart ADDITIONAL INFORMATION It is important to Cisco Systems that its resellers comply with and recognize all applicable regulations

More information

Lecture 18 Tao Wang 1

Lecture 18 Tao Wang 1 Lecture 18 Tao Wang 1 Abstract Data Types in C++ (Classes) A procedural program consists of one or more algorithms that have been written in computerreadable language Input and display of program output

More information

Company names and product names listed in this manual are trademarks of their respective companies.

Company names and product names listed in this manual are trademarks of their respective companies. SD Memory Card The copyright of this manual is held by Photron Limited. Product specifications and manual contents can change without advanced notification. This manual was created taking every possible

More information

IAR Embedded Workbench

IAR Embedded Workbench IAR Embedded Workbench IAR Embedded Workbench for AVR Migration Guide Migrating from version 5.x to version 6.x Mv6x_AVR-1 COPYRIGHT NOTICE Copyright 1996 2011 IAR Systems AB. No part of this document

More information

8-bit Microcontroller. Application Note. AVR030: Getting Started with C for AVR

8-bit Microcontroller. Application Note. AVR030: Getting Started with C for AVR AVR030: Getting Started with C for AVR Features HowtoOpenaNewProject Description of Option Settings Linker Command File Examples Writing and Compiling the C Code How to Load the Executable File Into the

More information

Chapter 10 Introduction to Classes

Chapter 10 Introduction to Classes C++ for Engineers and Scientists Third Edition Chapter 10 Introduction to Classes CSc 10200! Introduction to Computing Lecture 20-21 Edgardo Molina Fall 2013 City College of New York 2 Objectives In this

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

What is it? CMSC 433 Programming Language Technologies and Paradigms Spring Approach 1. Disadvantage of Approach 1

What is it? CMSC 433 Programming Language Technologies and Paradigms Spring Approach 1. Disadvantage of Approach 1 CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Singleton Pattern Mar. 13, 2007 What is it? If you need to make sure that there can be one and only one instance of a class. For example,

More information

Parallel EEPROM Die Products. Die Products. Features. Description. Testing

Parallel EEPROM Die Products. Die Products. Features. Description. Testing Features High Performance CMOS Technology Low Power Dissipation - Active and Standby Hardware and Software Data Protection Features DATA Polling for End of Write Detection High Reliability Endurance: 10

More information

How to Link Two Project Files Using Softune Workbench

How to Link Two Project Files Using Softune Workbench How to Link Two Project Files Using Softune Workbench Introduction 1 General description of various projects 1 Adding two Projects together 1 CASE I Linking project as a library file (lib) 2 CASE II Linking

More information

Classes and Objects. Class scope: - private members are only accessible by the class methods.

Classes and Objects. Class scope: - private members are only accessible by the class methods. Class Declaration Classes and Objects class class-tag //data members & function members ; Information hiding in C++: Private Used to hide class member data and methods (implementation details). Public

More information

Introduction to LIN 2.0 Connectivity Using Volcano LTP

Introduction to LIN 2.0 Connectivity Using Volcano LTP Freescale Semiconductor White Paper LIN2VOLCANO Rev. 0, 12/2004 Introduction to LIN 2.0 Connectivity Using Volcano LTP by: Zdenek Kaspar, Jiri Kuhn 8/16-bit Systems Engineering Roznov pod Radhostem, Czech

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

MSP-EXP430F5438+PAN1315EMK Accelerometer Demo Application User s Guide

MSP-EXP430F5438+PAN1315EMK Accelerometer Demo Application User s Guide MSP-EXP430F5438+PAN1315EMK Accelerometer Demo Application User s Guide SDK v. MSP_2560_E.8.0.31.2 1 November 2010 MindTree Limited, Global Village Campus, RVCE Post, Bangalore - 560 059 www.mindtree.com

More information

Cpt S 122 Data Structures. Templates

Cpt S 122 Data Structures. Templates Cpt S 122 Data Structures Templates Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Topics Introduction Function Template Function-template and function-template

More information

Sub-processors engaged and authorized to process personal data of Customer in the course of provision of the Services by Syncron

Sub-processors engaged and authorized to process personal data of Customer in the course of provision of the Services by Syncron Sub-processors engaged and authorized to process personal data of Customer in the course of provision of the Services by Syncron Name Address Purpose of use/services provided by Subprocessor Categories

More information

hex file. The example described in this application note is written for the AT94K using the FPSLIC Starter Kit. Creating a New Project

hex file. The example described in this application note is written for the AT94K using the FPSLIC Starter Kit. Creating a New Project Getting Started with C for the Family Using the IAR Compiler Features How to Open a New Project Description of Option Settings Linker Command File Examples Writing and Compiling the C Code How to Load

More information

IAR Embedded Workbench

IAR Embedded Workbench IAR Embedded Workbench Getting Started with IAR Embedded Workbench for Renesas Synergy GSEWSYNIDE-1 COPYRIGHT NOTICE 2016 IAR Systems AB. No part of this document may be reproduced without the prior written

More information

design cycle involving simulation, synthesis

design cycle involving simulation, synthesis HDLPlanner : Design Development Environment for HDL-based FPGA Designs Abstract Rapid prototyping of designs using FPGAs requires HDL-based design entry which leverages upon highly parameterized components

More information

CS304 Object Oriented Programming Final Term

CS304 Object Oriented Programming Final Term 1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing

More information

Atmel AVR1926: XMEGA-B1 Xplained Getting Started Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

Atmel AVR1926: XMEGA-B1 Xplained Getting Started Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction Atmel AVR1926: XMEGA-B1 Xplained Getting Started Guide Features Easy to reprogram with just a USB cable and a preprogrammed boot loader Easy to debug code with PDI-based debugger/emulator Can be used with

More information

PHS MoU Group. PHS MoU Document B-IF TS

PHS MoU Group. PHS MoU Document B-IF TS PHS MoU Document Title: Public Personal Handy-phone System : General Description of Network - Network Interface Specifications for Call Control Version: 01 Date: April 21, 1997 PHS MoU Classification:

More information

Dolby Vision Streams Within the MPEG-2 Transport Stream Format

Dolby Vision Streams Within the MPEG-2 Transport Stream Format Dolby Vision Streams Within the MPEG-2 Transport Stream Format Version 1.2 Corporate Headquarters Dolby Laboratories Licensing Corporation Dolby Laboratories, Inc. Dolby Laboratories Licensing Corporation

More information

Goal of lecture. Object-oriented Programming. Context of discussion. Message of lecture

Goal of lecture. Object-oriented Programming. Context of discussion. Message of lecture Goal of lecture Object-oriented Programming Understand inadequacies of class languages like Ur- Java Extend Ur-Java so it becomes an object-oriented language Implementation in SaM heap allocation of objects

More information

Fundamental Concepts and Definitions

Fundamental Concepts and Definitions Fundamental Concepts and Definitions Identifier / Symbol / Name These terms are synonymous: they refer to the name given to a programming component. Classes, variables, functions, and methods are the most

More information

Atmel-Synario CPLD/PLD Design Software ATDS1100PC ATDS1120PC ATDS1130PC ATDS1140PC. Features. Description

Atmel-Synario CPLD/PLD Design Software ATDS1100PC ATDS1120PC ATDS1130PC ATDS1140PC. Features. Description Features Comprehensive CPLD/PLD Design Environment User-friendly Microsoft Windows Interface (Win 95, Win 98, Win NT) Powerful Project Navigator Utilizes Intelligent Device Fitters for Automatic Logic

More information

AT40K FPGA IP Core AT40K-FFT. Features. Description

AT40K FPGA IP Core AT40K-FFT. Features. Description Features Decimation in frequency radix-2 FFT algorithm. 256-point transform. -bit fixed point arithmetic. Fixed scaling to avoid numeric overflow. Requires no external memory, i.e. uses on chip RAM and

More information

One 32-bit counter that can be free running or generate periodic interrupts

One 32-bit counter that can be free running or generate periodic interrupts PSoC Creator Component Datasheet Multi-Counter Watchdog (MCWDT_PDL) 1.0 Features Configures up to three counters in a multi-counter watchdog (MCWDT) block Two 16-bit counters that can be free running,

More information

APPLICATION NOTE. Atmel AT03304: SAM D20 I 2 C Slave Bootloader SAM D20. Description. Features

APPLICATION NOTE. Atmel AT03304: SAM D20 I 2 C Slave Bootloader SAM D20. Description. Features APPLICATION NOTE Atmel AT03304: SAM D20 I 2 C Slave Bootloader SAM D20 Description As many electronic designs evolve rapidly there is a growing need for being able to update products, which have already

More information

A Fast Review of C Essentials Part II

A Fast Review of C Essentials Part II A Fast Review of C Essentials Part II Structural Programming by Z. Cihan TAYSI Outline Fixed vs. Automatic duration Scope Global variables The register specifier Storage classes Dynamic memory allocation

More information

Object Oriented Modeling

Object Oriented Modeling Object Oriented Modeling Object oriented modeling is a method that models the characteristics of real or abstract objects from application domain using classes and objects. Objects Software objects are

More information

PCB Layout Guidelines for the MC1321x

PCB Layout Guidelines for the MC1321x Freescale Semiconductor Application Note Document Number: AN3149 Rev. 0.0, 03/2006 PCB Layout Guidelines for the MC1321x 1 Introduction This application note describes Printed Circuit Board (PCB) footprint

More information

02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211

02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 02 Features of C#, Part 1 Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Module Overview Constructing Complex Types Object Interfaces and Inheritance Generics Constructing

More information

A brief introduction to C++

A brief introduction to C++ A brief introduction to C++ Rupert Nash r.nash@epcc.ed.ac.uk 13 June 2018 1 References Bjarne Stroustrup, Programming: Principles and Practice Using C++ (2nd Ed.). Assumes very little but it s long Bjarne

More information

And Even More and More C++ Fundamentals of Computer Science

And Even More and More C++ Fundamentals of Computer Science And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members

More information

Instantiation of Template class

Instantiation of Template class Class Templates Templates are like advanced macros. They are useful for building new classes that depend on already existing user defined classes or built-in types. Example: stack of int or stack of double

More information

Pad Configuration and GPIO Driver for MPC5500 Martin Kaspar, EMEAGTM, Roznov Daniel McKenna, MSG Applications, East Kilbride

Pad Configuration and GPIO Driver for MPC5500 Martin Kaspar, EMEAGTM, Roznov Daniel McKenna, MSG Applications, East Kilbride Freescale Semiconductor Application Note Document Number: AN2855 Rev. 0, 2/2008 Pad Configuration and GPIO Driver for MPC5500 by: Martin Kaspar, EMEAGTM, Roznov Daniel McKenna, MSG Applications, East Kilbride

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 5 Anatomy of a Class Outline Problem: How do I build and use a class? Need to understand constructors A few more tools to add to our toolbox Formatting

More information

Why C++? C vs. C Design goals of C++ C vs. C++ - 2

Why C++? C vs. C Design goals of C++ C vs. C++ - 2 Why C++? C vs. C++ - 1 Popular and relevant (used in nearly every application domain): end-user applications (Word, Excel, PowerPoint, Photoshop, Acrobat, Quicken, games) operating systems (Windows 9x,

More information

AVR1303: Use and configuration of IR communication module. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1303: Use and configuration of IR communication module. 8-bit Microcontrollers. Application Note. Features. 1 Introduction AVR1303: Use and configuration of IR communication module Features IrDA 1.4 compatible for baud rates up to 115.2 Kbit/s Selectable transmitter pulse modulation schemes: - 3/16 of baud rate period - Fixed

More information

S1C17 Family Application Library S1C17 Series Steps Calculation Library

S1C17 Family Application Library S1C17 Series Steps Calculation Library S1C17 Family Application Library S1C17 Series Steps Calculation Library Rev. 2.0 Evaluation board/kit and Development tool important notice 1. This evaluation board/kit or development tool is designed

More information

Object Oriented Programming in C#

Object Oriented Programming in C# Introduction to Object Oriented Programming in C# Class and Object 1 You will be able to: Objectives 1. Write a simple class definition in C#. 2. Control access to the methods and data in a class. 3. Create

More information

Application Note Microcontrollers. C Flash Drivers for T89C51RC/RB/IC2 and AT89C51RC/RB/IC2 for Keil Compilers

Application Note Microcontrollers. C Flash Drivers for T89C51RC/RB/IC2 and AT89C51RC/RB/IC2 for Keil Compilers C Flash Drivers for T89C51RC/RB/IC2 and AT89C51RC/RB/IC2 for Keil Compilers This application note describes C routines for Keil compiler to perform In-application Programming/Self programming according

More information

Atmel AVR ATxmega384C3 microcontroller OLED display with 128x32 pixels resolution Analog sensors. Ambient light sensor Temperature sensor

Atmel AVR ATxmega384C3 microcontroller OLED display with 128x32 pixels resolution Analog sensors. Ambient light sensor Temperature sensor APPLICATION NOTE Atmel AVR1939: XMEGA-C3 Xplained Getting Started Guide Features Atmel AVR ATxmega384C3 microcontroller OLED display with 128x32 pixels resolution Analog sensors Ambient light sensor Temperature

More information

MC33696MODxxx Kit. 1 Overview. Freescale Semiconductor Quick Start Guide. Document Number: MC33696MODUG Rev. 0, 05/2007

MC33696MODxxx Kit. 1 Overview. Freescale Semiconductor Quick Start Guide. Document Number: MC33696MODUG Rev. 0, 05/2007 Freescale Semiconductor Quick Start Guide Document Number: MC33696MODUG Rev. 0, 05/2007 MC33696MODxxx Kit by: Laurent Gauthier Toulouse, France 1 Overview This document provides introductory information

More information

C# SDK Wrapper Silicon Software Runtime

C# SDK Wrapper Silicon Software Runtime C# SDK Wrapper Silicon Software Runtime V 5.5.0 Documentation Imprint Silicon Software GmbH Steubenstraße 46 68163 Mannheim, Germany Tel.: +49 (0) 621 789507 0 Fax: +49 (0) 621 789507 10 2017 Silicon Software

More information

Programming, numerics and optimization

Programming, numerics and optimization Programming, numerics and optimization Lecture A-2: Programming basics II Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428 March

More information

Array Elements as Function Parameters

Array Elements as Function Parameters Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;

More information

.NET programming interface for R&S GTSL and R&S EGTSL

.NET programming interface for R&S GTSL and R&S EGTSL Application Note 2.2016 SE001_0e.NET programming interface for R&S GTSL and R&S EGTSL Application Note Products: ı R&S CompactTSVP ı R&S PowerTSVP ı R&S GTSL ı R&S EGTSL This application note describes

More information

ENERGY 211 / CME 211. Functions

ENERGY 211 / CME 211. Functions ENERGY 211 / CME 211 Lecture 8 October 8, 2008 1 Functions So far, we have seen programs in which all code resides within a main function Complex programs consist of subprograms that perform particular

More information

CS Programming In C

CS Programming In C CS 24000 - Programming In C Week Two: Basic C Program Organization and Data Types Zhiyuan Li Department of Computer Science Purdue University, USA 2 int main() { } return 0; The Simplest C Program C programs

More information

Classes. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT).

Classes. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT). UNITII Classes Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT). It s a User Defined Data-type. The Data declared in a Class are called Data- Members

More information

EMBEDDED SYSTEMS PROGRAMMING OO Basics

EMBEDDED SYSTEMS PROGRAMMING OO Basics EMBEDDED SYSTEMS PROGRAMMING 2014-15 OO Basics CLASS, METHOD, OBJECT... Class: abstract description of a concept Object: concrete realization of a concept. An object is an instance of a class Members Method:

More information

Addendum to Fluorolog Tau-3 Lifetime System Operation Manual

Addendum to Fluorolog Tau-3 Lifetime System Operation Manual Addendum to Fluorolog Tau-3 Lifetime System Operation Manual Pockels-cell power supplies http://www.jobinyvon.com (All HORIBA Jobin Yvon companies were formerly known as Jobin Yvon) USA: HORIBA Jobin Yvon

More information

CST141 Thinking in Objects Page 1

CST141 Thinking in Objects Page 1 CST141 Thinking in Objects Page 1 1 2 3 4 5 6 7 8 Object-Oriented Thinking CST141 Class Abstraction and Encapsulation Class abstraction is the separation of class implementation from class use It is not

More information

Object-Oriented Programming Concepts

Object-Oriented Programming Concepts Object-Oriented Programming Concepts Real world objects include things like your car, TV etc. These objects share two characteristics: they all have state and they all have behavior. Software objects are

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

ColdFire Convert 1.0 Users Manual by: Ernest Holloway

ColdFire Convert 1.0 Users Manual by: Ernest Holloway Freescale Semiconductor CFCONVERTUG Users Guide Rev.0, 09/2006 ColdFire Convert 1.0 Users Manual by: Ernest Holloway The ColdFire Convert 1.0 (CF) is a free engineering tool developed to generate data

More information

APPLICATION NOTE. Atmel AT02260: Driving AT42QT1085. Atmel QTouch. Features. Description

APPLICATION NOTE. Atmel AT02260: Driving AT42QT1085. Atmel QTouch. Features. Description APPLICATION NOTE Atmel AT02260: Driving AT42QT1085 Atmel QTouch Features Overview of Atmel AT42QT1085 Circuit configuration with Host MCU SPI communication Demonstration program Description This application

More information

RENESAS TOOL NEWS [Notes] CS+ Code Generator for RL78 (CS+ for CC) CS+ Code Generator for RL78 (CS+ for CA and CX) e 2 studio (Code Generator Plug-in)

RENESAS TOOL NEWS [Notes] CS+ Code Generator for RL78 (CS+ for CC) CS+ Code Generator for RL78 (CS+ for CA and CX) e 2 studio (Code Generator Plug-in) [Notes] CS+ Code Generator for RL78 (CS+ for CC) CS+ Code Generator for RL78 (CS+ for CA and CX) e 2 studio (Code Generator Plug-in) R20TS0038EJ0100 Rev.1.00 Outline When using the CS+ Code Generator for

More information

E. Rescorla. <draft-ietf-smime-x txt> October 1998 (Expires April 1999) Diffie-Hellman Key Agreement Method. Status of this Memo

E. Rescorla. <draft-ietf-smime-x txt> October 1998 (Expires April 1999) Diffie-Hellman Key Agreement Method. Status of this Memo HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 08:11:59 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Wed, 28 Oct 1998 17:41:00 GMT ETag: "323a37-3a03-3637572c" Accept-Ranges: bytes Content-Length: 14851 Connection:

More information

PHOTRON LIMITED bears no responsibility for the results of using the product or from following the instructions in this manual.

PHOTRON LIMITED bears no responsibility for the results of using the product or from following the instructions in this manual. The copyright of this manual is held by PHOTRON LIMITED. Product specifications and manual contents can change without advanced notification. This manual was created taking every possible measure to ensure

More information

STSW-BNRGUI. BlueNRG GUI SW package. Data brief. Features. Description

STSW-BNRGUI. BlueNRG GUI SW package. Data brief. Features. Description Data brief BlueNRG GUI SW package Features Product status link STSW-BNRGUI Graphical user interface (GUI) PC application GUI tools: Load history Save history (csv file) Save history as text (txt file)

More information

Holtek C and ANSI C Feature Comparison User s Guide

Holtek C and ANSI C Feature Comparison User s Guide Holtek C and ANSI C Feature Comparison User s Guide July 2009 Copyright 2009 by HOLTEK SEMICONDUCTOR INC. All rights reserved. Printed in Taiwan. No part of this publication may be reproduced, stored in

More information

Using the Multi-Axis g-select Evaluation Boards

Using the Multi-Axis g-select Evaluation Boards Freescale Semiconductor Application Note Rev 2, 10/2006 Using the Multi-Axis g-select Evaluation Boards by: Michelle Clifford and John Young Applications Engineers Tempe, AZ INTRODUCTION This application

More information

10. Object-oriented Programming. 7. Juli 2011

10. Object-oriented Programming. 7. Juli 2011 7. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 47 Outline Object Case Study Brain Teaser Copy Constructor & Operators Object-oriented Programming, i.e.

More information

Android AMP SDK v6. Migration Guide: From v5 to v6. Updated: 18-Apr-16

Android AMP SDK v6. Migration Guide: From v5 to v6. Updated: 18-Apr-16 Android AMP SDK v6 Migration Guide: From v5 to v6 Updated: 18-Apr-16 amp-sdk-support@akamai.com TABLE OF CONTENTS 1) Playing a stream 3 2) Play a stream at a specified position (in seconds) 4 3) Getting

More information

8-megabyte, 4-megabyte, and 2-megabyte 2.7-volt Only DataFlash Cards AT45DCB008D AT45DCB004D AT45DCB002D. Not Recommended for New Design

8-megabyte, 4-megabyte, and 2-megabyte 2.7-volt Only DataFlash Cards AT45DCB008D AT45DCB004D AT45DCB002D. Not Recommended for New Design Features MultiMediaCard (MMC) Form Factor Single 2.7V to 3.6V Supply 66 MHz Max Clock Frequency Serial Peripheral Interface (SPI) Compatible Low Power Dissipation 10 ma Active Read Current Typical 25 µa

More information

Abstract 1. Introduction

Abstract 1. Introduction Jaguar: A Distributed Computing Environment Based on Java Sheng-De Wang and Wei-Shen Wang Department of Electrical Engineering National Taiwan University Taipei, Taiwan Abstract As the development of network

More information