OPC UA Protocol Stack

Size: px
Start display at page:

Download "OPC UA Protocol Stack"

Transcription

1 Enhanced Universal Realtime Operating System OPC UA Protocol Stack Programming Guide and Reference Document version: 05/2018 EUROS Embedded Systems GmbH Campestraße 12 D Nuremberg Germany Phone: Fax: Web:

2 Rev. Changes Date -001 first issue

3 General remarks All rights of this product information are reserved. No part of this product information may be reproduced in any form (print, photocopy, microfilm or other media) or processed, copied and distributed to third parties using electronic systems. This product information describes the present status of development. Modifications therefore are reserved. This product information was prepared with utmost care. However, no guarantee or liability for the faultlessness and correctness of the contents can be taken upon. EUROS is a registered trademark of EUROS Embedded Systems GmbH. IBM is a registered trademark of the IBM Corporation. Windows 7/8/10 are registered trademarks of the Microsoft Corporation. All others brands and product names are trademarks or registered trademarks of the appropriate title holders. Copyright by EUROS Embedded Systems GmbH, Campestr. 12, D Nuremberg, Germany Printed in Germany

4

5 The EUROS documentation The Documentation of the operating system EUROS is devided in four manuals: EUROS Programmer s Guide, EUROS User s Guide, EUROS Reference Manual and the EUROS Installation Guide, which are part of the EUROS development licence. The four basic manuals of the operating system have the following goals: EUROS Programmer s Guide The Programmer s Guide gives an overview over the concepts, the components and the system services of the operating system EUROS. The EUROS components and system objects are introduced and their properties and use are described. EUROS Reference Manual The EUROS Reference Manual contains detailled and complete descriptions of the system calls implemented under EUROS. It is the basic tool in order to write succesfully applications under the operating system EUROS. The system services of the Microkernel, I/O System, Process Manager, C-Library and the POSIX Interface are described. EUROS Installation Guide The EUROS Installation Guide contains information for the system administrator concerning the configuration, installation and adaption of the operating system. It is included in the development package and describes, how the adapt a target board monitor, how to configure a timer, an UART and an interrupt controller used by the operating system and how to dimension the EUROS data areas. Further documentation Each EUROS software component comes with its own documentation. Of special interest for OPC UA users are the manual of the respective ethernet driver and the manual of the networking components of EUROS. OPC UA detailed documentation The OPC UA protocol stack uses the same API as Unified Automation ( there Unified automation can be used for a look up of detail information.

6

7 EUROS IrDA Component Contents Table of contents Chapter 1 Introduction 1.1 OPC UA OPC UA Profiles Chapter 2 OPCUA Programming Guide 2.1 Installation Files Library Versions Dependencies on other libraries EUROSmake OPCUA programming Preliminaries Configuration Sample Code i

8 Contents EUROS IrDA Component ii

9 Definitions The following notational conventions are used for this manual: Block print <CR> User input, examples, name of variables and functions are displayed in block print. Non-printable characters are displayed as their names in angle brackets. [ ] Options and optional parameters are displayed in square brackets. Options and parameters of which exactly one can be used are seperated by a vertical line. M Function may be called in main(). I N S A Function may be called in I state. Function may be called in N state. Function may be called in S state. Function may be called in A state.

10

11 Chapter 1 Introduction

12

13 OPC UA Protocol stack Introduction 1.1 OPC UA OPC UA (Unified Architecture) is a standard provided by the OPC Foundation for data exchange in industrial automation. Furthermore it provides a data model which can be extended by third partites. All data is organized as nodes in a hierarchical and object oriented address space. 1-3

14 Introduction OPC UA Protocol stack 1-4

15 OPC UA Protocol stack Introduction 1.2 OPC UA Profiles OPC UA profiles are used for scaling OPC UA applications in accordance with the capability of the used hardware ranging from low-end microcontrollers to high-end PCs. For OPC UA servers for profiles are defined Nano: This is the most basic profile. It includes the ability to establish communications with clients, create sessions, browse the address space and read and/or write to attributes of nodes. Micro: The micro profile contains all functionality of the nano profile and adds the capability to monitor nodes for changes of their value passed on a subscription model. Embedded (emb): The embedded profile takes the micro profile and adds cryptogrpahic routines for secure communications Standard (std): In addition to the capabilities of the embedded profile, it is now possible for a client to execue function calls on the server. Furthermore authentication and authorization mechanisms are added. Address space can be either sourced in from a file at startup time of the server or compiled in into the server at compile time. In the later case we will speak of a static address space and name the resulting profiles (informally) by adding a -static to the profile name, i. e. nano-static, micro-static, emb-static, std-static. 1-5

16 Introduction OPC UA Protocol stack 1-6

17 Chapter 2 OPCUA Programming Guide

18 OPCUA Programming Guide OPC UA Protocol stack 2-8

19 OPC UA Protocol stack OPCUA Programming Guide 2.1 Installation Files The following files are shipped with the OPC UA protocol stack where profile is one of the OPC UA profiles:: crashhandler_<profile>.lib encoder_proxy_<profile>.lib uaencoder_<profile>.lib ipc_<profile>.lib Routines for gathering and providing basic information on case of a crash of the application Routines for encoding and decoding transmitted data Routines for data exchange between diferent instances of the OPC UA server and/or external applications memory_<profile>.lib Memory management minimalprovider_<profile>.lib Basic routines for providing the address space network_<profile>.lib platform_<profile>.lib timer_<profile>.lib uaapplication_<profile>.lib uabase_<profile>.lib uaseconv_<profile>.lib Networking routines Abstraction layer for accessing OS services Timer routines uaseconv_proxy_<profile>.lib uaserver_<profile>.lib uaserverprovider_<profile>.lib uasession_proxy_<profile>.lib uatcp_<profile>.lib uatcpmsg_proxy_<profile>.lib util_<profile>.lib Configuration API Basic routines of the OPC UA protocol stack Routines for the secure channel communication between server and client OPC UA server generic routines OPC UA server OPC UA specific routines session management OPC UA s TCP protocol Miscellaneous helper function 2-9

20 OPCUA Programming Guide OPC UA Protocol stack uaconfig_<profile>.lib uafielformat_<profile>.lib trace_<profile>.lib pki_store_proxy_<profile>.lib uapki_<profile>.lib uapki_store_<profile>.lib uacrypto_<profile>.lib opcua2018/<profile> Parsing routines for configuration files (not in static profiles) Routines for file handling (not in static profiles) Trace library (Tracing versions only) where <profile> is one of the OPCUA profiles: nano, micro, emb, std Management of cryptographic certificates (emb and std profiles only) Cryptographic routines (emb and std profiles only) C header file for OPCUA function calls, macro definitions and data types where <profile> is one of the OPCUA profiles: nano, micro, emb, std Library Versions The OPCUA protocol stack library is shipped in a Debug version, a No-Debug version and in a Tracing version. The Debug and/or the Tracing version should be used when developing OPCUA applications. The No-Debug version should be used for production code Dependencies on other libraries When using the embedded or the standard profile the application must be linked against libcrypto.lib from OpenSSL project. Unless using static variants (i. e. with namespace compiled in) the application must be linked against the file system library fms2.lib. All profiles require process.lib, net.lib and clib.lib. 2-10

21 OPC UA Protocol stack OPCUA Programming Guide 2.2 EUROSmake When using EUROSmake just add the line OPCUA_PROFILE=<profile> to your project.inc file where profile is the OPCUA profile you want to use: nano, micro, emb, std. If you want to build-in the namespace add -static to the profile name, e. g. nano-static. EUROSmake will take care of including all neccessary headers and libraries so no further steps are required. 2-11

22 OPCUA Programming Guide OPC UA Protocol stack 2.3 OPCUA programming Preliminaries The OPCUA stacks needs network services and semaphore services. Before starting the OPCUA stack please ensure that those services are set up correctly (cf. the respective EUROS manuals). If you are using cryptographic code (i. e. embedded or standard profiles) you must ensure that the random number generator has at least 256 bytes of entropy available. Furthermore you are required to define a global variable: #include <appconfig.h> struct appconfig g_appconfig; Configuration Before starting the OPCUA stack, you are required to initialize the product info of the g_appconfig structure: /*! [product_info] */ g_appconfig.manufacturer_name = <your name>; g_appconfig.product_name = <your product>; g_appconfig.product_uri = <your URI>; g_appconfig.application_name = <your application name>; g_appconfig.application_uri = <your applciation URI>; g_appconfig.dns = <domain name of the device>; /*! [product_info] * If you are using the static variants you will have to initialize further members of g_appconfig. Next call: #include <uaapplication/application.h> int uaapplication_init(struct uaapplication *app, int trace_level, int facility_mask, const char *config_file); If you are using a static variant config_file is ignored (and can be set to NULL), otherwise it must be the filename of a configuarion file containing necessary configuration data. Next call #include <uaserver/init.h> int uaserver_init(struct uaserver_provider *provider, int num_provider); In case you are using a static namespace the provider list should contain {-1, uaprovider_server_init} and you should provide a function int ua_register_static_addressspace(void); which handles the creation of the namespace. If you are loading you name space from a file, set uaserver_init s provider list to {-1, custom_init} with some custom function #include <uaserver/provider/provider.h> 2-12

23 OPC UA Protocol stack OPCUA Programming Guide int provider_file_init(struct uaprovider *ctx); which must call #include <uaserver/addressspace/persistence.h> int ua_addressspace_load_file(const char *filename, void *store, struct ua_addressspace_config *add); or int ua_addressspace_load_fd(ua_file_t f, void *store, struct ua_addressspace_config *add); for each namespace provider file you want to load. If file system is not supported you must also load your certificates (if required) via #include <proxystub/pki_store.h> int pki_store_save_cert(uint32_t store, struct pki_store_credentials *credentials, enum pki_store_loc location, size_t cert_len, unsigned char *cert_data, int prio); credentials are ignored without file system and can be set to NULL. The OPCUA server can now be started via #include <uaserver/init.h> int uaserver_start(void); After a sucessful start the calling task must enter an infinite loop (for the runtime of the OPCUA server) which calls: #include <uaapplication/application.h> int uaapplication_timed_docom(struct uaapplication *app, int timeout_ms); indefinitely, where app must be the variable initialized by uaapplication_init. 2-13

24 OPCUA Programming Guide OPC UA Protocol stack 2-14

25 OPC UA Protocol stack OPCUA Programming Guide 2.4 Sample Code #include <stdio.h> #include <uaapplication/application.h> #include <uaserver/init.h> #include <trace/trace.h> #include <appconfig.h> #include <uaprovider/server/uaprovider_server.h>#include <platform/ hostname.h> #include <platform/shutdown.h> #include <crashhandler/crashhandler.h> #include <memory/memory_layout.h> #include <uaserver/addressspace/persistence.h> #if USE_PROVIDER_FILE # include <uaserver/provider/provider.h> #endif #if defined(have_pki) # include <pki_store/pki_store_types.h> #endif #include <uaprovider/minimal/uaprovider_minimal.h> #include <openssl/rand.h> int server_main_init(int trace_level, int facility_mask, const char *config_file) { int ret; unsigned int i; static char fqdn[64]; struct ua_string tmp; ua_get_fqdn(fqdn, sizeof(fqdn)); /*! [product_info] */ g_appconfig.manufacturer_name = "EUROS GmbH"; g_appconfig.product_name = "HP SDK UA Demo Server"; g_appconfig.product_uri = "urn:euros:uademoserverhp"; g_appconfig.application_name = "HP SDK UA Demo Server"; g_appconfig.application_uri = "urn:euros:hpc:example"; 2-15

26 OPCUA Programming Guide OPC UA Protocol stack g_appconfig.dns /*! [product_info] */ = fqdn; /*! [uaapplication_init] */ #if! USE_PROVIDER_FILE g_appconfig.num_timers = 10; /* 100 */ g_appconfig.ipc.ipc_size = 130 * 1024; /* 16 MB */ g_appconfig.ipc.num_queues = 10; g_appconfig.ipc.num_services = 50; g_appconfig.ipc.num_messages = 100; g_appconfig.ipc.outprocess_encoder = 0; g_appconfig.net.buffer_size = 8*1024; /* 64 kb */ g_appconfig.net.num_buffers = 10; /* 100 */ g_appconfig.net.num_buffers_per_connection = 5; /* 50 */ g_appconfig.net.max_connections_per_ip = 19; g_appconfig.encoder.max_call_depth = 10; g_appconfig.encoder.max_string_length = 1000; g_appconfig.encoder.max_bytestring_length = 8000; g_appconfig.encoder.max_array_length = 1000; g_appconfig.subscription.num_sessions_with_subscriptions = 4; g_appconfig.subscription.num_publishrequests_per_session = 4; g_appconfig.subscription.num_notificationmessages_per_session = 8; g_appconfig.subscription.num_subscriptions_per_session = 2; g_appconfig.subscription.num_subscriptions = 8; g_appconfig.subscription.num_monitoreditems = 80; g_appconfig.subscription.max_monitoreditem_queue_size = 100; g_appconfig.subscription.max_notifications_per_publish = 1000; g_appconfig.subscription.min_publishing_interval = 10; g_appconfig.subscription.max_publishing_interval = 10000; g_appconfig.subscription.min_sampling_interval = 10; g_appconfig.subscription.max_sampling_interval = 10000; g_appconfig.subscription.min_lifetime = 1000; g_appconfig.subscription.max_lifetime = ; g_appconfig.session.num_sessions = 5; 2-16

27 OPC UA Protocol stack OPCUA Programming Guide g_appconfig.session.num_calls = 50; g_appconfig.session.keep_spare_session = true; g_appconfig.session.authentication_num_users = 10; g_appconfig.session.lifetime_check_interval = 5000; g_appconfig.session.lifetime_min = 10000; g_appconfig.session.lifetime_max = ; # if defined(ua_authentication_support) && defined(support_file_io) g_appconfig.session.authentication_passwd_file = "passwd"; # endif /* UA_AUTHENTICATION && SUPPORT_FILE_IO */ g_appconfig.session.authorization_num_users = 10; # if defined(ua_authorization_support) && defined(support_file_io) g_appconfig.session.authorization_users_file = "users"; # endif /* UA_AUTHORIZATION_SUPPORT && SUPPORT_FILE_IO */ g_appconfig.session.authorization_num_groups = 10; # if defined(ua_authorization_support) && defined(support_file_io) g_appconfig.session.authorization_groups_file = "groups"; # endif /* UA_AUTHORIZATION_SUPPORT && SUPPORT_FILE_IO */ g_appconfig.uatcpmsg.num_conns = 5; g_appconfig.uatcpmsg.num_listeners = 2; g_appconfig.uatcpmsg.num_ctxts = 50; g_appconfig.uatcpmsg.num_chunks = 3; g_appconfig.seconv.num_channels = 10; g_appconfig.seconv.min_security_token_lifetime = ; g_appconfig.seconv.max_security_token_lifetime = ; g_appconfig.seconv.keep_spare_channel = true; # ifdef HAVE_PKI g_appconfig.pkistore.num_pkistores = 1; g_appconfig.pkistore.pkistores = &MyPkistores; MyPkistores.config = "pki_store_0;5;5;5;5"; # endif g_appconfig.endpoint.endpoints = &MyEndpoint; MyEndpoint.endpoint_url = "opc.tcp://[hostname]:4840"; MyEndpoint.bind_address = " "; MyEndpoint.bind_port = 4840; MyEndpoint.user_tokens.num = 1; 2-17

28 OPCUA Programming Guide OPC UA Protocol stack g_appconfig.endpoint.user_tokens = &MyUserToken; g_appconfig.endpoint.num_user_tokens = 1; MyUserToken.name = "MyUserToken"; MyUserToken.type = UA_USERTOKENTYPE_ANONYMOUS; MyUserToken.policy_id = UA_SECURITY_POLICY_NONE; g_appconfig.endpoint.num_endpoints = 1; g_appconfig.endpoint.sec_configs = MySechan; MySechan[0].policy_id = UA_SECURITY_POLICY_NONE; MySechan[0].mode_none = true; MySechan[0].certificate = -1; # ifdef HAVE_CRYPTO MyEndpoint.security_policies.num = 2; MyEndpoint.security_policies.indicies[0] = 0; MyEndpoint.security_policies.indicies[1] = 1; MySechan[1].policy_id = UA_SECURITY_POLICY_BASIC256SHA256; MySechan[1].mode_none = false; MySechan[1].mode_sign_and_encrypt = true; MySechan[1].certificate = 0; MySechan[1].max_chain_length = 3; MySechan[1].max_verify_results = 5; g_appconfig.endpoint.num_sec_config = 2; g_appconfig.endpoint.num_sechan_certs = 1; g_appconfig.endpoint.allow_deprecated_policies = true; g_appconfig.endpoint.sechan_certs = &MySechanCert; ua_bytestring_attach(&mysechancert.server_cert, (char*) g_cert1024_der, (int) sizeof(g_cert1024_der)); ret = crypto_key_from_pem(g_private1024_key, sizeof(g_private1024_key), 0, 0, crypto_key_type_rsa_private, &MySechanCert.server_priv_key); if (0!= ret) { TRACE_ERROR(TRACE_FAC_APPLICATION, "could not source private key\n"); goto out_init; } # else MyEndpoint.security_policies.num = 1; MyEndpoint.security_policies.indicies[0] = 0; g_appconfig.endpoint.num_sec_config = 1; 2-18

29 OPC UA Protocol stack OPCUA Programming Guide # endif #endif g_appconfig.client.num_clients = 10; g_appconfig.client.num_subscriptions = 10; g_appconfig.client.session_timeout = ; g_appconfig.client.call_timeout = 10000; g_appconfig.client.return_diagnostics = 0; g_appconfig.client.publish_timeout = 60000; g_appconfig.client.keep_request = false; #ifdef HAVE_CRYPTO i = 0; do { #endif unsigned int ent = rand(); RAND_seed(&ent, sizeof(ent)); i += sizeof(ent); } while(256 > i); ret = uaapplication_init(&g_app, trace_level, facility_mask, config_file); if (ret!= 0) { TRACE_ERROR(TRACE_FAC_APPLICATION, "uaapplication_init failed.\n"); goto out_init; } /*! [uaapplication_init] */ /* replace [hostname] place holder in endpoint urls with fqdn */ for (i = 0; i < g_appconfig.endpoint.num_endpoints; ++i) { ua_string_set(&tmp, g_appconfig.endpoint.endpoints[i].endpoint_url); if (ua_string_index_of(&tmp, "[hostname]")!= -1) { ua_string_replace(&tmp, "[hostname]", fqdn); /* free old endpoint url */ ua_free((void *)g_appconfig.endpoint.endpoints[i].endpoint_url); /* set new one */ g_appconfig.endpoint.endpoints[i].endpoint_url = ua_strdup(ua_string_const_data(&tmp)); 2-19

30 OPCUA Programming Guide OPC UA Protocol stack } } ua_string_clear(&tmp); /*! [init_sdk] */ TRACE_INFO(TRACE_FAC_APPLICATION, "Initializing providers...\n"); ret = uaserver_init(g_provider, countof(g_provider)); if (ret < 0) goto out_server_init; /*! [init_sdk] */ #ifdef HAVE_PKI ret = pki_store_save_cert(0, NULL, pki_store_loc_trstd, sizeof(g_client_cert), g_client_cert, 0); if (ret < 0) goto out_server_init; #endif /*! [start_server] */ TRACE_INFO(TRACE_FAC_APPLICATION, "Starting server...\n"); ret = uaserver_start(); if (ret < 0) goto out_server_start; /*! [start_server] */ return 0; out_server_start: uaserver_clear(g_provider, countof(g_provider)); out_server_init: uaapplication_cleanup(&g_app); out_init: return ret; } 2-20

