RTA-RTE V6.8.0 User Guide RTA-RTE V6.8.0 User Guide

Total Page:16

File Type:pdf, Size:1020Kb

RTA-RTE V6.8.0 User Guide RTA-RTE V6.8.0 User Guide RTA-RTE V6.8.0 User Guide RTA-RTE V6.8.0 User Guide Copyright The data in this document may not be altered or amended without special notification from ETAS GmbH. ETAS GmbH undertakes no further obligation in relation to this doc- ument. The software described in it can only be used if the customer is in possession of a general license agreement or single license. Using and copying is only allowed in concurrence with the specifications stipulated in the contract. Under no circumstances may any part of this document be copied, reproduced, transmitted, stored in a retrieval system or translated into another language without the express written permission of ETAS GmbH. ©Copyright 2019 ETAS GmbH, Stuttgart. The names and designations used in this document are trademarks or brands belonging to the respective owners. Document: 10756-UG-001 EN - 05-2019 Revision: 92501 [RTA-RTE 6.8.0] This product described in this document includes software developed by the Apache Software Foundation (http://www.apache.org/). 2 Copyright RTA-RTE V6.8.0 User Guide Contents 1 About this Manual7 1.1 Document Conventions.........................9 1.2 Acronyms and Abbreviations......................9 I Introduction and Overview 11 2 Introduction to the RTE 12 2.1 What is a Run-Time Environment (RTE)?................ 13 2.2 Software Components.......................... 14 2.3 Interfaces................................. 18 2.4 Software Component Behavior..................... 21 2.5 Services.................................. 25 3 Introduction to RTE Configuration 26 3.1 Understanding XML........................... 26 3.2 Understanding AUTOSAR XML..................... 27 3.3 ECU Configuration Description..................... 33 4 Working with the RTE Generator 36 4.1 Contract Phase.............................. 37 4.2 RTE Phase................................. 39 4.3 Basic Software Phase.......................... 41 4.4 The Development Process........................ 42 4.5 Samples.................................. 42 II Developing Software Components 45 5 Type System 46 5.1 Application Data Types......................... 46 5.2 Base Types................................ 50 5.3 Implementation Data Types....................... 51 5.4 Type Mappings.............................. 60 5.5 Application Types And Numerical Representations.......... 61 5.6 Expressing Values in Physical Units or Numerical Representation.. 66 6 Interfaces 69 6.1 Sender-Receiver............................. 69 6.2 Nv-Data.................................. 70 6.3 Mode-Switch............................... 71 6.4 Client-Server............................... 72 6.5 Calibration................................ 73 6.6 Trigger.................................. 74 7 Software Component Types 75 7.1 Ports.................................... 76 7.2 Communication Specifications..................... 77 Contents 3 RTA-RTE V6.8.0 User Guide 8 Internal Behavior 83 8.1 RTE Events................................ 84 8.2 Runnable Entities............................ 86 8.3 Responding to Periodic Events..................... 87 8.4 Sending to a Port............................. 88 8.5 Receiving from a Port.......................... 90 8.6 Responding to a Server Request on a Port............... 94 8.7 Making a Client Request on a Port................... 95 8.8 Direct Trigger of a Runnable Entity................... 100 8.9 Exclusive Areas.............................. 102 8.10 Inter-Runnable Variables......................... 106 8.11 Accessing Modes............................. 107 8.12 Per-instance Memory.......................... 107 8.13 Port Options............................... 108 8.14 Supporting Multiple Instantiation.................... 109 8.15 Memory Allocation............................ 110 9 Modes 111 9.1 Defining Modes.............................. 111 9.2 Mode Communication.......................... 111 9.3 Using Modes............................... 115 9.4 Understanding Mode Instances..................... 118 9.5 Fast Init.................................. 119 9.6 Synchronizing Modes.......................... 120 9.7 Non-AUTOSAR Functionality....................... 120 10Implementing Software Components 122 10.1 Basic Concepts.............................. 122 10.2 Application Source Code......................... 124 10.3 Single and Multiple Instances...................... 125 10.4 Runnable Entities............................ 126 10.5 Sender-Receiver Communication.................... 132 10.6 Client-Server Communication...................... 135 10.7 Using Inter-Runnable Variables..................... 136 10.8 Accessing Parameters.......................... 136 10.9 Accessing Per Instance Memory.................... 137 10.10 Concurrency Control with Exclusive Areas............... 137 10.11 Starting and Stopping the RTE..................... 139 11NVRAM 140 11.1 NV-Block Software Component Types................. 140 11.2 Interaction with Application SWC.................... 143 11.3 Interaction with the NVRAM Manager................. 143 III Developing Basic Software 145 12Basic Software 146 12.1 Basic Software Modules......................... 146 4 Contents RTA-RTE V6.8.0 User Guide 12.2 Interaction with the RTE......................... 147 12.3 API..................................... 152 IV Composition 154 13Composing Software Components 155 13.1 Composition Type Definition...................... 155 13.2 Component Instances.......................... 156 13.3 Connector Prototypes.......................... 156 13.4 FlatMaps................................. 167 13.5 Data Conversion............................. 173 14Composing Basic Software 180 14.1 Instantiation............................... 180 14.2 BSW Scheduler.............................. 181 14.3 Connections............................... 181 15Synchronizing BSW and SWC 183 15.1 Configuration............................... 183 15.2 Synchronized Mode Groups....................... 185 15.3 Synchronized Triggers.......................... 186 15.4 Synchronized Runnable Entities.................... 187 16Accessing NVRAM 189 16.1 Configuration............................... 189 16.2 Access from Application SWCs..................... 191 16.3 Access from the NVRAM manager................... 193 V Deployment 196 17Defining the ECUs and the Networks 197 17.1 ECU Type Definition........................... 198 17.2 ECU Instances.............................. 199 18Mapping Software Components to ECUs 200 18.1 Mapping Component Prototypes.................... 200 18.2 SWC Implementation Selection..................... 201 18.3 Configuring Service Components on an ECU............. 202 18.4 Mapping Runnable Entities to Tasks.................. 203 18.5 How Runnables get activated...................... 205 19Inter-ECU Communication 210 19.1 System Communications........................ 210 19.2 Inter-ECU Sender-Receiver Communication.............. 215 19.3 Inter-ECU Client-Server Communication................ 218 20Using the OS and COM Configurations 223 20.1 Operating System Configuration.................... 224 20.2 Communication Stack Configuration.................. 226 Contents 5 RTA-RTE V6.8.0 User Guide 21Debugging Implementations with VFB Tracing 228 21.1 Enabling Tracing............................. 228 21.2 Supported Trace Events......................... 228 21.3 Configuration............................... 231 21.4 Trace Event Header File......................... 231 21.5 Implementing Hook Functions..................... 231 22Data Transformation 233 22.1 Extent of support............................. 233 22.2 Enabling data transformation in an input configuration....... 236 22.3 Working with data transformation................... 239 22.4 Working with the COM-based transformer............... 240 VI Advanced Concepts 241 23RTE Generation 242 23.1 Identifier length............................. 242 24Operating System Considerations 243 24.1 OS Trigger Selection........................... 243 24.2 Task Recurrence............................. 243 24.3 Schedule Points............................. 244 24.4 Basic and Extended Tasks........................ 245 24.5 Forced-basic semantics......................... 246 25Understanding Deployment Choices 249 25.1 Intra-task................................. 249 25.2 Inter-task................................. 251 25.3 Inter-task Client-Server......................... 253 25.4 Inter-ECU................................. 254 26Optimization 261 26.1 Buffers for Inter-ECU Reception..................... 261 26.2 Direct invocation of the RTE API.................... 261 26.3 Sender-Receiver Communication.................... 262 26.4 Client-Server Communication...................... 263 26.5 Function Elision.............................. 264 26.6 Init Runnables.............................. 265 26.7 Data Consistency............................ 266 26.8 Tips.................................... 267 27RTE Architecture 268 27.1 Component Data Structure....................... 268 27.2 Component Instance Handle...................... 269 27.3 The RTE API Implementation...................... 270 VII Support 273 28Contact, Support and Problem Reporting 274 6 Contents RTA-RTE V6.8.0 User Guide 1 About this Manual The RTA-RTE User Guide describes how to install the ETAS AUTOSAR Run-Time Environ- ment (RTE) generation tools and how to configure, build and deploy RTE-based software components on electronic control units. The RTA-RTE User Guide is structured along the lines of a top-down development using the RTE, taking users from software component
Recommended publications
  • Programming for Engineers Pointers in C Programming: Part 02
    Programming For Engineers Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff1, Ahmad Fakhri Ab. Nasir2 Faculty of Manufacturing Engineering [email protected], [email protected] PFE – Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff and Ahmad Fakhri Ab. Nasir 0.0 Chapter’s Information • Expected Outcomes – To further use pointers in C programming • Contents 1.0 Pointer and Array 2.0 Pointer and String 3.0 Pointer and dynamic memory allocation PFE – Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff and Ahmad Fakhri Ab. Nasir 1.0 Pointer and Array • We will review array data type first and later we will relate array with pointer. • Previously, we learn about basic data types such as integer, character and floating numbers. In C programming language, if we have 5 test scores and would like to average the scores, we may code in the following way. PFE – Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff and Ahmad Fakhri Ab. Nasir 1.0 Pointer and Array PFE – Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff and Ahmad Fakhri Ab. Nasir 1.0 Pointer and Array • This program is manageable if the scores are only 5. What should we do if we have 100,000 scores? In such case, we need an efficient way to represent a collection of similar data type1. In C programming, we usually use array. • Array is a fixed-size sequence of elements of the same data type.1 • In C programming, we declare an array like the following statement: PFE – Pointers in C Programming: Part 02 by Wan Azhar Wan Yusoff and Ahmad Fakhri Ab.
    [Show full text]
  • Datatypes (Pdf Format)
    Basic Scripting, Syntax, and Data Types in Python Mteor 227 – Fall 2020 Basic Shell Scripting/Programming with Python • Shell: a user interface for access to an operating system’s services. – The outer layer between the user and the operating system. • The first line in your program needs to be: #!/usr/bin/python • This line tells the computer what python interpreter to use. Comments • Comments in Python are indicated with a pound sign, #. • Any text following a # and the end of the line is ignored by the interpreter. • For multiple-line comments, a # must be used at the beginning of each line. Continuation Line • The \ character at the end of a line of Python code signifies that the next line is a continuation of the current line. Variable Names and Assignments • Valid characters for variable, function, module, and object names are any letter or number. The underscore character can also be used. • Numbers cannot be used as the first character. • The underscore should not be used as either the first or last character, unless you know what you are doing. – There are special rules concerning leading and trailing underscore characters. Variable Names and Assignments • Python is case sensitive! Capitalization matters. – The variable f is not the same as the variable F. • Python supports parallel assignment >>> a, b = 5, 'hi' >>> a 5 >>> b 'hi' Data Types • Examples of data types are integers, floating-point numbers, complex numbers, strings, etc. • Python uses dynamic typing, which means that the variable type is determined by its input. – The same variable name can be used as an integer at one point, and then if a string is assigned to it, it then becomes a string or character variable.
    [Show full text]
  • C Programming: Data Structures and Algorithms
    C Programming: Data Structures and Algorithms An introduction to elementary programming concepts in C Jack Straub, Instructor Version 2.07 DRAFT C Programming: Data Structures and Algorithms, Version 2.07 DRAFT C Programming: Data Structures and Algorithms Version 2.07 DRAFT Copyright © 1996 through 2006 by Jack Straub ii 08/12/08 C Programming: Data Structures and Algorithms, Version 2.07 DRAFT Table of Contents COURSE OVERVIEW ........................................................................................ IX 1. BASICS.................................................................................................... 13 1.1 Objectives ...................................................................................................................................... 13 1.2 Typedef .......................................................................................................................................... 13 1.2.1 Typedef and Portability ............................................................................................................. 13 1.2.2 Typedef and Structures .............................................................................................................. 14 1.2.3 Typedef and Functions .............................................................................................................. 14 1.3 Pointers and Arrays ..................................................................................................................... 16 1.4 Dynamic Memory Allocation .....................................................................................................
    [Show full text]
  • Data Structure
    EDUSAT LEARNING RESOURCE MATERIAL ON DATA STRUCTURE (For 3rd Semester CSE & IT) Contributors : 1. Er. Subhanga Kishore Das, Sr. Lect CSE 2. Mrs. Pranati Pattanaik, Lect CSE 3. Mrs. Swetalina Das, Lect CA 4. Mrs Manisha Rath, Lect CA 5. Er. Dillip Kumar Mishra, Lect 6. Ms. Supriti Mohapatra, Lect 7. Ms Soma Paikaray, Lect Copy Right DTE&T,Odisha Page 1 Data Structure (Syllabus) Semester & Branch: 3rd sem CSE/IT Teachers Assessment : 10 Marks Theory: 4 Periods per Week Class Test : 20 Marks Total Periods: 60 Periods per Semester End Semester Exam : 70 Marks Examination: 3 Hours TOTAL MARKS : 100 Marks Objective : The effectiveness of implementation of any application in computer mainly depends on the that how effectively its information can be stored in the computer. For this purpose various -structures are used. This paper will expose the students to various fundamentals structures arrays, stacks, queues, trees etc. It will also expose the students to some fundamental, I/0 manipulation techniques like sorting, searching etc 1.0 INTRODUCTION: 04 1.1 Explain Data, Information, data types 1.2 Define data structure & Explain different operations 1.3 Explain Abstract data types 1.4 Discuss Algorithm & its complexity 1.5 Explain Time, space tradeoff 2.0 STRING PROCESSING 03 2.1 Explain Basic Terminology, Storing Strings 2.2 State Character Data Type, 2.3 Discuss String Operations 3.0 ARRAYS 07 3.1 Give Introduction about array, 3.2 Discuss Linear arrays, representation of linear array In memory 3.3 Explain traversing linear arrays, inserting & deleting elements 3.4 Discuss multidimensional arrays, representation of two dimensional arrays in memory (row major order & column major order), and pointers 3.5 Explain sparse matrices.
    [Show full text]
  • Programming the Capabilities of the PC Have Changed Greatly Since the Introduction of Electronic Computers
    1 www.onlineeducation.bharatsevaksamaj.net www.bssskillmission.in INTRODUCTION TO PROGRAMMING LANGUAGE Topic Objective: At the end of this topic the student will be able to understand: History of Computer Programming C++ Definition/Overview: Overview: A personal computer (PC) is any general-purpose computer whose original sales price, size, and capabilities make it useful for individuals, and which is intended to be operated directly by an end user, with no intervening computer operator. Today a PC may be a desktop computer, a laptop computer or a tablet computer. The most common operating systems are Microsoft Windows, Mac OS X and Linux, while the most common microprocessors are x86-compatible CPUs, ARM architecture CPUs and PowerPC CPUs. Software applications for personal computers include word processing, spreadsheets, databases, games, and myriad of personal productivity and special-purpose software. Modern personal computers often have high-speed or dial-up connections to the Internet, allowing access to the World Wide Web and a wide range of other resources. Key Points: 1. History of ComputeWWW.BSSVE.INr Programming The capabilities of the PC have changed greatly since the introduction of electronic computers. By the early 1970s, people in academic or research institutions had the opportunity for single-person use of a computer system in interactive mode for extended durations, although these systems would still have been too expensive to be owned by a single person. The introduction of the microprocessor, a single chip with all the circuitry that formerly occupied large cabinets, led to the proliferation of personal computers after about 1975. Early personal computers - generally called microcomputers - were sold often in Electronic kit form and in limited volumes, and were of interest mostly to hobbyists and technicians.
    [Show full text]
  • MPLAB C Compiler for PIC24 Mcus and Dspic Dscs User's Guide
    MPLAB® C Compiler for PIC24 MCUs and dsPIC® DSCs User’s Guide 2002-2011 Microchip Technology Inc. DS51284K Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device Trademarks applications and the like is provided only for your convenience The Microchip name and logo, the Microchip logo, dsPIC, and may be superseded by updates.
    [Show full text]
  • Software II: Principles of Programming Languages
    Software II: Principles of Programming Languages Lecture 6 – Data Types Some Basic Definitions • A data type defines a collection of data objects and a set of predefined operations on those objects • A descriptor is the collection of the attributes of a variable • An object represents an instance of a user- defined (abstract data) type • One design issue for all data types: What operations are defined and how are they specified? Primitive Data Types • Almost all programming languages provide a set of primitive data types • Primitive data types: Those not defined in terms of other data types • Some primitive data types are merely reflections of the hardware • Others require only a little non-hardware support for their implementation The Integer Data Type • Almost always an exact reflection of the hardware so the mapping is trivial • There may be as many as eight different integer types in a language • Java’s signed integer sizes: byte , short , int , long The Floating Point Data Type • Model real numbers, but only as approximations • Languages for scientific use support at least two floating-point types (e.g., float and double ; sometimes more • Usually exactly like the hardware, but not always • IEEE Floating-Point Standard 754 Complex Data Type • Some languages support a complex type, e.g., C99, Fortran, and Python • Each value consists of two floats, the real part and the imaginary part • Literal form real component – (in Fortran: (7, 3) imaginary – (in Python): (7 + 3j) component The Decimal Data Type • For business applications (money)
    [Show full text]
  • Vivado Design Suite User Guide: High-Level Synthesis (UG902)
    Vivado Design Suite User Guide High-Level Synthesis UG902 (v2018.3) December 20, 2018 Revision History Revision History The following table shows the revision history for this document. Section Revision Summary 12/20/2018 Version 2018.3 Schedule Viewer Updated information on the schedule viewer. Optimizing the Design Clarified information on dataflow and loops throughout section. C++ Arbitrary Precision Fixed-Point Types: Reference Added note on using header files. Information HLS Math Library Updated information on how hls_math.h is used. The HLS Math Library, Fixed-Point Math Functions Updated functions. HLS Video Library, HLS Video Functions Library Moved the HLS video library to the Xilinx GitHub (https:// github.com/Xilinx/xfopencv) HLS SQL Library, HLS SQL Library Functions Updated hls::db to hls::alg functions. System Calls Added information on using the __SYNTHESIS__ macro. Arrays Added information on array sizing behavior. Command Reference Updated commands. config_dataflow, config_rtl Added the option -disable_start_propagation Class Methods, Operators, and Data Members Added guidance on specifying data width. UG902 (v2018.3) December 20, 2018Send Feedback www.xilinx.com High-Level Synthesis 2 Table of Contents Revision History...............................................................................................................2 Chapter 1: High-Level Synthesis............................................................................ 5 High-Level Synthesis Benefits....................................................................................................5
    [Show full text]
  • Should C Replace FORTRAN As the Language of Scientific Programming?
    Should C Replace FORTRAN as the Language of Scientific Programming? Linda Wharton CSCI 5535 Fall 1995 Abstract Anti-FORTRAN sentiment has recently become more prevalent. Where does the attitude originate? The most probable source is academia, where C and C++ are the languages of choice. Is there a fact based justification for the attitude? FORTRAN and C are evaluated to determine whether C is a better language than FORTRAN for scientific programming. The features of FORTRAN 77, FORTRAN 90, C and C++ are compared, and evaluated as to how well they meet the requirements of the scientific programming domain. FORTRAN was designed specifically for numerical programming, and thus better meets the requirements. Three algorithms in the scientific domain are coded in both FORTRAN and C. They are evaluated on performance, readability of the code and optimization potential. In all cases the FORTRAN implementations proved superior. Is there evidence to mandate that all upgrades and new development should be done in C, rather than FORTRAN? A good computer programmer can solve any given problem in any language, however it is best to code in the language specifically designed for the problem domain. In the case of scientific programming, that language is FORTRAN. 1 Introduction In the computer arena related to scientific programming, a prevalent attitude seems to be that FORTRAN is obsolete, and C should be used as a replacement language. I am employed as a programmer that supports meteorological research. Most of the programming code I work with is written in FORTRAN. Within the course of my work, I continually encounter prejudice against FORTRAN.
    [Show full text]
  • Lecture Notes)
    Sri Vidya College of Engineering & Technology Course Material ( Lecture Notes) Data structures can be classified as · Simple data structure · Compound data structure · Linear data structure · Non linear data structure Simple Data Structure: Simple data structure can be constructed with the help of primitive data structure. A primitive data structure used to represent the standard data types of any one of the computer languages. Variables, arrays, pointers, structures, unions, etc. are examples of primitive data structures. Compound Data structure: Compound data structure can be constructed with the help of any one of the primitive data structure and it is having a specific functionality. It can be designed by user. It can be classified as 1) Linear data structure 2) Non-linear data structure Linear data structure : Collection of nodes which are logically adjacent in which logical adjacency is maintained by pointers (or) Linear data structures can be constructed as a continuous arrangement of data elements in the memory. It can be constructed by using array data type. In the linear Data Structures the relation ship of adjacency is maintained between the Data elements. Operations applied on linear data structure : The following list of operations applied on linear data structures 1. Add an element 2. Delete an element 3. Traverse 4. Sort the list of elements CS8391 – Data Structures - Unit I Page 1 Sri Vidya College of Engineering & Technology Course Material ( Lecture Notes) 5. Search for a data element By applying one or more functionalities to create different types of data structures For example Stack, Queue, Tables, List, and Linked Lists. Non-linear data structure: Non-linear data structure can be constructed as a collection of randomly distributed set of data item joined together by using a special pointer (tag).
    [Show full text]
  • Array Data Structure
    © 2014 IJIRT | Volume 1 Issue 6 | ISSN : 2349-6002 ARRAY DATA STRUCTURE Isha Batra, Divya Raheja Information Technology Dronacharya College Of Engineering, Farukhnagar,Gurgaon Abstract- In computer science, an array data structure valid index tuples and the addresses of the elements or simply an array is a data structure consisting of a (and hence the element addressing formula) are collection of elements (values or variables), each usually but not always fixed while the array is in use. identified by at least one array index or key. An array is The term array is often used to mean array data type, stored so that the position of each element can be a kind of data type provided by most high-level computed from its index tuple by a mathematical formula. The simplest type of data structure is a linear programming languages that consists of a collection array, also called one-dimensional array. For example, of values or variables that can be selected by one or an array of 10 32-bit integer variables, with indices 0 more indices computed at run-time. Array types are through 9, may be stored as 10 words at memory often implemented by array structures; however, in addresses 2000, 2004, 2008, … 2036, so that the element some languages they may be implemented by hash with index i has the address 2000 + 4 × i. The term array tables, linked lists, search trees, or other data is often used to mean array data type, a kind of data structures. The term is also used, especially in the type provided by most high-level programming description of algorithms, to mean associative array languages that consists of a collection of values or or "abstract array", a theoretical computer science variables that can be selected by one or more indices computed at run-time.
    [Show full text]
  • Reference Metamodel for the EXPRESS Information Modeling Language Specification
    Reference Metamodel for the EXPRESS Information Modeling Language Specification Version 1.0 - October 2010 OMG Document Number: formal/2010-10-01 Standard document URL: http://www.omg.org/spec/EXPRESS/1.0 Associated Files*: http://www.omg.org/spec/EXPRESS/20091201 * Original files: dtc/09-12-09 (cmof.xmi) Copyright © 2008, JBIC (Japan Biological Informatics Consortium) Copyright © 2010, Object Management Group, Inc. USE OF SPECIFICATION - TERMS, CONDITIONS & NOTICES The material in this document details an Object Management Group specification in accordance with the terms, conditions and notices set forth below. This document does not represent a commitment to implement any portion of this specification in any company’s products. The information contained in this document is subject to change without notice. LICENSES The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the modified version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed the copyright in the included material of any such copyright holder by reason of having used the specification set forth herein or having conformed any computer software to the specification. Subject to all of the terms and conditions below, the owners of the copyright in this specification hereby grant you a fully-paid up, non-exclusive, nontransferable, perpetual, worldwide
    [Show full text]