Introduction To AutoSAR Configuration Classes

https://www.linkedin.com/in/amr-ashraf-43395a97

AUTOSAR

AUTOSAR (AUTomotive Open System ARchitecture) is an open and standardized automotive software architecture, jointly developed by automobile manufacturers, suppliers, and tool developers. Its main goal is to introduce a standardized layer between application software and the hardware of an electronic control unit (ECU). Thus, the software is largely independent from any chosen microcontroller and car-maker, making it reusable for several individual ECU systems.

The AUTOSAR Architecture distinguishes on the highest abstraction level between three software layers: Application, Runtime Environment and Basic Software which run on a Microcontroller.

The AUTOSAR Basic Software is further divided in the layers: Services, ECU Abstraction, Microcontroller Abstraction and Complex Drivers.

autosarstack

Configuration Overview:

The AUTOSAR Basic Software supports the following configuration classes:

  1. Pre-compile time
    – Pre-processor instructions
    – Code generation (selection or synthetization)
  2. Link time
    Constant data outside the module; the data can be configured after the module has been compiled
  3. Post-build time
    Loadable constant data outside the module. Very similar to Link time, but the data is located in a specific memory segment that allows reloading (e.g. re-flashing in ECU production line).

Configuration Class Pre-Compile time:

This type of configuration is a standalone configuration done before compiling the source code. That means parameter values for those configurable elements are selected before compiling and will be effective after compilation time. The value of the configurable parameter is decided in earlier stage of software development process and any changes in the parameter value calls for a re-compilation.

The contents of pre-compile time parameters can not be changed at the subsequent development steps like link time or post-build time.

Sample cases where pre-compile time configuration can be adopted are listed below:

Configure the number of memory tables and block descriptor table of NVRAM
manager.

Enable the macro for the development error tracing of the software modules.

Configuration Class Link time:

This type of configuration is done for the BSW module during link time. That means the object code of the BSW module receives parts of its configuration from another object code file. Link time parameters are typically used when delivering object code to the integrator (Linker).During the linking process, the configuration data will be available to module object file by resolving the external references. When the value of configuration parameters is to be changed the module configuration object file needs to be replaced by the one containing the new parameters.

Sample cases where Link time configuration can be adopted are listed below:

Unique channel identifier configured for the respective instance of the Network Management.

Logical handle of CAN network.

Identifier and type of Hardware Reception Handle and Hardware Transmission Handle for CAN interface.

COM callback function to indicate RTE about the reception of an invalidated signal.

Configuration Class Post-build time:

There are two kinds of post-build configuration defined. They are:

Post-build time loadable.

Post-build time selectable.

1- Configuration Class post-build time loadable:

This type of configuration is possible after building the BSW module or the ECU software. The BSW module gets the parameters of its configuration by downloading a separate file to the ECU memory separately, avoiding a re-compilation and re-build of the BSW module.

2- Configuration Class post-build time selectable:

Post-build time selectable makes it possible to define multiple configuration sets. Which set that will become active is chosen during boot-time.

The resulting executable includes all configuration sets as well as the source code of the BSW module.
I.e. it is not possible to exchange the configuration data without re-building the entire executable. It is only possible to choose between the provided parameter sets without individually changing the values of configuration parameters. This choice is done during module initialization.

Sincerely,
Amr Ashraf
Embedded Software Engineer

Leave a comment

search previous next tag category expand menu location phone mail time cart zoom edit close