Skip to content

Software platforms

AUTOSAR Classic and Adaptive

The two AUTOSAR platforms, why they exist, what each is actually for, and why a modern vehicle runs both at once rather than migrating from one to the other.

Intermediate9 minAUTOSAR · Platforms · Real-time

If you come from Android, is the piece of the automotive world that looks least familiar and is explained worst. Almost every introduction starts with a layered block diagram that tells you nothing about why anyone built it.

So start with the problem instead.

The problem AUTOSAR was invented to solve#

In the 1990s and 2000s, every was written from scratch against its own microcontroller. A supplier building a door module for one carmaker could not reuse it for another, because the code was welded to that specific chip, that specific bus layout, and that specific carmaker's conventions.

Two platforms, two different jobs#

The single most common misunderstanding is that Adaptive replaces Classic. It does not. They coexist in the same vehicle because they are answers to different questions.

Classic PlatformAdaptive Platform
Runs onMicrocontroller, no MMUMicroprocessor with an OS
Operating systemOSEK-style, fixed task tablePOSIX-compatible (often Linux or QNX)
LanguageC, MISRA-constrainedC++14 and later
ConfigurationEverything fixed at build timeServices discovered at runtime
MemoryStatically allocatedDynamic allocation allowed
CommunicationSignals on CAN, LIN, FlexRaySOME/IP, DDS — services over Ethernet
Updatable in the fieldRarely, and awkwardlyYes, by design
Typical functionBraking, steering, body controlSensor fusion, ADAS, gateways
TimingDeterministic, microsecondsBest-effort with soft real-time

AUTOSAR Classic, concretely#

targets a microcontroller with tens or hundreds of kilobytes of RAM and no memory-management unit. There is no process isolation, no filesystem, no dynamic loading. What there is instead is a task table decided before the binary was built.

What "statically configured" really means#

The configuration is not a settings file the software reads at startup. It is input to a code generator that runs at build time and emits C.

your function code (SWC)
        +
ARXML configuration          →  generator  →  generated C  →  compiled binary
(signals, tasks, timing,
 which bus, which ECU)

Why it is still everywhere#

Because for a brake controller, all of that rigidity is a feature.

Gotcha

Do not read "legacy" into Classic. New Classic ECUs are designed every year. The right mental model is that Classic is the automotive equivalent of firmware — you would not run a pacemaker on a general-purpose OS either.

AUTOSAR Adaptive, concretely#

targets the other end: a real processor with an MMU, running a operating system, with megabytes or gigabytes of memory.

The functional clusters#

Adaptive is organised into functional clusters — the standard's word for "subsystems the platform provides". The ones you meet in practice:

ClusterWhat it gives you
ara::comService-oriented communication — the SOME/IP or DDS binding
ara::execStarting, stopping and supervising applications
ara::perPersistent storage with integrity guarantees
ara::diagDiagnostics — UDS, fault memory
ara::smState management: which applications run in which vehicle state
ara::ucmUpdate and configuration management — the OTA mechanism
ara::cryptoKey storage and cryptographic operations

What service-oriented buys you here#

Signal-oriented — everyone shouts, everyone listensECU AECU BCAN busECU CHead unitno addressing · no replies · fixed at build timeService-oriented — components offer and callSeat serviceoffers: setPosition()Light serviceoffers: setBeam()Cockpit appdiscovers · callsdiscovered at runtime · request/response · versionedsignals: add a consumer and you re-wire · services: add a consumer and nothing changesthat difference is what makes features addable after the car ships
Signals are broadcast and fixed; services are requested and discoveredClassic sends a signal onto a bus and hopes the right ECU is listening. Adaptive asks a named service for something and gets an answer, or an error.

How they live together#

A real vehicle runs both, joined by a gateway.

        ┌──────────────── central compute ────────────────┐
        │                                                 │
        │  Adaptive: ADAS stack, sensor fusion, gateway   │
        │  Android:  cluster + infotainment               │
        │  (both on a hypervisor, plus a safety island)    │
        └───────────────────────┬─────────────────────────┘
                                │  Automotive Ethernet, SOME/IP
                ┌───────────────┼───────────────┐
                │               │               │
        ┌───────┴──────┐ ┌──────┴───────┐ ┌─────┴────────┐
        │ Zone (front) │ │ Zone (rear)  │ │ Powertrain   │
        │   Classic    │ │   Classic    │ │   Classic    │
        └───────┬──────┘ └──────┬───────┘ └─────┬────────┘
                │ CAN, LIN      │ CAN           │ CAN, FlexRay
             sensors         actuators       inverter, motors

Where AAOS fits relative to AUTOSAR#

This confuses people, so state it plainly.

What to be sceptical about#

"We are migrating from Classic to Adaptive." Some functions will move. Brake control will not. Ask which specific functions, and what the safety argument is.

Adaptive is not automatically safe. Running on POSIX with dynamic memory does not remove ASIL requirements — it makes them harder to argue. Adaptive supports safety up to ASIL D on paper; achieving it takes real work, and much of the industry solves it by keeping the highest-ASIL logic on a separate safety microcontroller instead.

Adaptive is not free. Tooling is expensive, expertise is scarce, and the standard is large. Some OEMs have concluded that plain Linux or QNX plus SOME/IP gets them most of the benefit with less overhead — and that is a defensible position, not heresy.

The tooling is the real cost. ARXML editing, configuration management and generator licences dominate. Engineers arriving from open-source ecosystems are usually more surprised by the tooling than by the concepts.

Next#

The other platforms competing for the same sockets — Android, Linux and QNX.

References & further reading

Code links target the main branch on cs.android.com. AOSP moves — if a path 404s, search the symbol instead.