P.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above

P.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above P.G.TRB - COMPUTER SCIENCE Total Marks : 50 Time : 30 Minutes 1. C was primarily developed as a a)systems programming language b) general purpose language c) data processing language d) none of the above

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

BLM2031 Structured Programming. Zeyneb KURT

BLM2031 Structured Programming. Zeyneb KURT BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help

More information

Pelco VideoXpert SDK 1.1 Quick Start Guide. VideoXpert_SDK_QSG-B 03 / 2016

Pelco VideoXpert SDK 1.1 Quick Start Guide. VideoXpert_SDK_QSG-B 03 / 2016 Pelco VideoXpert SDK 1.1 Quick Start Guide 03 / 2016 Contents Contents What Is the Pelco VideoXpert SDK?...3 Before Installing the Pelco VideoXpert SDK...5 Installing the Pelco VideoXpert SDK...6 Running

More information

Getting Familiar with CCN

Getting Familiar with CCN Getting Familiar with CCN 1 Project Goal In this project you will experiment with simple client/server programs in CCN to familiarize yourselves with the CCN basics. You will compile, run, and answer the

More information

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14 C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition

More information

Application Note. embos/ip Migration Guide

Application Note. embos/ip Migration Guide Application Note embos/ip Migration Guide Document: AN07001 Revision: 9 Date: June 30, 2016 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2 Disclaimer Specifications written in this

