本文参考Autosar文档并结合项目实际项目经验编著。
Autosar支持单核以及多核系统中的应用,以下主要介绍在ECU单核系统中的软件分层,希望这篇文章能让大家对Autosar软件架构有个总体了解。
Autosar主要分为三层:Application, Runtime Environment(RTE)和Basic Software.

Basic Software又可以进一步分为Services, ECU Abstraction, Microcontroller Abstraction和Complex Drivers.

Microcontroller Abstraction Layer(MCAL)主要跟MCU内部寄存器打交道,也就是我们常说的底层驱动。MCU通常包含很多外设,如Uart, IIC, SPI, ADC等。需要注意的是MCAL并不支持所有MCU外设驱动,目前仅支持ADC, CoreTest, DIO, FlashTest, GPT, ICU, MCU, Port, PWM, SPI以及Watchdog驱动。其中SPI只支持master模式,并不支持slave模式。那像UART,IIC这些外设的驱动该怎么实现?稍后介绍。
另外,MCAL一般不由tier1自己实现,直接从芯片供应商购买软件包,通过图形化界面的