AUTOSAR Blockset
AUTOSAR Blockset
AUTOSAR Blockset
Phone: 508-647-7000
R2022b
iii
R2022a
R2021b
iv Contents
R2021a
R2020b
v
R2020a
R2019b
vi Contents
R2019a
Generate AUTOSAR IFL and IFX library routines for interpolation using
AUTOSAR lookup table blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
vii
1
R2022b
Version: 3.0
New Features
Compatibility Considerations
R2022b
If you import schema R20-11 ARXML files into Simulink®, the ARXML importer detects and uses the
schema version and sets the schema version parameter in the model.
If you create an AUTOSAR classic model in Simulink, the initial default schema version is R20-11. To
change the schema version, use the model configuration parameter Generate XML file for schema
version or an equivalent function call. For more information, see Select AUTOSAR Classic Schema.
You can specify initial values with parameter objects to support common test workflows. Initial values
can be specifiable for all Simulink data types, including standard types, fixed point, arrays, structured
types, and enumerations. For more information, see NVRAM Service Component. For an example of
how to use NVRAM service component to simulate ECU for basic software, see “Simulate AUTOSAR
Basic Software Services and Run-Time Environment”.
1-2
AUTOSAR Software Component Modeling
workflows to support Dem, NvM and FiM function calls. You should now be able to see AUTOSAR
Blockset caller blocks from the shipping libraries created in models. For more information, see
“Component Creation”.
• Implementation Platform Types Package – Specify the top-level package name for AUTOSAR
platform types and base types. AUTOSAR implementation platform types are grouped in the
ImplementationDataTypes subpackage, while the base types are grouped in the BaseTypes
subpackage. For Modular ARXML export, the top-level package and its content is now exported in
the stub/XXXXX_platformtypes.arxml file.
• User-defined Implementation Types References – Specify the implementation data type
references behavior. If you select PlatformTypeReference your user-defined implementation
data types reference an AUTOSAR implementation data type (CATEGORY is set to
Type_Reference in the ARXML). If you select BaseTypeReference your user-defined data type
references a SWBaseType (CATEGORY is set toValue in the ARXML).
• Native Declaration – Specify the native declaration. If you select PlatformTypeName, the
native declaration inherits the Platform Type name. If you select CIntegralTypeName, the native
declaration uses a C integral type name according to the hardware configuration specified in the
model settings.
• Parameters
• Datastores
• Signals & States
• Sender-Receiver Data Elements
To configure the LONG-NAME of parameters, datastores, signals, or states, you can use the Property or
Mapping Inspectors. To programmatically configure the LONG-NAME, you can use the mapping API
functions mapParameter, mapDataStore, mapSignal, and mapState.
For sender-receiver data elements, you can configure the LONG-NAME by using the Property and
Mapping Inspectors or the AUTOSAR Dictionary. To configure programmatically, you can use the
getAUTOSARProperties API functions.
1-3
R2022b
For more information, see “Configure FIX_AXIS Lookup Tables by Using Simulink Parameter
Objects”.
For more information, see “Exporting Lookup Table Constants as Record Value Specification”.
For more information, see “Generate ASAP2 and CDF Calibration Files” (Simulink Coder).
On import, AUTOSAR blocks can read application data types and their corresponding implementation
data types from ARXML and model application data types as ValueType objects. You can also use the
createComponentAsModel functionality with models that use the ValueType objects. On export,
ARXML files are generated to contain application data types and implementation data types to
represent ValueType in the exported ARXML.
You can configure C-typed per instance memory as the default data packaging when:
For more information, see “Specify Default Data Packaging for AUTOSAR Internal Variables”.
1-4
AUTOSAR Software Component Modeling
You can configure RTE calls to use the optional E2E Transformer argument as the E2E protection
method when using AUTOSAR schema version 4.2 or later. For earlier versions of AUTOSAR schema,
you can configure the E2E protection method to be E2E protection wrapper, which is the Simulink
default setting.
For more information, see “Configure AUTOSAR S-R Interface Port for End-To-End Protection”.
1-5
R2022b
If you import schema R20-11 ARXML files into Simulink, the ARXML importer detects and uses the
schema version and sets the schema version parameter in the model.
If you create an AUTOSAR adaptive model in Simulink, the initial default schema version is R20-11.
To change the schema version, use the model configuration parameter Generate XML file for
schema version or an equivalent function call. For more information, see “Select AUTOSAR
Adaptive Schema”.
In R2022a, AUTOSAR Blockset introduced support for Adaptive AUTOSAR modeling and code
generation of client-server communication with synchronous call behaviors, which produce blocked
client execution, where clients send requests to a server and wait for the response. In R2022b,
AUTOSAR Blockset extends that support to asynchronous call behaviors, where clients send requests,
continue execution after the request is sent, and process the response upon method completion.
The new scheduling and execution interface is enabled for models that use the following
Configuration Parameter settings:
For more information about Adaptive AUTOSAR configuration, see “Configure AUTOSAR Adaptive
Software Components”.
1-6
AUTOSAR Adaptive Software Component Modeling
After ARXML import and algorithm development, you can generate AUTOSAR-compliant C++ code
from the updated model, which produces namespaces for the data types that are preserved in the
model.cpp and model.h generated files. Exporting ARXML from the updated model preserves the
<NAMESPACES> tagging for the scoped data types.
For more information about importing ARXML files, see “Import AUTOSAR XML Descriptions Into
Simulink”.
1-7
R2022b
In R2022b, a top-down workflow is supported where you can create and link an interface dictionary
to an AUTOSAR architecture model. Component models created from the AUTOSAR architecture
models automatically have the interface dictionary linked to them. This design also allows regular
data dictionaries to co-exist with interface dictionaries.
An interface dictionary can be linked directly to a model hierarchy or it can be indirectly referenced
from a data dictionary:
You can graphically or programmatically configure the attributes of an interface dictionary and apply
them to an architecture model using this basic workflow:
Additionally, ARXML export is supported for architecture models with interface dictionaries by
exporting the dictionary ARXML into a folder with the interface dictionary name and adding the
dictionary ARXML files to the created ZIP file for the application.
1-8
AUTOSAR Architecture Modeling
For more information, see “Manage Shared Interfaces and Data Types for AUTOSAR Architecture
Models”.
1 Create an interface dictionary. In an AUTOSAR architecture model, on the Modeling tab, open
the Design menu and use the Interfaces and Types section to create or link to an existing
interface dictionary to the model.
2 Design data types and interfaces by using the interface dictionary. In the dictionary, you can
create and configure data types and interfaces.
1-9
R2022b
In the Property Inspector pane, you can additionally view and configure the AUTOSAR interface
properties InterfaceKind, IsService, and Package. Setting these properties in the Property
Inspector will set them in the generated interface dictionary .sldd file.
3 Apply the interfaces to the architecture model. You can save the linked interface dictionary and
use the Interface Editor to apply these properties to your modeled AUTOSAR application.
4 Deploy the interface dictionary content in the final application by building the model.
For more information, see “Manage Shared Interfaces and Data Types for AUTOSAR Architecture
Models”.
1-10
AUTOSAR Architecture Modeling
For more information, see “Manage Shared Interfaces and Data Types for AUTOSAR Architecture
Models”.
This custom meta-data is added on top of AUTOSAR elements and will not be imported or exported to
ARXML but can be used in conjunction with System Composer for custom views and analysis. For
more information, see “Create Profiles Stereotypes and Views for AUTOSAR Architecture Analysis”
and “Use Stereotypes and Profiles” (System Composer).
Compatibility Considerations
If an AUTOSAR architecture model created in a previous release is loaded in R2022b, and if it
contains reference components, use the Schedule Editor to inspect and verify the partitions, which
correspond to runnables. Otherwise, the partitions might not match ones from a previous release.
Use the Functions Editor to specify the execution order of the functions.
1-11
R2022b
Beginning in R2022b, you can use the AUTOSAR Adaptive Linux Executable toolchain only if
the Embedded Coder® Support Package for Linux® Applications is installed.
For more information, see “Build Out of the Box Linux Executable from AUTOSAR Adaptive Model”.
1-12
2
R2022a
Version: 2.6
New Features
Bug Fixes
Compatibility Considerations
R2022a
R2022a extends support of the AUTOSAR Classic Platform to include Release 19-11. AUTOSAR
Blockset supports schema version R19-11 for import and export of ARXML files and generation of
AUTOSAR-compliant C code.
If you import schema R19-11 ARXML files into Simulink, the ARXML importer detects and uses the
schema version and sets the schema version parameter in the model.
If you create an AUTOSAR classic model in Simulink, the initial default schema version is 4.3. To set
the schema version to R19-11, use the model configuration parameter Generate XML file for
schema version or an equivalent function call. For more information, see Select AUTOSAR Classic
Schema.
R2022a allows you to import, export, and model postbuild conditions for AUTOSAR startup variants
modeled in Simulink. You can model postbuild binding times for AUTOSAR components by
configuring variant blocks with a Startup activation time, a MATLAB variable condition, and variant
logic defined by expressions. Postbuild variant points are resolved with a call to the run time
environment (RTE) after the code has been compiled and deployed on an electronic control unit
(ECU). Optionally, you can elect generate the ARXML for these postbuild conditions as a package. For
more information, see Configure Postbuild Variant Conditions for AUTOSAR Software Components.
Basic Software component event failure testing and simulation with Dem Status Override
and Dem Status Inject blocks
R2022a introduces two new blocks, Dem Status Override and Dem Status Inject, to enable the
simulation and testing of a Basic Software Component event failure and recovery. The Dem Status
Override block enables you to override and set the status of an event in a modeled basic software
component so that you can simulate and test specific behavior to quickly gain coverage. The Dem
Status Inject block block enables you to simulate an instantaneous external event so that you can test
the robustness of a basic software component and whether it can recover, or heal, itself from a
failure.
For more information, about the blocks, see Dem Status Override and Dem Status Inject. For more
information about how to use the blocks for simulation and testing, see Simulate and Verify AUTOSAR
Component Behavior by Using Diagnostic Fault Injection.
2-2
Functionality being removed or changed
R2022a introduces the ability to configure NVRAM block data to be read out at startup and written
away at shutdown by setting the NVBlockNeeds parameters RestoreAtStart and StoreAtShutdown.
Additionally, these parameters are included in the exported ARXML. For more information, see
Configure AUTOSAR Per-Instance Memory.
Starting in R2022a, data types and related elements that are not used in the model are removed from
the exported ARXML files. Removal of these unused data types and elements help prevent data type
conflicts with other ARXML files when imported to third-party authoring tools and makes it easier to
compare ARXML files in incremental workflows. For more information, see Generate AUTOSAR C
Code and XML Descriptions.
R2022a enhances Simulink.Breakpoint objects as model arguments to bring these objects on par
with Simulink.Parameter and Simulink.LookupTable objects. You can now:
Test harness support is also provided for this new breakpoint functionality. For more information, see
Configure Lookup Tables for AUTOSAR Calibration and Measurement.
In R2022a, the AUTOSAR 4.0 code replacement library replaces code from more blocks for these
categories of entries:
• Multiplication
• Division
• Combination of multiplication and division
• Combination of multiplication and shift right
Compatibility Considerations
Previously, these entries in the AUTOSAR 4.0 library replaced code from the Product block only when
Saturate on integer overflow was selected for the block. In R2022a, these entries also replace code
from Product blocks that do not overflow, regardless of whether Saturate on integer overflow is
selected.
R2022a extends support of Generate Calibration Files tool for Classic AUTOSAR platform.
The Generate Calibration Files supports generation and customization of ASAP2 file and
generation of CDFX file.
2-3
R2022a
For more information, see Generate ASAP2 and CDF Calibration Files (Embedded Coder).
• ara::com::method support
• Event-Based execution modeling and code generation
• Scoped enum classes
• Nested namespace customization in generated C++ code
• DDS bindings for Adaptive AUTOSAR applications
ara::com::method support
R2022a adds ara::com method support. For more information, see Model AUTOSAR Adaptive
Service Communication.
R2022a enables you to model and generate code for event-triggered execution in AUTOSAR adaptive
applications. You can now model software components that execute only when an event arrives.
Previously, you could only model message or event communication by periodically polling for an
event, which introduced the overhead of executing a runnable even when an event was not present.
Event-triggered execution eliminates this overhead by executing a runnable only when an event
arrives. You can also generate C++ code from these applications that is compliant with the AUTOSAR
adaptive schema 00046-00048. For more information, see Model AUTOSAR Adaptive Service
Communication.
By default, R2022a uses C++11 style scoped enum classes in generated AUTOSAR adaptive code.
Enum classes help facilitate easier integration by minimizing the need for adjustments to the
generated code. For more information, see C++11 Style Scoped Enum Classes Generated for
AUTOSAR Adaptive Applications.
You can now customize the generated C++ code from your modeled AUTOSAR adaptive application
to generate the model class in a nested namespace. For more information, see Configure AUTOSAR
Adaptive Code Generation.
Starting from R2022a, the generated code for adaptive AUTOSAR model supports DDS binding for
ara::com enabling communication between adaptive AUTOSAR applications. This feature is
supported out of the box with AUTOSAR Adaptive Linux Executable toolchain. The generated
ServiceInstanceManifest.arxml contains DDS deployment artifacts. The applications
communicating with each other are expected to have event deployment artifacts with same TOPIC-
NAME and DOMAIN-ID.
For more information, see Build Out of the Box Linux Executable from AUTOSAR Adaptive Model.
2-4
3
R2021b
Version: 2.5
New Features
Bug Fixes
Compatibility Considerations
R2021b
• AUTOSAR interpolation and math routine library implementations for host code verification
• Improved lookup table ARXML support for model hierarchies
• Lookup table ARXML support for AdminData
• Improved performance for imported compositions by sharing AUTOSAR dictionary
AUTOSAR IFX, IFL, MFX, and MFL library implementations for host code verification
R2021b enhances MATLAB host code verification for AUTOSAR models by providing host
implementations of IFX, IFL, MFX, and MFL routines in the AUTOSAR 4.0 library. The host library
implementations enable software-in-the-loop (SIL) validation for models that trigger code
replacements from the AUTOSAR 4.0 library. For more information, see AUTOSAR 4.0 Library Host
Code Verification.
R2021b enhances ARXML export for lookup tables in model hierarchies. When a referenced model
contains a lookup table, and the containing top model passes lookup table parameter values to the
model arguments of the referenced model, top-model export now generates application data types for
the lookup table parameters.
Parameterizing instances of reusable referenced model lookup tables allows you to place multiple
instances of lookup table sub-units in an AUTOSAR model hierarchy and supports sub-unit level
testing. For more information, see Parameterizing Instances of Reusable Referenced Model Lookup
Tables.
R2021b enhances import and export of ARXML lookup table descriptions to support AdminData
record layout annotations. AdminData record layout annotations can be used with third-party
AUTOSAR tools. For more information, see Exporting AdminData Record Layout Annotations.
For compositions that contain more than 20 software components, sharing AUTOSAR properties
among components can significantly improve performance for composition workflows, including
import, dictionary navigation, AUTOSAR validation, and code generation. Limiting property
replication among components can reduce component model file sizes.
To configure a composition import to store AUTOSAR properties for component sharing, call the
ARXML import function createCompositionAsModel and specify the 'DataDictionary' and
'ShareAUTOSARProperties' arguments. For more information, see Import AUTOSAR Composition
and Share AUTOSAR Dictionary and the createCompositionAsModel reference page.
3-2
Functionality being removed or changed
Starting in R2021b, adaptive applications support code generation for persistent memory
(ara::per). Persistent memory provides a mechanism to store information in the nonvolatile
memory of an ECU. The information is available over boot and ignition cycles.
To better adhere to the AUTOSAR adaptive standard, C++ code generation now supports reference
data types. Reference data types help the generated code integrate with AUTOSAR adaptive function
calls, increase the readability of the generated C++ code, improve the compiler optimization, and
enable the generated variables to be more tightly scoped. For more information, see Code
Generation.
You can now control the generated C++ class names and namespaces for your AUTOSAR adaptive
applications. For more information about how to configure these aspects of the generated code, see
Configure AUTOSAR Adaptive Code Generation.
In an open architecture model, you can export ARXML by using the Simulink Toolstrip, the software
architecture canvas, or the export function. For example, from the Modeling tab, select Export >
Generate Code and ARXML. In the Export Composition dialog box, select the option Export ECU
extract.
3-3
R2021b
To generate the ECU extract, the software automatically maps the software components in the
composition to an ECU. If the composition contains nested compositions, the software uses a
flattened version of the composition hierarchy, containing only components. Composition export
generates the ECU extract into the file System.arxml, which is located in the composition folder.
For more information, see Export Composition ECU Extract and the export reference page.
To configure the properties, click the icon in the row containing the element you want to
configure.
The Code Mappings editor now also displays data related to In Bus Element and Out Bus Element
blocks in a hierarchical view. In previous releases, this data displayed as a flat list in the Code
Mappings editor.
For AUTOSAR architecture models, the software automatically configures In Bus Element blocks with
message queue properties when you:
Beginning in R2021b, the default name for AUTOSAR adaptive model classes are the names of the
models. Previously, the class names in the generated code used a default class name of the form
modelModelClass. The new default is of the form model.
This change to the generated class names may cause integration scripts that use the class names to
break. Update integration scripts to the new generated class names. For more information, see Code
Generation.
3-4
4
R2021a
Version: 2.4
New Features
Bug Fixes
R2021a
Bus ports enable intuitive modeling of AUTOSAR communication ports, interfaces, and groups of data
elements. If you model AUTOSAR ports by using In Bus Element and Out Bus Element blocks, and
type the bus ports by using bus objects, basic properties of AUTOSAR ports, interfaces, and data
elements are configured without using the AUTOSAR Dictionary. To manage component interfaces,
you configure Simulink bus objects.
AUTOSAR architecture models can link queued S-R component models that have bus ports.
For more information, see Configure AUTOSAR Ports By Using Simulink Bus Ports, Messages, and
Configure AUTOSAR Queued Sender-Receiver Communication.
Simulink modeling styles for AUTOSAR runnables include export-function modeling. In R2021a,
AUTOSAR components that model runnables by using exported functions can use Simulink bus ports.
For example, this adaptation of example model autosar_swc_slfcns uses bus ports. Function-call
subsystem SS1 models a periodic runnable and generates an exported function.
4-2
Functionality being removed or changed
In AUTOSAR architecture models, you can link component models that use the export-function
modeling style and then use the Schedule Editor to schedule the simulation.
For more information, see Configure AUTOSAR Ports By Using Simulink Bus Ports and Model
AUTOSAR Software Components.
Components with Simulink bus ports support variant conditions and nonvirtual buses
R2021a improves AUTOSAR port modeling by supporting variant conditions and nonvirtual buses
with Simulink bus ports. In AUTOSAR software component models that model AUTOSAR ports by
using bus ports, you can:
For more information, see Configure AUTOSAR Ports By Using Simulink Bus Ports.
R2021a provides functions to control the default data packaging used for internal variables in the
generated code for an AUTOSAR component model. You can specify that internal data store, signal,
and state data is packaged:
For more information, see Specify Default Data Packaging for AUTOSAR Internal Variables and the
function ref pages getInternalDataPackaging and setInternalDataPackaging.
Lookup table ARXML support for row-major layout and improved tool interoperability
R2021a enhances ARXML export and import of lookup tables to support row-major array layout and
improved interoperability with third-party AUTOSAR authoring tools.
To specify row-major order for lookup table values in the linear memory of an ECU, ARXML
descriptions of multidimensional lookup tables must specify a SwRecordLayout with the CATEGORY
set to ROW_DIR. In R2021a:
• Exporting Simulink row-major multidimensional lookup tables generates ARXML lookup table
descriptions with the SwRecordLayout category set to ROW_DIR.
• Importing ARXML files with only row-major multidimensional lookup table descriptions creates
Simulink lookup tables with Array layout set to Row-major and Use algorithms optimized for
row-major array layout enabled.
Third-party AUTOSAR authoring tools expect exported lookup table descriptions to contain
ApplicationDataTypes with VALUE-AXIS-DATA-TYPE-REF and INPUT-VARIABLE-TYPE-REF
elements. VALUE-AXIS-DATA-TYPE-REF and INPUT-VARIABLE-TYPE-REF are expected to reference
table value and breakpoint data types specified in Simulink lookup table blocks. In R2021a:
• Exporting Simulink lookup tables generates ARXML lookup table descriptions containing
ApplicationDataTypes that have VALUE-AXIS-DATA-TYPE-REF and INPUT-VARIABLE-TYPE-
REF elements.
4-3
R2021a
• Importing ARXML lookup table descriptions creates Simulink lookup tables that have table value
and breakpoint data types configured based on imported ApplicationDataType settings.
For more information on modeling AUTOSAR lookup tables, see Model AUTOSAR Calibration
Parameters and Lookup Tables and Configure Lookup Tables for AUTOSAR Measurement and
Calibration.
R2021a extends support of the AUTOSAR Adaptive Platform to include Release 19-11. AUTOSAR
Blockset supports the 000048 (R19-11) schema for import and export of ARXML files and generation
of AUTOSAR-compliant C++ code.
• In R2021a, 000048 (R19-11) is the default schema version for AUTOSAR adaptive models created
in Simulink.
• If you import schema 000048 (R19-11) ARXML files into Simulink, the ARXML importer detects
and uses the schema version and sets the schema version parameter in the model.
• Building an AUTOSAR adaptive model using schema 000048 (R19-11) generates ARXML
descriptions and C++ code that comply with Adaptive Platform Release 19-11.
For more information on AUTOSAR schema versions, see Select AUTOSAR Schema.
AUTOSAR adaptive models implement event-based communication by sending and receiving Simulink
messages over root-level ports. In R2021a, you can use Simulink bus ports to model AUTOSAR
message-based communication.
Bus ports enable intuitive modeling of AUTOSAR communication ports, interfaces, and groups of data
elements. If you model AUTOSAR ports by using In Bus Element and Out Bus Element blocks, and
type the bus ports by using bus objects, basic properties of AUTOSAR ports, interfaces, and events
are configured without using the AUTOSAR Dictionary. To manage component interfaces, you
configure Simulink bus objects.
For more information, see Configure AUTOSAR Ports By Using Simulink Bus Ports, Messages, and
Model AUTOSAR Adaptive Service Communication.
4-4
Functionality being removed or changed
R2021a improves the CMakeLists.txt generation framework for AUTOSAR adaptive models. You
can use modern CMake tooling to build Linux standalone executables, static libraries, and shared
libraries.
For more information, see Build Library or Executable from AUTOSAR Adaptive Model and Build Out
of the Box Linux Executable from AUTOSAR Adaptive Model.
Starting in R2021a, adaptive applications can forward event logging information to a console, file, or
network, as defined in the AUTOSAR Specification of Diagnostic Log and Trace. You can
collate and analyze log data from multiple applications.
For more information, see Configure Run-Time Logging for AUTOSAR Adaptive Executables.
In an AUTOSAR architecture model, you can use the Schedule Editor to schedule and specify the
execution order of AUTOSAR component runnables. R2021a adds support for ARXML descriptions of
execution order constraints at Virtual Function Bus (VFB) level. You can:
R2021a provides an AUTOSAR Model Linker app, which opens as needed to help you link AUTOSAR
component blocks to existing Simulink implementation models.
In an architecture model, when you initiate linking of an AUTOSAR Software Component block to an
implementation model, the software verifies whether the specified model meets linking requirements.
For example, the implementation model must use the same target as the architecture model, use a
fixed-step solver, and use root-level bus ports.
If the implementation model does not meet one or more of the linking requirements, the software
opens the AUTOSAR Model Linker app, which offers fixes for the unmet requirements. When you
click Fix All, the software fixes the unmet requirements and finishes linking the component block to
the model.
4-5
R2021a
4-6
5
R2020b
Version: 2.3
New Features
Bug Fixes
Compatibility Considerations
R2020b
R2020b extends support of the AUTOSAR Classic Platform to include Release 4.4. AUTOSAR Blockset
supports schema version 4.4 for import and export of ARXML files and generation of AUTOSAR-
compliant C code.
If you import schema version 4.4 ARXML files into Simulink, the ARXML importer detects and uses
the schema version and sets the schema version parameter in the model. For more information on
schema import and export, see Select AUTOSAR Schema.
R2020b enhances the workflow for modeling AUTOSAR port parameters for port-based parameter
communication. In Simulink, you can model the receiver side of AUTOSAR parameter communication.
To enhance port parameter modeling, R2020b extends model workspace parameter mapping to
support AUTOSAR port-based parameters. By using the Parameters tab of the Code Mappings editor
or the mapParameter function, you can map Simulink model workspace parameters to AUTOSAR
receiver port parameters. Mappable parameters include Simulink parameter, lookup table, and
breakpoint objects.
Because port parameter data is scoped to the model workspace and the AUTOSAR component:
• Different components can use the same parameter names without naming conflicts.
• An AUTOSAR composition can contain multiple instances of a parameter receiver component,
each with instance-specific port parameter data values.
For more information, see Port Parameters and Configure AUTOSAR Port Parameters for
Communication with Parameter Component.
In R2020b, you can import and export ARXML descriptions of AUTOSAR included data type sets
(IncludedDataTypeSets). An IncludedDataTypeSet defines AUTOSAR data types that are
internal to a component and not present in the component interface descriptions. Multiple
components can import an IncludedDataTypeSet to share a common set of internal data types.
In an AUTOSAR software component model, you can configure internal data types to be exported in
ARXML IncludedDataTypeSets and generated in C header files. For more information, see
Included Data Type Sets and Configure Internal Data Types for AUTOSAR IncludedDataTypeSets.
5-2
Functionality being removed or changed
In an AUTOSAR model, you can use the Schedule Editor to schedule and specify the execution order
of AUTOSAR component runnables. R2020b adds support for ARXML descriptions of execution order
constraints. You can:
R2020b enhances the workflow for mapping Simulink signals to AUTOSAR variables for run-time
calibration. You can now selectively add or remove model signals from AUTOSAR component signal
mapping.
In the AUTOSAR Component Designer app, use a Code Mappings editor button or a model cue:
• In the model canvas, select one or more signals. Open the Code Mappings editor, Signals/States
tab, and click an add or remove button.
• In the model canvas, select a signal. Place your cursor over the displayed ellipsis and select an
add or remove model cue.
Alternatively, from a MATLAB script or command line, call function addSignal or removeSignal.
Previously, for AUTOSAR components that were created in Simulink (bottom-up workflow), the initial
default signal mapping included all named signals in the model. In R2020b, named signals are no
longer mapped by default. After creating a mapped AUTOSAR component in Simulink, you selectively
add and map signals.
For AUTOSAR components imported or updated from ARXML (round-trip workflow), the signal
mapping workflow is unchanged. After import, you add content to the component model to implement
functionality. Updating the model mapping to reflect Simulink changes automatically creates and
maps signals to represent imported AUTOSAR variables.
For more information, see Map Block Signals and States to AUTOSAR Variables.
5-3
R2020b
In R2020b, you can create a Linux executable for AUTOSAR adaptive models. By selecting the
AUTOSAR Adaptive Linux Executable toolchain for an AUTOSAR adaptive component model,
you can create an AUTOSAR executable and run it as a standalone application.
For more information, see Create Linux Executable for Run-Time Calibration.
In R2020b, you can configure ASAP2 (A2L) file generation to specify an ASAP2 file version and
whether to exclude or include comments.
• Previously, you could generate only version 1.31 ASAP2 files. Now, in the ASAP2 Generator app,
you can select a supported ASAP2 file version. The default version is 1.71.
• Previously, the generated ASAP2 file included comments. Now you can choose to exclude
comments.
For more information, see Configure AUTOSAR Adaptive Data for Run-Time Measurement and
Calibration.
In an open AUTOSAR architecture model with no functional content, you can import an AUTOSAR
software composition by using either an app or a function:
• On the Modeling tab, select Import from ARXML. The AUTOSAR Importer app opens. Work
through the procedure to import the ARXML composition description and create a composition
editor representation of the composition in the software architecture canvas.
• Call the architecture function importFromARXML.
For more information, see Import AUTOSAR Composition from ARXML, importFromARXML, and the
example Import AUTOSAR Composition into Architecture Model.
5-4
Functionality being removed or changed
R2020b removes support for AUTOSAR Classic Platform schema versions 3.x and 2.1. Validating an
AUTOSAR model that uses schema version 3.x or 2.1 generates an error, which prevents code
generation.
Use schema version 4.0 or later instead. The default schema version for new AUTOSAR models is 4.3.
For more information, see Select AUTOSAR Schema.
5-5
6
R2020a
Version: 2.2
New Features
Bug Fixes
Compatibility Considerations
R2020a
For the AUTOSAR Classic Platform, AUTOSAR Blockset provides Basic Software (BSW) blocks, which
allow you to model software component calls to BSW services that run in the AUTOSAR run-time
environment. BSW services include NVRAM Manager and Diagnostic Event Manager.
R2020a extends BSW service support to include component calls to Function Inhibition Manager
(FiM) services. As defined in the AUTOSAR specification, the Function Inhibition Manager provides a
control mechanism for selectively inhibiting (that is, deactivating) function execution in software
component runnables, based on function identifiers (FIDs) with inhibition conditions. For example, an
FID can represent functionality that must be stopped if a specific failure occurs.
The Function Inhibition Manager is closely related to the Diagnostic Event Manager (Dem), because
inhibition conditions can be based on the status of diagnostic events. For example, if a sensor failure
event is reported to the Diagnostic Event Manager, the Function Inhibition Manager can inhibit the
associated function identifier and stop execution of the corresponding functionality.
R2020a adds FiM and Dem blocks that allow you to:
For more information, see Configure Calls to AUTOSAR Function Inhibition Manager Service.
For an AUTOSAR component model with multidimensional arrays, if you set the model configuration
parameter Array layout to Row-major, you can preserve dimensions of multidimensional arrays in
the generated C code. Preserving array dimensions in the generated code can enhance code
integration.
R2020a improves ARXML export to honor the row-major setting for multidimensional signals and
states mapped to AUTOSAR variables. If Array layout is set to Row-major, ARXML export no longer
flattens multidimensional matrices in the generated descriptions for signals and states mapped to
AUTOSAR variables.
In the generated C code, access to the variable data depends on the type of storage. For internal
storage, such as static memory, the code uses multidimensional indexing. For external storage, the
code calls AUTOSAR Rte functions, which use one-dimensional indexing.
When you use Row-major array layout, you can disregard the setting of the AUTOSAR model
configuration parameter Support root-level matrix I/O using one-dimensional arrays. Support
root-level matrix I/O using one-dimensional arrays provides a workaround for exporting
multidimensional matrices in Column-major array layout.
6-2
Functionality being removed or changed
R2020a extends support of the AUTOSAR Adaptive Platform to include Release 19-03. AUTOSAR
Blockset supports the 000047 (R19-03) schema for import and export of ARXML files and generation
of AUTOSAR-compliant C++ code.
• In R2020a, 000047 (R19-03) is the default schema version for AUTOSAR adaptive models created
in Simulink.
• If you import schema 000047 (R19-03) ARXML files into Simulink, the ARXML importer detects
and uses the schema version and sets the schema version parameter in the model.
• Building an AUTOSAR adaptive model using schema 000047 (R19-03) generates ARXML
descriptions and C++ code that comply with Adaptive Platform Release 19-03.
For more information on AUTOSAR schema versions, see Select AUTOSAR Schema.
R2020a allows you to configure run-time calibration of adaptive application data based on XCP Slave
communication and ASAP2 (A2L) file generation. The XCP and ASAP2 capabilities are defined outside
the Adaptive Platform (AP) specifications, which as of Release 19-03 do not address data calibration.
As part of generating and deploying adaptive code, you can configure interfaces for XCP Slave
communication in the generated C++ code and export A2L files containing model data for
measurement and calibration.
• Use the Configuration Parameters dialog box to configure the model, to generate XCP Slave
function calls in adaptive C++ code.
• Use the ASAP2 Generator app to configure and generate an ASAP2 (A2L) file that describes model
data for measurement and calibration.
For more information, see Configure AUTOSAR Adaptive Data for Run-Time Measurement and
Calibration.
R2020a allows you to configure applications to use dynamic discovery to subscribe to adaptive
services as they become available. Previously, applications found and subscribed to adaptive services
one time during initialization. One-time discovery may require adaptive services to start before
applications and prevent applications from using new services as they become available. Now you can
6-3
R2020a
configure, in your model or programmatically, the service discovery mode of each required service
port as OneTime or DynamicDiscovery.
For more information, see Configure AUTOSAR Adaptive Service Discovery Modes.
R2020a adds a programmatic interface for developing AUTOSAR architecture models. Use the
AUTOSAR architecture functions to:
6-4
Functionality being removed or changed
For more information, see Software Architecture Modeling and Configure AUTOSAR Architecture
Model Programmatically.
Support for AUTOSAR Classic Platform schemas 3.x and 2.1 will be removed in a future release. Use
schema 4.0 or later instead. The default schema for new AUTOSAR models is 4.3. For more
information, see Select AUTOSAR Schema.
6-5
7
R2019b
Version: 2.1
New Features
Bug Fixes
R2019b
The AUTOSAR Component Designer app opens an AUTOSAR code perspective, which displays the
AUTOSAR tab, a help panel, a Property Inspector dialog box, and, directly under the model, the Code
Mappings editor.
To use the AUTOSAR Component Designer app, open a component model. On the Apps tab, click
AUTOSAR Component Designer.
• If the model has a mapped AUTOSAR software component, the app opens the AUTOSAR code
perspective, with the AUTOSAR tab displayed.
• If the model does not have a mapped AUTOSAR software component, the app opens the AUTOSAR
Component Quick Start. Use the AUTOSAR Component Quick Start to configure the model for the
AUTOSAR Classic or Adaptive Platform. When you complete the quick-start procedure and click
Finish, your model opens in the AUTOSAR code perspective, with the AUTOSAR tab displayed.
7-2
Functionality being removed or changed
In R2019b, the Code Mappings editor adds support for submodels referenced from AUTOSAR
software component models. In an open submodel, you can:
• Configure the submodel as a model referenced from an AUTOSAR software component model. Use
the AUTOSAR Component Quick Start or the AUTOSAR function autosar.api.create.
• In the AUTOSAR code perspective, use the Code Mappings editor to configure the submodel
internal data.
• To generate C code and AUTOSAR XML (ARXML) files that support run-time calibration of the
submodel internal data, open and build the component model that references the submodel.
For more information, see Map Calibration Data for Submodels Referenced from AUTOSAR
Component Models.
In R2019b, you can export variation points for AUTOSAR calibration data, including:
You can model calibration data in combination with different types of variant conditions. Model the
variant conditions by using Variant Source and Variant Sink blocks, Variant Subsystem blocks, or
model reference variants. When you build your model, the exported AUTOSAR XML (ARXML) files
contain the conditionally used data elements and their variation points.
For more information, see Export Variation Points for AUTOSAR Calibration Data.
In R2019b, you can model AUTOSAR ports by using Simulink bus ports instead of Simulink signal
ports. Bus port blocks In Bus Element and Out Bus Element can simplify model interfaces. For more
information, see Simplify Bus Interfaces (Simulink).
Bus ports provide a more intuitive way to model AUTOSAR communication ports, interfaces, and
groups of data elements. If you model AUTOSAR ports with In Bus Element and Out Bus Element
blocks, and type the bus ports with bus objects, basic properties of AUTOSAR ports, interfaces, and
data elements are configured without using the AUTOSAR Dictionary. For more information, see
Configure AUTOSAR Ports By Using Simulink Bus Ports.
In an AUTOSAR architecture model, if you link to an existing software component model that uses
root Inport and Outport blocks, the software automatically converts the signal ports to bus ports.
7-3
R2019b
In R2019b, you can use the Schedule Editor to schedule and specify the execution order of AUTOSAR
component runnables for simulation. In the Schedule Editor, you can:
For more information, see Using the Schedule Editor (Simulink) and Configure AUTOSAR Runnable
Execution Order By Using Schedule Editor.
You can also use the Schedule Editor in AUTOSAR architecture modeling. For more information, see
Configure AUTOSAR Scheduling and Simulation.
Also, the Code Mappings editor now retains mapping information when you perform cut/copy/paste or
undo/redo operations on data stores, states, or signals in the model diagram. You can:
• Cut/copy and paste a data store, state, or signal. Code Mapping Editor copies the Mapped To
information for the element. A signal cut or copy must include the originating block.
• Undo/redo an operation on a data store, state, or signal. Mapped To information is retained.
In R2019b, you can import AUTOSAR XML (ARXML) descriptions of adaptive software components,
service interfaces, and data types into Simulink. Use the ARXML importer to:
You can participate in round-trip exchanges of adaptive component ARXML descriptions between
Simulink and other development environments.
7-4
Functionality being removed or changed
Configure service instance identification for ARXML manifest and generated code
In R2019b, you can configure service instance identification for AUTOSAR required and provided
ports. When you build an adaptive software component model:
• Exported ARXML files include a service instance manifest file, which describes port-to-service
instance mapping.
• Generated C++ code uses the configured service instance information in ara::com function calls.
For more information, see Configure AUTOSAR Adaptive Service Instance Identification.
To send service event data, the AUTOSAR Adaptive Platform supports these methods:
• By reference — The send function uses memory in the application address space. After the send
returns, the application can modify the event data.
• By ara::com allocated memory — The application requests ara::com middleware to allocate
memory for the data. This method avoids data copies by ara::com middleware and can be more
efficient for frequent sends or large amounts of data. But the application loses access to the
memory after the send returns.
In R2019b, you can configure adaptive event sends to request ara::com memory allocation.
Previously, all event sends were by reference.
For more information, see Configure Memory Allocation for AUTOSAR Adaptive Service Data.
In R2019b, you can create an AUTOSAR architecture model, which provides resources and a canvas
for developing AUTOSAR composition and component models for the Classic Platform. Without
leaving the architecture model, you can:
7-5
R2019b
After you create an AUTOSAR architecture model, use the composition editor and the Simulink
Toolstrip Modeling tab to add and connect compositions and components. Common tasks include:
For more information, see Add and Connect AUTOSAR Compositions and Components.
After you add and connect Component and Composition blocks in an AUTOSAR architecture model,
you can add Simulink behavior to the components. For each AUTOSAR Component block, you can:
For more information, see Define AUTOSAR Component Behavior by Creating or Linking Models.
To simulate the behavior of the aggregated components in an AUTOSAR architecture model, click
Run. To configure scheduling and simulation, you can:
• Add Basic Software (BSW) blocks, including Diagnostic Service Component and NVRAM Service
Component blocks, to simulate calls to BSW services.
• Create a test harness model to connect inputs and plant elements to the architecture model.
• Use the Schedule Editor to schedule and specify the execution order of component runnables for
simulation.
In AUTOSAR architecture models, with one click, you can export composition and component ARXML
descriptions, generate component code, and package build artifacts. If you initiate an export that
encompasses a composition, it generates:
For more information, see Generate and Package AUTOSAR Composition XML Descriptions and
Component Code.
7-6
8
R2019a
Version: 2.0
New Features
Bug Fixes
Compatibility Considerations
R2019a
AUTOSAR Blockset provides an AUTOSAR dictionary and blocks for developing Classic and Adaptive
AUTOSAR software using Simulink models. You can define AUTOSAR software component properties,
interfaces, and data types, and map them to existing Simulink models using the AUTOSAR editor.
Alternatively, the blockset provides an application interface that lets you automatically generate new
Simulink models for AUTOSAR by importing software component and composition descriptions from
AUTOSAR XML files.
AUTOSAR Blockset provides blocks and constructs for AUTOSAR library routines and Basic Software
(BSW) services, including Memory Access and Diagnostics. By simulating the BSW services together
with your application software model, you can verify your AUTOSAR ECU software without leaving
Simulink.
AUTOSAR Blockset supports C and C++ production code generation and AUTOSAR XML file export
(with Embedded Coder). The software is qualified for use with the ISO 26262 standard (with IEC
Certification Kit).
• R2019a adds AUTOSAR Adaptive Platform support to existing Classic Platform support.
• Classic and adaptive development workflows are logically distinct, and are handled separately
in AUTOSAR Blockset software interfaces and documentation.
• Existing Classic Platform workflows are unchanged, except where enhanced by R2019a
features.
• AUTOSAR block libraries relocated:
• AUTOSAR Blockset libraries replace block libraries from Embedded Coder and Embedded
Coder Support Package for AUTOSAR Standard.
• Existing block names are unchanged; new blocks are added.
• AUTOSAR example models renamed and relocated:
8-2
Functionality being removed or changed
• AUTOSAR Blockset HTML help replaces AUTOSAR help in Embedded Coder and Embedded
Coder Support Package for AUTOSAR Standard.
• AUTOSAR Blockset Reference, User's Guide, and Release Notes PDF books replace the
Embedded Coder AUTOSAR PDF book.
• AUTOSAR Blockset Release Notes (latest release). In HTML notes, to view only compatibility
considerations, select Incompatibilities Only.
• On the MathWorks® web site, view the R2018b Embedded Coder Support Package for AUTOSAR
Standard Release Notes. This document provides compatibility information for AUTOSAR
Standard support package releases up through R2018b. To locate compatibility considerations in
the page, click expand all in page and search for compatibility.
You can also refer to the rest of the archived documentation, including release notes, for Embedded
Coder Support Package for AUTOSAR Standard and Embedded Coder.
Compatibility Considerations
If you are upgrading to R2019a AUTOSAR Blockset from Embedded Coder Support Package for
AUTOSAR Standard, these minor compatibility considerations might apply.
• R2019a changes AUTOSAR example model locations. If you reference model names in scripts,
update the model names. The new example models use the prefix autosar_ and are located in the
folder matlabroot/examples/autosarblockset.
• R2019a restructures and relocates AUTOSAR HTML help and PDF books. Consider updating any
bookmarks or references.
For function interface compatibility considerations related to R2019a new features, see
“Incrementally auto-configure and map new Simulink elements in AUTOSAR model” on page 8-5.
For function interface changes that support R2019a workflow improvements, consider migrating to
the improved workflows. For more information, see “Reuse existing AUTOSAR elements for software
components created in Simulink” on page 8-5 and the lookup tables subsection of “Code
Perspective enhancements for mapping data stores, model workspace parameters, and internal
signals and states” on page 8-6.
If you import schema 4.3.1 ARXML code into Simulink, the ARXML importer detects and uses the
schema version and revision, and sets the schema version parameter in the model. For more
information on schema import and export, see Select an AUTOSAR Schema.
8-3
R2019a
You can:
For more information, see Model AUTOSAR Adaptive Software Components and Configure AUTOSAR
Adaptive Software Components.
Generate AUTOSAR IFL and IFX library routines for interpolation using
AUTOSAR lookup table blocks
R2019a provides AUTOSAR lookup table blocks that you can configure to generate specific IFL and
IFX interpolation routines in your AUTOSAR-compliant C code.
To configure AUTOSAR library routine generation for a lookup table block, open the block parameters
dialog box. Modify the block parameters to configure a specific AUTOSAR routine. If you select the
AUTOSAR 4.0 code replacement library (CRL) for your model, code generated from the block is
replaced with the AUTOSAR library routine that you configured. For more information, see Configure
Lookup Tables for AUTOSAR Measurement and Calibration and Code Generation with AUTOSAR
Code Replacement Library.
• AUTOSAR Component Quick Start – Provides easy, ordered steps for mapping an open Simulink
model to an AUTOSAR software component. In an open model, set System target file to an
AUTOSAR target and open Code perspective. AUTOSAR Component Quick Start opens, and you
can quickly step through AUTOSAR software component configuration.
• Simulink Start Page – Provides AUTOSAR Blockset model templates. Select a Classic Platform or
Adaptive Platform template, which you can use as a starting point for developing an AUTOSAR
software component model.
8-4
Functionality being removed or changed
• AUTOSAR Dictionary displays Exported XML File name for packageable elements
• AUTOSAR XML export preserves ARXML file structure for imported noncomponent elements
• AUTOSAR property functions createEnumeration and createNumericType generate Simulink
definitions for working with imported AUTOSAR elements
• AUTOSAR Component Quick Start supports import of AUTOSAR element definitions as part of
initial configuration
For more information, see the updateAUTOSARProperties reference page, Reuse AUTOSAR
Element Descriptions, and example Reuse AUTOSAR Elements in Component Model.
For more information, see Incrementally Update AUTOSAR Mapping after Model Changes.
Compatibility Considerations
R2019a changes the default behavior of autosar.api.create. If you call the function without a
mode argument (init, default, or incremental), the function behavior depends on the mapping
state of the model.
8-5
R2019a
• If the model is not mapped to an AUTOSAR software component, the function creates a Simulink
to AUTOSAR mapping in default mode. In this mapping, Simulink inports and outports are
mapped to AUTOSAR ports with default AUTOSAR properties.
• If the model is already mapped to an AUTOSAR software component, the function updates the
existing mapping in incremental mode. The function finds and maps unmapped model elements,
and updates the AUTOSAR Dictionary for deleted model elements.
Previously, if you called the function without a mode argument, the function created a Simulink to
AUTOSAR mapping in init mode. In this mapping, Simulink inports and outports were not mapped
to AUTOSAR ports. Also, if the model was already mapped to an AUTOSAR software component, the
new mapping replaced the existing mapping.
If a MATLAB script previously called the function autosar.api.create without a mode argument,
update the script to account for the R2019a behavior change. Consider taking advantage of the new
behavior or, if you rely on the previous init mode behavior, specify init as the mode argument.
Map data stores to AUTOSAR component per-instance and static memory for calibration
In R2019a, AUTOSAR Code Mappings editor adds a Data Stores tab. In AUTOSAR code perspective,
use the tab to map internal data store elements to AUTOSAR component per-instance and static
memory for calibration. Alternatively, you can use equivalent AUTOSAR map functions
getDataStore and mapDataStore. For more information, see Map Data Stores to AUTOSAR
Variables, Configure AUTOSAR Per-Instance Memory, and Configure AUTOSAR Static Memory.
R2019a extends model workspace parameter mapping to support AUTOSAR per-instance parameters.
Using Code Mappings editor, Parameters tab, you can map model workspace parameters that are
marked as model arguments to AUTOSAR instance-specific parameters for calibration. Alternatively,
you can use equivalent AUTOSAR map functions getParameter and mapParameter. For more
information, see Map Model Workspace Parameters to AUTOSAR Component Internal Parameters,
Shared and Per-Instance Parameters, and Configure AUTOSAR Shared or Per-Instance Parameters.
R2019a combines AUTOSAR Code Mappings editor tabs Signals and States into a Signals/States
tab. Use the Signals/States tab to map Simulink block signals or states to AUTOSAR variables for
calibration.
AUTOSAR map functions getSignal, getState, mapSignal, and mapState are not affected by the
Signals/States tab change.
R2019a removes the Lookup Tables tab from AUTOSAR Code Mappings editor. The Lookup Tables
tab was used to map Simulink lookup table or breakpoint objects created in the base workspace to
8-6
Functionality being removed or changed
AUTOSAR calibration parameters for integrated and distributed lookups. Instead, you can use the
Parameters tab to map lookup table or breakpoint objects created in the model workspace. See Map
Model Workspace Parameters to AUTOSAR Component Internal Parameters.
AUTOSAR map functions getLookupTable and mapLookupTable are not affected by the Lookup
Tables tab removal. However, consider switching from using base workspace objects with functions
getLookupTable and mapLookupTable to using model workspace objects with functions
getParameter and mapParameter.
For an example of the model workspace-based workflow, see Configure Lookup Tables for AUTOSAR
Measurement and Calibration.
To improve navigation and usability of model data mapping tables, Code Mappings editor now groups
model data into categories. The editor displays a node for each category. For example:
To focus on entries of interest and reduce scrolling, you can expand and collapse model data
categories.
8-7
R2019a
Also, the AUTOSAR parameter and signal data objects can no longer be created by using the Model
Explorer. You instantiate the AUTOSAR objects in the MATLAB Command Window.
Compatibility Considerations
AUTOSAR software component models that model AUTOSAR parameters and variables by using
AUTOSAR data objects in the base workspace can no longer use AUTOSAR object interfaces to set
the calibration attributes SwCalibrationAccess and DisplayFormat.
Consider migrating the AUTOSAR models to the new Code Mappings editor workflow, which maps
Simulink model elements to AUTOSAR component elements. In the Code Mappings workflow,
AUTOSAR parameters and variables are scoped to the associated software component, and are
modeled by using Simulink model-workspace parameters and internal signals, states, and data stores.
When you select a parameter, signal, state, or data store in the Code Mappings editor, you can modify
its AUTOSAR calibration attributes in the Property Inspector.
For more information, see Map AUTOSAR Elements for Code Generation.
8-8
Functionality being removed or changed
• Maps the internal data store to AUTOSAR component per-instance memory for calibration.
Previously, the importer added a Data Store Memory block to the model and added a corresponding
AUTOSAR.Signal object to the base workspace.
Compatibility Considerations
If existing AUTOSAR infrastructure expects import of an ArTypedPerInstanceMemory element with a
Service Dependency to add an AUTOSAR.Signal object to the base workspace, update the
infrastructure to reflect the new importer behavior.
The Simulink Toolstrip includes contextual tabs, which appear only when you need them. The
AUTOSAR contextual tab includes options for completing actions that apply only to AUTOSAR
Blockset.
To access the AUTOSAR tab, with the Simulink Toolstrip activated, click Apps and then click the
AUTOSAR button. The AUTOSAR tab appears.
Documentation does not reflect the addition of the AUTOSAR contextual tab.
8-9