More information

Compiler Roll-out Plan and zos 1.2 Changes

Compiler Roll-out Plan and zos 1.2 Changes Compiler Roll-out Plan and zos 1.2 Changes Colette A. Manoni Compilers and System Levels A new system level does not imply a new compiler OS/390 2.10 compiler is shipped with the following systems. OS/390

More information

embos Real Time Operating System CPU & Compiler specifics for Texas Instruments MSP430 CPUs and Rowley compiler for MSP430 Document Rev.

embos Real Time Operating System CPU & Compiler specifics for Texas Instruments MSP430 CPUs and Rowley compiler for MSP430 Document Rev. embos Real Time Operating System CPU & Compiler specifics for Texas Instruments MSP430 CPUs and Rowley compiler for MSP430 Document Rev. 1 A product of Segger Microcontroller Systeme GmbH www.segger.com

More information

6.096 Introduction to C++ January (IAP) 2009

6.096 Introduction to C++ January (IAP) 2009 MIT OpenCourseWare http://ocw.mit.edu 6.096 Introduction to C++ January (IAP) 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Welcome to 6.096 Lecture

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

EL6483: Brief Overview of C Programming Language

EL6483: Brief Overview of C Programming Language EL6483: Brief Overview of C Programming Language EL6483 Spring 2016 EL6483 EL6483: Brief Overview of C Programming Language Spring 2016 1 / 30 Preprocessor macros, Syntax for comments Macro definitions

