Diagnostic services & boot loader

Controllers under control.


Diagnostic services: Remote access to the controller.

Every in-vehicle controller is required to feature a function that allows remote access. For this purpose, the Unified Diagnostic Services (UDS) was developed as an example, which is specified in ISO 14229. The UDS protocol defines how a so-called tester - that is, a computer equipped with a certain piece of software - connects to the controller in order to carry out specific diagnostic services on the controller.

The most important services are:

  • reading out of incorrect memory entries
  • updating the controller firmware
  • adjusting parameters
  • controller reset
  • etc.

UDS provides a specified interface with access to the appropriate services for the testers. The UDS protocol does not contain specifications as to how the services should be implemented.

MAGNA Telemotive has many years of experience with the implementation of various diagnostic services, for example with updating the firmware by means of a boot loader.

The most important software modules of a bootloader.
Stylized graphic of a bootloader's software modules

Boot loader: Software always up to date.

The boot loader is responsible for updating the software of a controller. It consists of different software modules, such as the CAN driver, the diagnostic manager for processing the UDS messages and the flash manager.


The updating process consists of the following steps:

  • The tester prompts the controller to switch to the "programming session".

  • The controller performs a reset, switches to the "programming session" and starts the boot loader.

  • After the boot loader has started up, it returns the information to the tester that the switch to the "programming session" was successful.

  • The data to be sent is validated.

  • The tester sends the firmware data to the controller via individual UDS messages.

  • The data is loaded into the flash memory ("flashing" of the controller).

  • Once all of the data has been transferred, the controller performs another reset. After that, the controller is in "default session" again, that is, in normal operation with updated software.