Definition
MCAL (Microcontroller Abstraction Layer) is the lowest software layer in the AUTOSAR BSW (Basic Software) stack. It provides a standardised API to all hardware peripherals on the microcontroller: GPIO pins, ADC, SPI, CAN, LIN, timers, watchdog, flash, and EEPROM.
Above MCAL, every software component uses the same API regardless of which MCU family the ECU is built on. Below MCAL, the implementation is fully hardware-specific and non-portable by design.
Key principle: MCAL is the boundary between portable application code and non-portable hardware code. Changing the MCU means replacing MCAL; everything above stays the same.