More information

Section 3: File I/O, JSON, Generics. Meghan Cowan

Section 3: File I/O, JSON, Generics. Meghan Cowan Section 3: File I/O, JSON, Generics Meghan Cowan POSIX Family of standards specified by the IEEE Maintains compatibility across variants of Unix-like OS Defines API and standards for basic I/O: file, terminal

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

COMP322 - Introduction to C++ Lecture 02 - Basics of C++

COMP322 - Introduction to C++ Lecture 02 - Basics of C++ COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.

More information

Exception Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011

Exception Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011 More C++ David Chisnall March 17, 2011 Exceptions A more fashionable goto Provides a second way of sending an error condition up the stack until it can be handled Lets intervening stack frames ignore errors

More information

EUROScope lite 16FX Reference Manual

EUROScope lite 16FX Reference Manual lite 16FX Reference Manual June 2007 EUROS Embedded Systems GmbH Campestraße 12 D-90419 Nuremberg Germany Fon: +49-911-300328-0 Fax: +49-911-300328-9 Web: www.euros-embedded.com email: support@euros-embedded.com

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/28 embos for M16C CPUs

More information

Introduction to N1031. Components of N1031. Guiding Principles. Walk through, issues, and rationale

Introduction to N1031. Components of N1031. Guiding Principles. Walk through, issues, and rationale Introduction to N1031 Walk through, issues, and rationale Components of N1031 New functions that protect against buffer overflow and always produce null terminated strings New reentrant versions of old

