advertisement
![Creation of SCOOP-IX and Example. ETAS INTECRIO | Manualzz Creation of SCOOP-IX and Example. ETAS INTECRIO | Manualzz](http://s1.manualzz.com/store/data/068176925_1-8a89ed7bb26a3a1b9ac831a83f3c5efa-360x466.png)
ETAS
6.3
SCOOP and SCOOP-IX
<fileContainer constitution="sourceCode">
<pathBase path="{{codeDir}}"/>
<!-- Model specific source files -->
<file name="MySub_types.h" kind="header"/>
<file name="MySub.h" kind="header"/>
<!-- used through rtwShared.lib: rtwtypes.h -->
<!-- used through rtwShared.lib: multiword_types.h -->
<file name="MySub.c" kind="body"/>
<file name="MySub_private.h" kind="header"/>
<!-- Additionally registered model specific source files -->
↵
<file name="rt_sim.c" path="{{codeDir}}external\rtw\c\src\" kind="body"/>
↵
<!-- Target specific libraries -->
<file name="rtwStaticLib.lib" kind="symbolicLibrary"/>
<file name="rtwSharedLib.lib" kind="symbolicLibrary"/>
<!-- Additional files -->
</fileContainer>
<fileContainer constitution="referencedModels">
</fileContainer>
...
NOTE
The <fileContainer constitution="referencedModels"> section in a *.ref_six
file is always empty, even if the referenced model contains further referenced models.
All links to referenced models are provided in the *.six
file of the main model.
Creation of SCOOP-IX and Example
Tools that are either a part of INTECRIO or are coupled to INTECRIO create
SCOOP-IX descriptions if C code is created for the integration. In the case of
ASCET and MATLAB and Simulink, the SCOOP-IX generation is performed by the respective connectivity tool.
An example for a simple SCOOP-IX file created with ASCET can be found below.
The example is used exclusively for representing an interface description in
SCOOP-IX, it does not claim to be meaningful or correct.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE module [
<!ENTITY szlig "ß">
<!ENTITY copy "©">
<!ENTITY baseTypes-asd SYSTEM
'c:\ETAS\ASCET6.4\Formats\SCOOP-IX\1.2\common\ baseTypes-asd.xml'>
]>
↵
↵
INTECRIO V4.7 - User’s Guide 132
ETAS SCOOP and SCOOP-IX
<?xml-stylesheet type="text/xsl" href="c:\ETAS\
ASCET6.4\Formats\SCOOP-IX\1.2\common\ showSCOOP-IX.xsl"?>
<!--
<h1>SCOOP-IX</h1>
<p>
<strong>Copyright © 2002-2004 ETAS GmbH</strong> ↵
Borsigstraße 14, D-70469 Stuttgart.
↵
<em>All rights reserved.</em>
↵
↵
</p>
-->
< module xmlns="http://www.etas.de/scoop-ix/1.2" xmlns:ix="http://www.etas.de/scoop-ix/1.2" xmlns:asd="http://www.etas.de/scoop-ix/1.2/ modelDomain/ascet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.etas.de/scoop-ix/1.2
c:\ETAS\ASCET6.4\Formats\SCOOP-IX\1.2\Schemas\ scoop-ix-domain-asd.xsd" xmlns:html="http://www.w3.org/1999/xhtml" >
↵
↵
↵
< directoryLocations scheme="ASCET 6.4">
< directory identifier="integratorDir" path="E:\ETAS\ INTECRIO4.7\" >< /directory >
↵
< directory identifier="toolDir" path="c:\ETAS\ASCET6.4\" >< /directory >
< directory identifier="codeDir" path="c:\ETASData\ASCET6.4\Database\
Project\CGen\" >< /directory >
INTECRIO\
↵
< directory identifier="modelDir" ↵ path="c:\ETASData\ASCET6.4\Database\ INTECRIO \" > ↵
< /directory >
↵
↵
< /directoryLocations >
↵ < moduleInfo identifier=
"_040VSM3H60001KO7102G5GFA1O5G0">
< name >ASDSimpleModel< /name >
< modelLink href="asd://{{modelDir}}?Training/
ASDSimpleModel" >< /modelLink >
< version major="1" minor="0" ></version>
< dateTime kind="created" year="2011" month="02" day="13" hour="15" minute="37" second="04" >
< /dateTime >
< dateTime kind="lastModified" year="2011" month="03" day="04" hour="17" minute="14" second="44" > </ dateTime >
< completion degree="full" >< /completion >
< suitability >
< application domain="rapidPrototyping" addressesAvailable="true" instanceTreeRootIdentifier=
↵
↵
↵
↵
↵
↵
↵
↵
INTECRIO V4.7 - User’s Guide 133
ETAS SCOOP and SCOOP-IX
"_040VSM3H60001KO7102G5GFA1O5G0instance" setGetDeltaTIdentifier=
"__040VSM3H60001KO7102G5GFA1O5G0">
< /application >
< /suitability >
< company name="ETAS GmbH" department="ETAS/PAC-F1" city="Stuttgart" country="Germany" />
↵
< user lastName="Doe" firstName="John" title="Dr" >
< /user >
< creators >
↵
< user lastName="Doe" firstName="John" title="Dr" >< /user >
< tool kind="modeler" vendor="ETAS GmbH" name="ASCET">
↵
↵
< version major="6" minor="1" revision="1" >
< /version >
↵
< configuration >
< option identifier="ignoreInternalMessages" ↵
> false< /option >
↵
↵
↵
< /configuration >
< /tool >
< tool kind="codeGenerator" vendor="ETAS GmbH" name="ASCET">
< version major="6" minor="1" revision="1" >
< /version >
< mode name="experiment" value="Implementation" >< /mode >
< configuration >
< option identifier="Code Generator" >
Implementation Experiment< /option >
< option identifier="Target" >Prototyping
< /option >
...
1
↵
↵
↵
↵
↵
< /configuration >
< /tool >
< /creators >
< annotation >
< ix:documentation xmlns="http://www.w3.org/
1999/xhtml">
< p >This is a sample module interface description file. It is used for demonstrating an interface description in the < b >SCOOP-IX< /b > language.< /p >
< p >Neither is its content supposed to make any sense at all, nor has its correctness been checked by compilation.< /p >
< /ix:documentation >
< /annotation >
↵
↵
↵
↵
↵
↵
1. A SCOOP-IX file contains all settings from the project properties. For documentation purposes, only the first two are listed.
INTECRIO V4.7 - User’s Guide 134
ETAS SCOOP and SCOOP-IX
< /moduleInfo >
< codeInfo >
< constitution mode ="sourceCode" >< /constitution >
< dateTime kind="created" year="2011" month="02" day="13" hour="15" minute="38" second="4" >
< /dateTime >
< target >
< processor vendor="Motorola" model="MPC750" >
< /processor >
↵
< board vendor="ETAS GmbH" model="Prototyping" >
< /board >
↵
< tool kind="compiler" vendor="GNU Project" family="GNU Compiler Collection" name="GNU C Compiler for Embedded PowerPC target">
< configuration >
< optionKind name="macroDefine" prefix="-D" > ↵
< /optionKind >
< optionKind name="includeDirectory" prefix="-I" >< /optionKind >
↵
↵
↵
↵
↵
↵
<!-- ASCET specific defines -->
< option kind="macroDefine" name="EXT_INTEGRATION" >< /optionKind >
↵
<!-- ASCET specific include directories -->
< option kind="includeDirectory">
<![CDATA[{{codeDir}}]]>< /option >
< /configuration >
< /tool >
↵
< /target >
< target >
< board vendor="ETAS GmbH" model="INTECRIO
Generic Experimental Target" >
< /board >
↵
< tool kind="compiler" vendor="GNU Project" family="GNU Compiler Collection" name="GNU C Compiler" >
< configuration >
< optionKind name="macroDefine" prefix="-D" > ↵
< /optionKind >
< optionKind name="includeDirectory" prefix="-I" >< /optionKind >
↵
< option kind="macroDefine" name=
"EXT_INTEGRATION" >< /option >
↵
< option kind="includeDirectory" >
<![CDATA[{{codeDir}}]]>< /option >
↵
< /configuration >
↵
↵
< /tool >
< /target >
INTECRIO V4.7 - User’s Guide 135
ETAS SCOOP and SCOOP-IX
< /codeInfo >
< fileContainer complete="false">
< pathBase path="{{codeDir}}" ></pathBase>
<!-- model specific C files -->
< file name="_asd_pid.c" kind="body" >< /file >
< file name="asdsmpm.c" kind="body" >< /file >
< file name="conf.c" kind="body" >< /file >
< file name="modulem.c" kind="body" >< /file >
< file name="asdsmpm.h" kind="header" >< /file >
< file name="conf.h" kind="header" >< /file >
< file name="modulem.h" kind="header" >< /file >
<!-- additional files -->
< file name="ASDSimpleModel.a2l" content="dataDescription" format="ASAM-2MC" formatVersion="1.5" >< /file >
< /fileContainer >
< interface >
< modelLinkBase href="asd://
{{modelDir}}?Training/ASDSimpleModel/" >
< /modelLinkBase >
< pathBase path="{{codeDir}}" >< /pathBase >
< headerFile name="asdsmpm.h" >< /headerFile >
< headerFile name="conf.h" >< /headerFile >
< headerFile name="modulem.h" >< /headerFile >
< usage layoutFamily="asd:standardLayout" >< /usage >
&baseTypes-asd;
↵
↵
< definitions >
< conversion name="ident">
< rationalFunction >
< numerator bx="1" >< /numerator >
< denominator f="1" >< /denominator >
< /rationalFunction >
< /conversion >
< /definitions >
< dataElement interfaceKind="export">
< dataCInterface identifier=
"MODULE_IMPL_ClassObj.Out1->val">
< type >< typeRef name="real64" >< /typeRef >< /type >
< fileOrigin name="MODULEM.c" >< /fileOrigin >
< initValue value="0.0" >< /initValue >
< /dataCInterface >
< modelOrigin identifier="ASDSimpleModel.
Module.Out1">
< name >Out1< /name >
↵
↵
INTECRIO V4.7 - User’s Guide 136
ETAS SCOOP and SCOOP-IX
< modelLink href="Module.Out1" >< /modelLink >
< modelLocation >
< pathNode name="Module" kind="asd:module">
< pathParameter name="asd:implementation" value="Impl" >< /pathParameter >
< pathParameter name="asd:dataSet" value="Data" >< /pathParameter >
< /pathNode >
< pathNode name="Out1" kind="asd:element" >
< /pathNode >
< /modelLocation >
< modelKind kind="message" visibility="public">
< flowDirection in="false" out="true" >
< /flowDirection >
< /modelKind >
< modelType type="continuous" >< /modelType >
< annotation >
< ix:documentation xmlns=
"http://www.w3.org/1999/xhtml" lang="en-US">
This is output message < i >Out1< /i > of continuous type.
< /ix:documentation >
</ annotation >
< /modelOrigin >
< implementation >
< conversionRef name="ident" >< /conversionRef >
< valueRange min="-2147483648" max="2147483647" >< /valueRange >
< saturation value="true" resolution="reduce" assignment="true" >< /saturation >
< zeroExcluded value="false" >< /zeroExcluded >
< /implementation >
< usage measurement="true" virtual="false" variant="false" >
< address kind="pseudo" >
< BLOB kind="KP_BLOB" device="E_TARGET" >
<![CDATA[2 1001 1 1001 1]]>< /BLOB >
< /address >
< /usage >
< /dataElement >
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
< dataElement interfaceKind ="export">
< dataCInterface identifier=
"ASDSIMPLEMODEL_IMPL_ClassObj.Module-> myProduct->val">
< type >< typeRef name="sint32" >< /typeRef >< /type >
< fileOrigin name="MODULEM.c" >< /fileOrigin >
< initValue value="0" ></initValue>
< /dataCInterface >
↵
↵
INTECRIO V4.7 - User’s Guide 137
ETAS SCOOP and SCOOP-IX
< modelOrigin identifier =
"ASDSimpleModel.Module.myProduct">
< name >myProduct< /name >
< modelLink href="ASDSimpleModel.Module.
myProduct" >< /modelLink >
< modelLocation >
< pathNode name="Module" kind="asd:module" >
< pathParameter name="asd:implementation" value="Impl" >< /pathParameter >
< pathParameter name="asd:dataSet" value="Data" >< /pathParameter >
</ pathNode >
< pathNode name="myProduct" kind="asd:element" ></ pathNode >
< /modelLocation >
< modelKind kind ="variable" visibility ="private" ></modelKind>
< modelType type="continuous" >
< valueRange min="-2147483648.0" max="2147483647.0" >< /valueRange >
< /modelType >
< annotation >
< ix:documentation xmlns=
"http://www.w3.org/1999/xhtml" lang="en-US">
This is variable < i >myProduct< /i > of continuous type.
< /ix:documentation >
< /annotation >
< /modelOrigin >
< implementation >
< conversionRef name="ident" >< /conversionRef >
< valueRange min="-2147483648" max="2147483647"> < /valueRange >
< saturation value="true" resolution="reduce" assignment="true" >< /saturation >
< zeroExcluded value="false" >< /zeroExcluded >
< /implementation >
< usage measurement="true" virtual="false" variant="false" >
< address kind="pseudo" >
< BLOB kind="KP_BLOB" device="E_TARGET" >
<![CDATA[2 1001 1 1000 0]]>< /BLOB >
< /address >
< /usage >
< /dataElement >
< dataElement interfaceKind="export">
< dataCInterface identifier=
"ASDSIMPLEMODEL_IMPL_ClassObj.Module-> myPar->val">
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
INTECRIO V4.7 - User’s Guide 138
ETAS SCOOP and SCOOP-IX
< type >< typeRef name="real64" >< /typeRef >< /type >
< fileOrigin name="MODULEM.c" lines="23" >
< /fileOrigin >
< initValue value="3.2" />
< /dataCInterface >
< modelOrigin identifier="ASDSimpleModel.
Module.myPar">
< name >myPar< /name >
< modelLink href="ASDSimpleModel.Module.myPar"
> < /modelLink >
< modelLocation >
< pathNode name="Module" kind="asd:module">
< pathParameter name=
"asd:implementation" value="Impl" >
< /pathParameter >
< pathParameter name=
"asd:dataSet" value="Data" >
< /pathParameter >
< /pathNode >
< pathNode name="myPar" kind="asd:element" >< /pathNode >
< /modelLocation >
< modelKind kind="parameter" visibility="private" >< /modelKind >
< modelType type="continuous" >< /modelType >
< annotation >
< ix:documentation xmlns=
"http://www.w3.org/1999/xhtml" lang="en-US">
This is parameter < i >myPar< /i > of continuous type.
< /ix:documentation >
< /annotation >
< /modelOrigin >
< implementation >
< conversionRef name="ident" >< /conversionRef >
< valueRange min="-1.e+037" max="1.e+037" >
< /valueRange >
< zeroExcluded value="false" ></ zeroExcluded >
< /implementation >
< usage calibration="true" virtual="false" variant="false" >
< address kind="pseudo" >
< BLOB kind="KP_BLOB" device="E_TARGET"
><![CDATA[2 1001 1 1000 1]]>< /BLOB >
< /address >
< /usage >
< /dataElement >
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
↵
< functionElement interfaceKind ="export">
INTECRIO V4.7 - User’s Guide 139
ETAS SCOOP and SCOOP-IX
< functionCInterface identifier=
"MODULE_IMPL_compute">
< signature >
< return >
< type >< void />< /type >
< /return >
< void />
< /signature >
< fileOrigin name="MODULEM.c" >< /fileOrigin >
< /functionCInterface >
< modelOrigin identifier ="Module.compute">
< name >compute< /name >
< modelLink href="Module.compute" />
< modelLocation >
< pathNode name="Module" kind="asd:module">
< pathParameter name="asd:implementation" value="Impl" >< /pathParameter >
< pathParameter name="asd:dataSet" value="Data" >< /pathParameter >
< /pathNode >
< pathNode name="compute" kind="asd:process" >
< /pathNode >
↵
↵
< /modelLocation >
< modelKind kind ="process" visibility ="public" > < /modelKind >
↵
< runTimeInfo >
< FPUUsage value="true" >< /FPUUsage >
< TerminateTaskUsage value="false" >
< /TerminateTaskUsage >
< messageAccess >
↵
< message identifier=
"MODULE_IMPL_ClassObj.Out1->val" send ="true" >< /message >
< /messageAccess >
< resourceAccess >< /resourceAccess >
< constraint >
< period value="0.01" ></period>
< execution trigger ="timer" priority ="0" > ↵
</execution>
< scheduling mode="preemptive" >
< /scheduling>
↵
↵
↵
< /constraint >
< /runTimeInfo >
< annotation >
< ix:documentation xmlns=
"http://www.w3.org/1999/xhtml">
This is process < i >compute< /i > of module
< i >Module< /i >.
< /ix:documentation >
< /annotation >
↵
↵
INTECRIO V4.7 - User’s Guide 140
ETAS
< /modelOrigin >
< /functionElement >
< /interface >
< /module >
SCOOP and SCOOP-IX
INTECRIO V4.7 - User’s Guide 141
advertisement
Related manuals
advertisement
Table of contents
- 7 About this Document
- 7 Classification of Safety Messages
- 7 Presentation of Instructions
- 8 Typographical Conventions
- 8 Presentation of Supporting Information
- 9 Introduction
- 9 Safety Information
- 9 Correct Use
- 9 Demands on the Technical State of the Product
- 10 Privacy Statement
- 10 Data Processing
- 10 Data and Data Categories
- 11 Technical and Organizational Measures
- 12 Understanding INTECRIO
- 13 Challenges of the Electronic Control Unit Development
- 13 Complexity Through System Requirements
- 15 Complexity Through Distributed Development
- 16 Possible Steps
- 16 Description of Electronic Systems
- 17 Design and Operating Method of Electronic Systems
- 18 Architecture and Description of Electronic Systems
- 20 Application Software
- 23 Platform Software: Hardware Systems
- 23 Connecting Hardware and Software
- 24 Virtual Prototyping
- 25 Target-Close Prototyping
- 25 Advantages of Virtual Prototyping
- 26 Virtual Prototyping and Rapid Prototyping
- 27 INTECRIO in the Development Process
- 28 The INTECRIO Working Environment
- 32 Software Systems
- 32 Modules and AUTOSAR Software Components
- 34 Functions
- 35 Software Systems
- 35 Environment Systems
- 36 Hardware Systems
- 36 System Projects
- 38 Crossbar
- 40 Experimenting with INTECRIO
- 42 INTECRIO and AUTOSAR
- 42 Overview
- 43 RTA-RTE and RTA-OS
- 44 Creating AUTOSAR Software Components (outside INTECRIO)
- 44 Validating Software Components
- 46 What is a Runtime Environment?
- 47 AUTOSAR Elements in INTECRIO
- 47 AUTOSAR Software Components
- 48 Ports and Interfaces
- 48 Sender-Receiver Communication
- 49 Client-Server Communication
- 49 Calibration Parameter Interfaces
- 49 Runnable Entities and Tasks
- 50 Runtime Environment
- 51 The INTECRIO Components
- 52 Connectivity
- 54 Characteristics in the Creation of the Simulink Model
- 55 Contents of the Description File
- 55 ASCET Connectivity
- 56 Characteristics in the Creation of the ASCET Model
- 57 Contents of the Description File
- 57 The Hardware Configurator
- 58 Discontinued Hardware
- 59 HWX Import/Export
- 60 Ethernet Controller and XCP on UDP
- 60 XXX to CAN Gateway
- 60 ES900 Connectivity and Hardware Configurator
- 61 ES900 Configuration in the Hardware Configurator
- 65 Interface Types and Supported Interfaces
- 72 ES800 Connectivity and Hardware Configurator
- 73 ES800 Configuration in the Hardware Configurator
- 77 Interface Types and Supported Interfaces
- 84 PC Connectivity
- 85 The Project Configurator
- 86 Offline Mode
- 86 Modules and SWC
- 86 Functions
- 87 Software Systems and Environments
- 88 System Projects
- 89 Online Mode
- 90 The OS Configurator
- 90 Tasks of the Operating System
- 91 Scheduling
- 91 Tasks
- 92 Cooperative and Preemptive Scheduling
- 94 Data Consistency with Preemptive Scheduling
- 96 Application Modes
- 97 Design of the OS Configurator
- 98 The OSC Editor
- 98 Creating Tasks
- 101 Task Properties
- 103 Setting Up Timer and Software Tasks
- 104 Setting Up Interrupt Service Routines
- 106 The Project Integrator
- 106 The Build Process
- 107 Overview
- 108 Sequence
- 109 ASAM-MCD-2MC Generation
- 110 The ETAS Experiment Environment
- 111 Validation and Verification
- 111 Measuring and Calibrating
- 112 Experimenting with Different Targets
- 115 Environment
- 115 Bypass Experiment
- 116 Fullpass Experiment
- 118 X-Pass Experiment
- 118 Environment
- 118 The Documentor
- 119 RTA-TRACE Connectivity
- 120 SCOOP and SCOOP-IX
- 121 The SCOOP Concept
- 121 The SCOOP-IX Language
- 122 Modules and Interfaces
- 122 Description of the C Code Interface
- 123 Description of Semantic Information
- 123 Model Origin
- 125 Implementation
- 126 Module Data
- 127 Referenced Models
- 127 File
- 132 Creation of SCOOP-IX and Example
- 142 Modeling Hints
- 142 Modeling for INTECRIO
- 142 Modeling with Simulink
- 144 Modeling with ASCET
- 144 Integration of User Code
- 145 Bypass Concept
- 145 ETK Bypass Concept Description
- 145 Bypass Input
- 146 Hook-Based Bypass
- 147 Service-Based Bypass
- 149 Safety Considerations
- 149 Bypass Input Data
- 149 Bypass Calculation
- 149 Bypass Output Data
- 149 Message Copies
- 150 Service-Based Bypass Specifics
- 151 Service Processes for the SBB Implemented as Service Functions
- 152 Controlling the ECU Behavior from INTECRIO
- 152 OS Configuration for Service-Based Bypass V
- 152 Restrictions
- 153 Classical ECU Function Bypass
- 154 Bypass of an Entire ECU Functionality
- 155 Different Rasters
- 157 ECU-Synchronous Write-Back
- 158 Summary
- 160 Glossary
- 160 Abbreviations
- 164 Terms
- 169 Contact Information
- 170 Figures
- 174 Tables
- 175 Index