In AUTOSAR, the ECU software is abstracted and subdivided into basic software, runtime environment and application layer.
The basic software consists of many predefined modules that are grouped into layers. The Microcontroller Abstraction Layer (MCAL), for example, offers drivers for access to memory, communication and input/output (IO) of the microcontroller.
The ECU Abstraction Layer (ECUAL) offers uniform access to all functionalities of an ECU such as communication, memory or IO – regardless of whether these functionalities are part of the microcontroller or are implemented by peripheral components.
The Service Layer provides different types of background services such as network services, memory management and bus communication services for the application layer. The operating system is also contained in this layer.
The Runtime Environment (RTE) abstracts the application layer from the basic software. It controls the runtime behavior of the application layer and implements the data exchange. In the application layer, the application functionality of the ECU is implemented in the form of individual software components.
This layer model simplifies porting of software to different hardware. Previously, such porting required extensive adaptations at various points all the way up to the application layer in the case of poorly designed software architectures. With AUTOSAR, all that needs to be done is to replace all microcontroller specific drivers in the MCAL. The modules in the ECU abstraction layer just need to be reconfigured, all other layers are unaffected by porting. This significantly reduces implementation and testing effort and associated risk.