More information

CprE 288 Introduction to Embedded Systems Exam 1 Review. 1

CprE 288 Introduction to Embedded Systems Exam 1 Review.  1 CprE 288 Introduction to Embedded Systems Exam 1 Review http://class.ece.iastate.edu/cpre288 1 Overview of Today s Lecture Announcements Exam 1 Review http://class.ece.iastate.edu/cpre288 2 Announcements

More information

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files CS113: Lecture 7 Topics: The C Preprocessor I/O, Streams, Files 1 Remember the name: Pre-processor Most commonly used features: #include, #define. Think of the preprocessor as processing the file so as

More information

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION EDIABAS Electronic Diagnostic Basic System BEST/2 LANGUAGE DESCRIPTION VERSION 6b Copyright BMW AG, created by Softing AG BEST2SPC.DOC CONTENTS CONTENTS...2 1. INTRODUCTION TO BEST/2...5 2. TEXT CONVENTIONS...6

More information

Stream Computing using Brook+

Stream Computing using Brook+ Stream Computing using Brook+ School of Electrical Engineering and Computer Science University of Central Florida Slides courtesy of P. Bhaniramka Outline Overview of Brook+ Brook+ Software Architecture

More information

from Appendix B: Some C Essentials

from Appendix B: Some C Essentials from Appendix B: Some C Essentials tw rev. 22.9.16 If you use or reference these slides or the associated textbook, please cite the original authors work as follows: Toulson, R. & Wilmshurst, T. (2016).

More information

Unified-E OPC-UA Adapter

Unified-E OPC-UA Adapter Unified-E OPC-UA Adapter Adapter version 1.5.0.4 and higher September 2017 Content 1 General... 2 2 Specific Adapter Parameters... 2 3 Datapoint Addressing... 3 Unified-E OPC-UA Adapter Page 1 of 5 1 General

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

MPLAB C1X Quick Reference Card

MPLAB C1X Quick Reference Card MPLAB C1X Quick Reference Card 34 MPLAB C17 Quick Reference MPLAB C17 Command Switches Command Description /?, /h Display help screen /D[=] Define a macro /FO= Set object file name /FE=

More information

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah Lecturer Department of Computer Science & IT University of Balochistan 1 Outline p Introduction p Program development p C language and beginning with

More information

Lecture 03 Bits, Bytes and Data Types

Lecture 03 Bits, Bytes and Data Types Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics

More information

CS 61C: Great Ideas in Computer Architecture Introduction to C

CS 61C: Great Ideas in Computer Architecture Introduction to C CS 61C: Great Ideas in Computer Architecture Introduction to C Instructors: Vladimir Stojanovic & Nicholas Weaver http://inst.eecs.berkeley.edu/~cs61c/ 1 Agenda C vs. Java vs. Python Quick Start Introduction

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018

embos Real-Time Operating System embos plug-in for IAR C-Spy Debugger Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018 embos Real-Time Operating System Document: UM01025 Software Version: 3.1 Revision: 0 Date: May 3, 2018 A product of SEGGER Microcontroller GmbH www.segger.com 2 Disclaimer Specifications written in this

More information

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

Introduction to C++ Systems Programming

