
Explore Autosar basics, layered architecture, interfaces, and configuration classes while learning conformance, migration strategies, and how to build module independent applications; cover Dem, DCM, UDS, OBD, and Cam protocols.
Explore core C concepts, including keywords, qualifiers, storage classes, data types (basic, derived, user defined), identifiers, and variables. Learn format specifiers, size rules, and variable naming guidelines for robust coding.
Explore the C operators, including arithmetic, assignment, relational, logical, and bitwise types, plus increment/decrement, conditional, size of, and comma operators. Understand prefix versus postfix, precedence, and associativity with practical examples.
An overview of the four C storage classes—automatic, external, static, and register—covering their scope, lifetime, and initialization, and showing how extern enables cross-file access via a linker with examples.
Understand extern declarations to access a global variable across files through a header, update it in main, and print its value, while avoiding cross-file extern sharing.
Examine the static storage class, showing how static variables and functions are file-local, persist in memory, and support one-time initialization in boot code.
Examine how to use if else statements in C to make decisions based on conditions, with simple ifs, if else chains, nested ifs, and comparisons using logical operators.
Switch statement in C evaluates an integer, enum, or character expression to select a case, executes matching code, and uses break and default for invalid inputs.
Explore the C ternary operator, a conditional expression that returns one of two outcomes based on a condition, with examples showing age-based messages and nested conditions.
Learn how to evaluate nested ternary operators in embedded C, pairing question marks with colons using a stack-based approach, with examples that yield the result 50.
Explore loops in C, including while, do while, and for loops, and learn how conditions control repeated execution, printing 1 to 10 and showing do while runs at least once.
Master while and for loop concepts in embedded C, including infinite loops, break to exit, sensor monitoring, and printing numbers forward and backward.
Explain how break and continue statements control loop execution in C, with examples showing break exiting a loop and continue skipping the current iteration.
Explain how arrays store elements of the same type with a defined size and zero-based indices, print and input via for loops, and their contiguous memory layout with 4-byte blocks.
Learn how pointers store memory addresses of variables, how dereferencing accesses those values, and how single and double pointers reference each other through concrete C examples.
Explore common pointer operations, including postfix and prefix increment on pointers, dereferencing, and precedence rules using array examples to reveal how values like 100 and 200 are accessed.
Explore common pointer declarations in embedded C and AUTOSAR overview, including pointers to int, const pointers, and pointers to const, with rules for modifying addresses and values.
Uncover the double pointer concept by tracing an array and a pointer to its first element, then a pointer to that pointer; dereference twice to print values like 200.
An array of pointers stores addresses of elements such as X, Y, and Z, illustrating memory layout, base element access, and how dereferencing retrieves the values stored at those addresses.
Explore representing a matrix with an array of pointers in embedded C, including base addresses, dereferencing, and pointer arithmetic to access and print elements.
Understand dynamic memory in c by allocating on the heap with malloc and kellock, resizing with realloc, and freeing with free, while noting heap versus stack lifetimes.
Explore implementing a 3x4 matrix with a single pointer, using malloc to allocate 48 bytes of dynamic memory, mapping the heap block to the matrix and filling it with loops.
Learn matrix initialization with an array of pointers in heap memory, allocate each row, assign values by row and column, print the matrix, and free memory.
Explore matrix initialization with a double pointer in dynamic memory, allocate a three by four heap-based matrix, assign values, print, and free memory.
Explore how dangling pointers reference freed memory and how memory leaks occur from missing free calls, with best practices like nullifying pointers after free and freeing heap memory.
Explore typedef to create aliases for existing types and grasp function fundamentals, including return types, parameters, and function calls, illustrated by integer addition and main function usage.
Explore call by value and call by reference in embedded C, highlighting how copying a variable prevents changes from propagating. Passing the variable's address allows in-place modification, unlike value semantics.
Explore hello world in Embedded C and AUTOSAR overview, covering printf prototype from stdio.h, variadic functions with ellipsis, and main prototypes with and without command line arguments.
Explore function pointers, a variable that stores a function's address for dynamic invocation and callbacks. See a three-function example using an array of pointers for add, subtract, and multiply.
Learn how C structures group data types into a user defined data type using struct and typedef. Access structure members with the dot operator, and copy or modify structure variables.
Use a point structure with x and y to contrast call by value and reference: value copies the struct, while reference passes the address via a pointer with arrow operator.
Explore structured padding that inserts bytes between structure members to satisfy alignment and improve memory access. See how pragma pack and compiler options alter struct size.
Learn how enum defines a set of named constants in C, using a weekday example like Monday to Thursday, with default integer size and zero-based values.
Explain that a union shares memory among members and has size equal to the largest member, as shown with char, float, and a 20-byte string.
Manipulate individual microcontroller register bits with bit fields inside a structure and unions. Explore 32-bit values, four bytes, and little endian memory layout for bit-level access from bit zero to bit 31.
Learn type casting in C, comparing explicit and implicit casting, how the compiler auto-converts types, and how explicit casts may cause data loss, with simple int and double examples.
Explore preprocessing directives in C, including header inclusion, macro definitions, and conditional compilation with #ifdef/#elif/#endif, plus #pragma, #error, and macros that invoke multiple functions.
Use preprocessor directives to guard header content and include it only once, and employ debugging macros that print file, line, date, time, and function for troubleshooting.
Explore the C memory layout, covering text and code sections, initialized and uninitialized data, stack for locals and parameters, and heap for dynamic memory via malloc and free.
Describe the C compilation process from pre-processing to linking and loading: preprocessor handles comments and macros and headers, then compiler, assembler, linker create an executable loaded into memory.
Explore autosar basics, its open source automotive software architecture, and how standard interfaces enable hardware independence. See the classic autosar layered model and why standardization drives safety and maintainability.
Explore Autosar layered architecture, from the abstraction layer and complex drivers to the runtime environment and application layer, and understand how the basic software enables ECU independence.
Discover Autosar configuration classes: pre compile time, link time, and post build, with static or external data enabling runtime variant selection. Explore Autosar libraries and interfaces and APIs.
Explain autosar methodology by starting with system configuration inputs in an XML file, distributing software components across ECUs, generating ECU-specific configuration, and producing the executable through tooling, compilation, and linking.
Explore conformance classes in Autosar, from ICC1’s black-box basic software interface to ICC2’s logically related module clusters, to ICC3’s full Autosar-compliant interfaces.
Illustrate Autosar use case by tracing how software components respond to a switch, enabling headlight activation through RTP, with generated modules and hardware interfaces.
Migrate non autosar software to autosar by establishing interfaces with RTP, using wrapper functions to fit into modules, modularizing Comstech memory, stack, and diagnostic stack, and advancing ICC1 to ICC3.
Explore Autosar Rte entities, including software components, composition, and ports, and learn how swcs communicate via provider and receiver ports to form configurable system structures.
Identify and compare assembly and delegation connectors in RTP: assembly connectors link software component ports within a single composition, while delegation connectors enable communication across compositions.
Explore the internal behavior of Autosar software components by mapping runnable entities to C functions, configuring skeleton runnables, and triggering them through timing, data, operation, and mode events.
Describe how the runtime environment (Rte) acts as an interface between your application and Autosar software, enabling hardware independence and access to os and memory services via virtual function bus.
Explore the sender–receiver interface in rtp, enabling one-to-one or one-to-many data exchange between ports, with support for primitive and complex types, asynchrony, and distribution.
Queue communication uses a first in, first out queue to store and read data from multiple senders, preventing data loss; non queued delivers only the latest data.
Explore implicit versus explicit communication, detailing buffering versus direct access, latest-value behavior, and non-blocking reads/writes, with RTI conventions for multiple-port data.
Describe the autosar client–server interface, including synchronous and asynchronous modes, where a client initiates requests and the server performs the service, buffering data for the next periodic call.
Explore standardized Autosar interfaces enabling communication between application software components and service software components through client-server and sender-receiver patterns, linking modules like FCM, Common, WDM, nvm, Dem, DCM and fem.
Understand intra ECU communication among Autosar software components in a single ECU, and inter ECU communication across multiple ECUs using RTP and RTI.
Explain the two-phase Rte generation, from contract phase with Autosar interface definitions to generating the application header file and the associated code files.
Learn the startup sequence for an automotive ECU: boot loader, boot manager, application check, initialization of OS, autostart task, nvm, dem, and ECM handling wakeups and sleep states.
Explains the shutdown sequence for embedded systems: enable communication, disable requests, switch ECM to post run, notify apps before/after module init, write to non-volatile memory, and perform sleep or reset.
Explore how the Echo State Manager initializes the OS and manages wakeup validation, and compare fixed versus flexible ECUM for startup, sleep, and wakeup in multicore ECUs.
Explore the flexible ECU M states: startup (pre OS and post OS), up, shut down, and sleep (wake up), plus off state with wakeup validation between driver and manager.
During the start up phase, the MCU jumps to reset, boots the bootloader, initializes hardware and memories, then C code sets up the stack and starts the OS.
Outline the shutdown phase for Embedded C and AUTOSAR overview, detailing initialization of mode and scheduler managers, wakeup event handling, and pre OS to post sequence leading to ECM shutdown.
Identify shutdown targets as states where no code runs, including sleep and reset, with watchdog manager controlling resources and triggering resets via modules or I/O like SPI or dyu.
Learn the up phase, where a periodic main function checks wakeup sources, updates the alarm timer, arbitrates run and post-run requests, and uses the ECM wakeup interfaces.
Configure hardware for the upcoming sleep phase, enable wakeup sources, disable interrupts in halt mode, and poll for wakeup events; return to run state on wakeup.
Explain how mode handling coordinates startup, post run, sleep, and shutdown by the ECM and wake manager, with arbitration of run requests, state transitions, and boot target selection.
Explain the AUTOSAR mode manager module that arbitrates mode requests from the application layer, controls mode switches, and manages the ECU startup and shutdown sequences across software modules.
Represent the current state of a global variable, cycling through startup, run, post, sleep. Arbitrate mode requests from mode users and perform switches when preconditions are met.
Explore how mode arbitration in W module uses rule-based logic to select actions. Learn how mode request conditions and event ports form expressions that trigger true or false action lists.
Explore immediate versus deferred operation in mode arbitration, configuring whether arbitration runs on mode request events or in the main cycle, and the resulting actions on modules.
Explain arbitration after initialization, driven by the configuration parameter and the mode init value for each W.M mode request, with undefined conditions excluded.
Describe mode control within Autosar: mode arbitration uses action lists, executed conditionally or on change, combining module calls, linked action lists, and hierarchical rules guided by logical expressions.
Describe the configuration flow for an AUTOSAR module, covering mode request ports, mode conditions, logical expressions, rules, and the action list used for mode arbitration and mode control.
Define and configure arbitration rules inside containers, using simple or complex expressions, linking to action lists, and controlling evaluation triggers for independent or subordinate rules.
Explore mode control configurations, detailing actions, action lists, and mode request ports, plus mode switch ports and component descriptions managed by the mode manager and declaration groups.
Explore automotive diagnostics and autosar overview, including diagnostic events, monitors, the diagnostic event manager and diagnostic communication manager, and standardized fault detection across ecus.
Identify two event types: related events via KPI report error status and software component events via set event status, with DTCs mapping each event to an identifier and priority rules.
Explain how operation cycles start and end, and how DTCs transition from pending to confirmed based on failure counts, with status bytes and event memory supporting logging and aging.
Describe how status bits in the DTC byte transition from false to true through event status, operation cycles, aging, and healing, covering pending, confirmed, and warning indicators.
The lecture explains debouncing of diagnostic events to confirm faults are mature, covering counter-based and timer-based bounce algorithms with thresholds and prefill states. It also contrasts asynchronous and synchronous processing.
Describe how diagnostic events are processed and stored, with status bits set or reset based on operation cycle validity, then retained in memory via storage checks and displacement.
Explore event data management in embedded AUTOSAR: snapshot and extended data, freeze frame storage, emission and non-emission modes, OBD standards, and aging and healing of faults.
Explain the aging process, healing the warning indicator, and memory management via aging counters. Complete aging by transitioning bit seven to zero and resetting the DTC.
Describe how dtc status switches between active and passive via the status pipe and test field. Outline startup behavior, including pre init, full init, autostart, and dtc suppression mechanics.
Explore dem configuration for autosar dtc events, aging, indicators, free stream data, and freeze frame, mapping events to dtcs, with practical tool-based setup guidance.
Describe DCM diagnostic communication manager module in Autosar as an API for diagnostic services used by tools during development, manufacturing, or service, supporting ISO 14229 and OBD services ISO 150315.
In Autosar layered architecture, the DCM (diagnostic communication manager) sits in the service layer's communication services.
The dcm sits at the center, interfacing with Autosar modules to obtain ax and dtcs, and with nvm and rtp to access stored data, application ids, and routines.
The DCM comprises three submodels, with the diagnostic session layer (DSL) steering requests, responses, timing, and security, while DSD handles diagnostic data and DSP delivers services to application via RTP.
Master the diagnostic session layer (dsl) functionality, including request handling, keepalive, security level and session state management, and obd/uds protocol handling with configurable p2 and s3 timers.
Explain how the diagnostic service dispatcher submodule validates incoming requests, checks service IDs, subfunctions, and session security, and coordinates suppression or transmission of responses with the DSL and DSP.
Explore the DSD functionality 2, including suppression of positive responses, validation of diagnostic session, security access, and application environment, and routing to the DSP submodule.
Explain diagnostic service processing in DSP submodule: analyze request, validate format and function address, execute or acquire data, call software components or other modules, assemble and forward response.
Explore how the CCM submodules DSL, DSD, and DSP interact via the PDU router, handling init, data copy, indications, confirmations, and transmit along with session timers and NRC handling.
Explain physical versus functional addressing in diagnostic communication, distinguishing unicast 1-to-1 physical messages from broadcast or multicast one-to-N functional requests.
Describe DCM timers, including P2 and P2 star minimum and maximum response times, NRC 78 handling, B2 start timer, and S3 session timer behavior.
Configure the config set containers for submodules—service dispatcher, dsl for session layer, dcm, and dsp—set service table subfunctions, dsl timing, buffer size, page buffer handling, and mode arbitration.
configure the diagnostic session layer submodule with the dsl container and buffers. include the dsl diag response for nrc 78 in the dcm and the callback uds/obd protocol handling.
Configure the service table in a container to set service IDs and availability. Use the DCM sid table function for callbacks and define sub services with DSD sub service functions.
Outline the dcm configuration in the dsd service submodule, including cmd side table service ids, dcm side table sub functions, dst side table function, and session and security references.
Explain how CanTP in Autosar handles transport data through segmentation, reassembly, and flow control across single, first, consecutive, and flow-control frames, with ISO standards and 4095-byte data support.
Learn how unified diagnostic services enable a tester tool to query automotive ECUs using a client–server model, reading temperatures, VINs, and diagnostic trouble codes via ISO 14229.
Explore use cases for diagnostics and routine testing, data extraction (temperature, state of charge, VIN, sensors), diagnostic sessions, reading/clearing DTCs, and OTA firmware updates via AWS.
Explain the request based protocol, detailing service id, subfunctions, and request data used to read data from ECU, with positive responses adding 0x40 and negative ones starting with 0x7F.
Explore diagnostic session control service 0x10, covering default, programming (0x02) for firmware updates, and extended sessions, plus the request frame structure and response codes (0x40 positive, 0x7F negative).
Describe the 0x27 security access service, showing how seed-key exchange unlocks one ECU security level at a time for restricted diagnostic data.
Maintain an active diagnostic session by sending tester present requests to prevent the extended session from returning to the default session and signaling the ECU that the client remains connected.
Explain service 0x22 read data by identifier and service 0x2e write data by identifier for ECU memory, using a data identifier (did) to read or update values.
Describe the DTC information service 19, enabling retrieval of diagnostic trouble codes and event data from memory, including DTC counts, lists, status, permanent DTC, freeze frame, and extended data.
Describe how diagnostic service 0x14 clears dtcs from memory, including freeze frame and extended data, with positive or negative NRC responses, and how service 0x19 lists dtcs.
Explain how routine control 31 service lets a client invoke ECU functions using OEM specific routine IDs, enabling start, stop, and result requests, including memory erasure and checksums.
Explain IQ reset and 11 service, detailing hard and soft resets to restart the control unit with memory reinitialization, and describe 28 service for enabling or disabling transmission and reception.
Explain bootloader services for programming, including request download and request upload, with location and size, and manage data transfer in blocks with maximum packet length, and transfer exit service 37.
Explore negative response codes in service requests from the Embedded C and AUTOSAR overview course. Understand general reject 0x10 with pending 0x78, two attempts, and 0x29/0x2911 or 0x31 issues.
NRC 21 shows the server is busy and may discard a request, like clearing DTCs, while NRC 22 and NRC 24 cover not correct conditions and out-of-order sequences.
Explain how ECU service requests outside range and security violations trigger NRCs such as 31, 33, 35, and 36, including extended session activation, unlock of security level, and retry limits.
Explain NRC codes such as 70, 72, and 78, indicating upload/download faults, general programming failures, and in-progress requests, and clarify session restrictions for service 27 and bootloader services.
Learn to use the Vector Canoe tool to configure ECUs and ECG blocks, add a pdf, simulate and send uds requests, and interpret dtcs and service ids.
When I started working as a professional, I tried searching relevant contents and explanation on Autosar but I was unable to find a structured course online, there were just huge documents and it was difficult to understand for a new person, so this led me to make this course so that others benefit from my experience.
AUTOSAR is a very important and vast topic in automotive industry. It is ubiquitous and its knowledge is a must. In today's market we have a huge demand for professionals with Autosar knowledge.
I have designed this course for individuals who want to learn about autosar and also for those who are preparing for interviews. I have tried to cover the important topics and modules in this course. I will keep updating the course with more topics based on your feedback and queries.
In this course below topics is covered keeping interview process in mind:
- Autosar concepts, use case and methodology
- BSW Modules: DCM, Dem, BSWM, ECUM, Nvm
- Rte Module
- UDS, CAN and OBD protocols
- Embedded C
After taking this course you will have better understanding of Autosar
Feel free to reach me on LinkedIn for more information on course.
Happy learning and all the best!!