Introduction to C++ Systems Programming Introduction to C++ Systems Programming Introduction to C++ Syntax differences between C and C++ A Simple C++ Example C++ Input/Output C++ Libraries C++ Header Files Another Simple C++ Example Inline Functions

More information

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets

More information

Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types

More information

Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A

Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Name: ID#: Section #: Day & Time: Instructor: Answer all questions as indicated. Closed book/closed

More information

C Review. MaxMSP Developers Workshop Summer 2009 CNMAT

C Review. MaxMSP Developers Workshop Summer 2009 CNMAT C Review MaxMSP Developers Workshop Summer 2009 CNMAT C Syntax Program control (loops, branches): Function calls Math: +, -, *, /, ++, -- Variables, types, structures, assignment Pointers and memory (***

More information

CMPE-013/L. Introduction to C Programming

CMPE-013/L. Introduction to C Programming CMPE-013/L Introduction to C Programming Bryant Wenborg Mairs Spring 2014 What we will cover in 13/L Embedded C on a microcontroller Specific issues with microcontrollers Peripheral usage Reading documentation

More information

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call

More information

OSAL, ObjectOrientation in C. Embedded C in the past. application. Simple and easy:

OSAL, ObjectOrientation in C. Embedded C in the past. application. Simple and easy: Embedded C in the past Simple and easy: application hw OS CPU A specific hardware A proper operation system Development and test with the given platform Embedded C The past - today Helper tools and equipment

More information

CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community

CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and IAR compiler Document Rev. 5

embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and IAR compiler Document Rev. 5 embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and IAR compiler Document Rev. 5 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/28 embos for M16C CPUs

More information

embos Real-Time Operating System CPU & Compiler specifics for embos Visual Studio Simulation

embos Real-Time Operating System CPU & Compiler specifics for embos Visual Studio Simulation embos Real-Time Operating System CPU & Compiler specifics for Document: UM01060 Software Version: 5.02 Revision: 0 Date: July 25, 2018 A product of SEGGER Microcontroller GmbH www.segger.com 2 Disclaimer

More information

by Pearson Education, Inc. All Rights Reserved.

by Pearson Education, Inc. All Rights Reserved. Let s improve the bubble sort program of Fig. 6.15 to use two functions bubblesort and swap. Function bubblesort sorts the array. It calls function swap (line 51) to exchange the array elements array[j]

More information

Programming in C++ 4. The lexical basis of C++

Programming in C++ 4. The lexical basis of C++ Programming in C++ 4. The lexical basis of C++! Characters and tokens! Permissible characters! Comments & white spaces! Identifiers! Keywords! Constants! Operators! Summary 1 Characters and tokens A C++

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1 A product of Segger Microcontroller Systeme GmbH www.segger.com 2/25 embos for SH2 CPUs and

More information

PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK.

PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK. EMF2PDF SDK Pilot Structures struct pdf_document { PDFDocument4 *pdfdoc; }; PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK. typedef enum { conone

More information

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/25 embos

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

G52CPP C++ Programming Lecture 9

G52CPP C++ Programming Lecture 9 G52CPP C++ Programming Lecture 9 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture const Constants, including pointers The C pre-processor And macros Compiling and linking And

More information

Concept Manual vteststudio. Version 2.2 English

Concept Manual vteststudio. Version 2.2 English Concept Manual vteststudio Version 2.2 English Imprint Vector Informatik GmbH Ingersheimer Straße 24 D-70499 Stuttgart The information and data given in this user manual can be changed without prior notice.

More information

COSC Software Engineering. Lecture 16: Managing Memory Managers

COSC Software Engineering. Lecture 16: Managing Memory Managers COSC345 2013 Software Engineering Lecture 16: Managing Memory Managers Outline Typical problems (from previous lectures) Memory leaks aren t just for (Objective) C Tracking malloc() calls Catching calls

More information

User Manual. Admin Report Kit for IIS 7 (ARKIIS)

User Manual. Admin Report Kit for IIS 7 (ARKIIS) User Manual Admin Report Kit for IIS 7 (ARKIIS) Table of Contents 1 Admin Report Kit for IIS 7... 1 1.1 About ARKIIS... 1 1.2 Who can Use ARKIIS?... 1 1.3 System requirements... 2 1.4 Technical Support...

More information

XBinder. XML Schema Compiler Version 1.4 C EXI Runtime Reference Manual

XBinder. XML Schema Compiler Version 1.4 C EXI Runtime Reference Manual XBinder XML Schema Compiler Version 1.4 C EXI Runtime Reference Manual Objective Systems, Inc. October 2008 The software described in this document is furnished under a license agreement and may be used

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

EUROPEAN MIDDLEWARE INITIATIVE

EUROPEAN MIDDLEWARE INITIATIVE EUROPEAN MIDDLEWARE INITIATIVE COMMON AUTHENTICATION LIBRARY DEVELOPER S GUIDE Document version: 2.1.1 EMI Component Version: 2.x 1/14 This work is co-funded by the European Commission as part of the EMI

More information

Orbix TS Thread Library Reference

Orbix TS Thread Library Reference Orbix 6.3.9 TS Thread Library Reference Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 2017. All rights reserved. MICRO FOCUS, the

More information

SmartHeap for Multi-Core

SmartHeap for Multi-Core SmartHeap for Multi-Core Getting Started and Platform Guide for Linux Version 11.2 SmartHeap and HeapAgent are trademarks of Compuware Corporation. All other trademarks are the property of their respective

More information

Pointers, Dynamic Data, and Reference Types

Pointers, Dynamic Data, and Reference Types Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple

More information

Topic 6: A Quick Intro To C

Topic 6: A Quick Intro To C Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions

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

Mbx.Net Help Mbx.Net Configuration Editor

Mbx.Net Help Mbx.Net Configuration Editor Mbx.Net Help Mbx.Net Configuration Editor Version 1 Version 1 MBX.NET CONFIGURATION EDITOR HELP Copyright 1994-2017, Cyberlogic Technologies Inc. All rights reserved. This document and its contents are

More information

Function Binding. Special thanks to: John Edwards. Randy Gaul

Function Binding. Special thanks to: John Edwards. Randy Gaul Function Binding Special thanks to: John Edwards Randy Gaul Introspection Generic Variable Function Binding Simple Case Uses Demo Overview Function Binding Introspection Run-time knows little about types

More information

Installation Guide. CompanyCRYPT v1.4.5

Installation Guide. CompanyCRYPT v1.4.5 Installation Guide S.I.T. GmbH & Co. KG Kaiser-Wilhelm-Str. 9 30159 Hanover Germany Telefon: +49 511 8999 710 Telefax: +49 511 8999 712 Internet: www.companycrypt.com email: info@companycrypt.com Copyright

More information

More on C programming

More on C programming Applied mechatronics More on C programming Sven Gestegård Robertz sven.robertz@cs.lth.se Department of Computer Science, Lund University 2017 Outline 1 Pointers and structs 2 On number representation Hexadecimal

More information

C Programming Review CSC 4320/6320

C Programming Review CSC 4320/6320 C Programming Review CSC 4320/6320 Overview Introduction C program Structure Keywords & C Types Input & Output Arrays Functions Pointers Structures LinkedList Dynamic Memory Allocation Macro Compile &

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

CS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor

CS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static

More information

Contents. Chapter 1 Overview of the JavaScript C Engine...1. Chapter 2 JavaScript API Reference...23

Contents. Chapter 1 Overview of the JavaScript C Engine...1. Chapter 2 JavaScript API Reference...23 Contents Chapter 1 Overview of the JavaScript C Engine...1 Supported Versions of JavaScript...1 How Do You Use the Engine?...2 How Does the Engine Relate to Applications?...2 Building the Engine...6 What

More information

Introduction to Programming

Introduction to Programming Introduction to Programming session 6 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Spring 2011 These slides are created using Deitel s slides Sharif University of Technology Outlines

More information

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Introduction to C programming language V1.1 Alvaro Perales Eceiza Introduction to C programming language Introduction Main features Functions

More information

OPC UA Configuration Manager Help 2010 Kepware Technologies

OPC UA Configuration Manager Help 2010 Kepware Technologies OPC UA Configuration Manager Help 2010 Kepware Technologies 1 OPC UA Configuration Manager Help Table of Contents 1 Getting Started... 2 Help Contents... 2 Overview... 2 Server Settings... 2 2 OPC UA Configuration...

More information

Variables. Data Types.

Variables. Data Types. Variables. Data Types. The usefulness of the "Hello World" programs shown in the previous section is quite questionable. We had to write several lines of code, compile them, and then execute the resulting

More information

IBM Education Assistance for z/os V2R2

IBM Education Assistance for z/os V2R2 IBM Education Assistance for z/os V2R2 Items: OCSP (Online Certificate Status Protocol) PKCS#12 Certificate Keystore Element/Component: System SSL Material current as of May 2015 Agenda Trademarks Presentation

More information

OptimiData. JPEG2000 Software Development Kit for C/C++ Reference Manual. Version 1.6. from

OptimiData. JPEG2000 Software Development Kit for C/C++  Reference Manual. Version 1.6. from OptimiData for optimized data handling JPEG2000 Software Development Kit for C/C++ Reference Manual Version 1.6 from 2004-07-29 (Windows and Linux Versions) www.optimidata.com OptimiData JPEG2000 C-SDK

More information

NEO OPC Client Driver. The NEO OPC Client can be launched by configuring an OPC Link from the New Link or Add Link dialog as the followings:

NEO OPC Client Driver. The NEO OPC Client can be launched by configuring an OPC Link from the New Link or Add Link dialog as the followings: The configuration program provides a built-in OPC UA Client that enables connections to OPC Servers. The NEO OPC Client is built with the OPC Client SDK and can be used to interactively browse and retrieve

More information

Basic Types, Variables, Literals, Constants

Basic Types, Variables, Literals, Constants Basic Types, Variables, Literals, Constants What is in a Word? A byte is the basic addressable unit of memory in RAM Typically it is 8 bits (octet) But some machines had 7, or 9, or... A word is the basic

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/24 embos for SH2A

More information

Application Note: AN00152 xscope - Bi-Directional Endpoint

Application Note: AN00152 xscope - Bi-Directional Endpoint Application Note: AN00152 xscope - Bi-Directional Endpoint This application note shows how to create a simple example which uses the XMOS xscope application trace system to provide bi-directional communication

More information

COMP322 - Introduction to C++

COMP322 - Introduction to C++ COMP322 - Introduction to C++ Winter 2011 Lecture 2 - Language Basics Milena Scaccia School of Computer Science McGill University January 11, 2011 Course Web Tools Announcements, Lecture Notes, Assignments

More information

SEGGER J-Scope. User Guide. Document: UM08028 Software Version: 5.10 Revision: 0 Date: November 26, 2015

SEGGER J-Scope. User Guide. Document: UM08028 Software Version: 5.10 Revision: 0 Date: November 26, 2015 SEGGER J-Scope User Guide Document: UM08028 Software Version: 5.10 Revision: 0 Date: November 26, 2015 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2 Disclaimer Specifications written

More information

Here to take you beyond. ECEP Course syllabus. Emertxe Information Technologies ECEP course syllabus

Here to take you beyond. ECEP Course syllabus. Emertxe Information Technologies ECEP course syllabus Here to take you beyond ECEP Course syllabus Module: 1/6 Module name: Linux Systems To get familiar with Linux Operating system Commands, tools and editors Enable you to write Shell scripts To understand

More information

Remote Procedure Call Implementations

Remote Procedure Call Implementations Remote Procedure Call Implementations Sun ONC(Open Network Computing) RPC. Implements at-most-once semantics by default. At-least-once (idempotent) can also be chosen as an option for some procedures.

More information

Integer Data Types. Data Type. Data Types. int, short int, long int

Integer Data Types. Data Type. Data Types. int, short int, long int Data Types Variables are classified according to their data type. The data type determines the kind of information that may be stored in the variable. A data type is a set of values. Generally two main

More information

CS 300 Leftovers. CS460 Pacific University 1

CS 300 Leftovers. CS460 Pacific University 1 CS 300 Leftovers Pacific University 1 argc/argv The C Programming Language section 5.10, page 114 int main(int argc, char** argv) argc - number of entries in argv argv - array of character pointers containing

More information

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community CSCI-43 Exam Review February, 01 Presented by the RIT Computer Science Community http://csc.cs.rit.edu C Preprocessor 1. Consider the following program: 1 # include 3 # ifdef WINDOWS 4 # include

More information

0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember...

0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember... Types Page 1 "ode to C" Monday, September 18, 2006 4:09 PM 0x0d2C ------ May your signals all trap May your references be bounded All memory aligned Floats to ints round remember... Non -zero is true ++

More information

C Formatting Guidelines

C Formatting Guidelines UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO C PROGRAMMING SPRING 2012 C Formatting Guidelines Lines & Spacing 1. 100 character lines (tabs count

More information

CS16 Exam #1 7/17/ Minutes 100 Points total

CS16 Exam #1 7/17/ Minutes 100 Points total CS16 Exam #1 7/17/2012 75 Minutes 100 Points total Name: 1. (10 pts) Write the definition of a C function that takes two integers `a` and `b` as input parameters. The function returns an integer holding

More information

Base Component. Chapter 1. *Memory Management. Memory management Errors Exception Handling Messages Debug code Options Basic data types Multithreading

Base Component. Chapter 1. *Memory Management. Memory management Errors Exception Handling Messages Debug code Options Basic data types Multithreading Chapter 1. Base Component Component:, *Mathematics, *Error Handling, *Debugging The Base Component (BASE), in the base directory, contains the code for low-level common functionality that is used by all

More information

Future-Proof Software Architecture with Kithara RealTime Suite

Future-Proof Software Architecture with Kithara RealTime Suite The Pulse of Real-Time White Paper Future-Proof Software Architecture with Kithara RealTime Suite Going forward with Dedicated Mode and KiK64 Kithara RealTime Suite is a real-time extension for Windows

More information

Creating a C++ Program

Creating a C++ Program Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer. 1 Creating a C++ Program created using an

More information

CSC 1600 Memory Layout for Unix Processes"

CSC 1600 Memory Layout for Unix Processes CSC 16 Memory Layout for Unix Processes" 1 Lecture Goals" Behind the scenes of running a program" Code, executable, and process" Memory layout for UNIX processes, and relationship to C" : code and constant

More information

Documentation QuickHMI Database Data Source

Documentation QuickHMI Database Data Source Documentation QuickHMI Database Data Source Version 5.2 Indi.Systems GmbH Universitätsallee 23 D-28359 Bremen info@indi-systems.de Tel. + 49 421-989703-30 Fax + 49 421-989703-39 Table of contents 1 Introduction...

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

embos Real Time Operating System CPU & Compiler specifics for PIC18 core using C18 compiler and MPLAB

embos Real Time Operating System CPU & Compiler specifics for PIC18 core using C18 compiler and MPLAB embos Real Time Operating System CPU & Compiler specifics for PIC18 core using C18 compiler and MPLAB Software version 3.88f Document: UM01013 Revision: 0 Date: September 23, 2013 A product of SEGGER Microcontroller

More information

Quick manual plccom.opc.ua.client.sdk for Java V.3.x

Quick manual plccom.opc.ua.client.sdk for Java V.3.x Quick manual plccom.opc.ua.client.sdk for Java V.3.x Universitaetsallee 23 D-28359 Bremen info@indi-systems.de Tel + 49 421-989703-30 Fax + 49 421-989703-39 Inhaltsverzeichnis About this document?... 4

More information

HARTING OPC-UA Gateway for MICA User Manual

HARTING OPC-UA Gateway for MICA User Manual HARTING OPC-UA Gateway for MICA User Manual 1. Edition 2018 c HARTING IT Software Development, Espelkamp All rights reserved, including those of the translation. No part of this manual may be reproduced

More information

https://github.com/aguinet/dragon EuroLLVM Adrien Guinet 2018/04/17

https://github.com/aguinet/dragon EuroLLVM Adrien Guinet 2018/04/17 DragonFFI Foreign Function Interface and JIT for C code https://github.com/aguinet/dragon EuroLLVM 2018 - Adrien Guinet (@adriengnt) 2018/04/17 Content of this talk whoami FFI? (and related work) FFI for

More information