Skip to content
RED SAGSkills
easyEmbedded Systems Engineer interview question

What is a bootloader in an embedded device, and why would a product need one?

What the interviewer wants to hear

  • First code to run after reset, in its own flash region
  • Validates the application, for example with a CRC or signature
  • Can receive and write new firmware over UART, USB, CAN or wireless
  • Jumps to the application by setting the stack pointer and vector table
  • Enables field updates and recovery without a debugger

Model answer

A bootloader is a small program in its own region of flash that runs first after every reset. Its job is to decide what to run: it checks that the application image is valid, often with a CRC or, for secure products, a cryptographic signature, and then jumps to it by loading the application's stack pointer and reset vector and moving the vector table offset. If an update is requested or the application is broken, the bootloader stays active and receives a new image over UART, USB, CAN or a wireless link, writes it to flash and verifies it. Products need one because firmware will have bugs and new features after shipping, and you cannot attach a debugger to thousands of devices in the field. A good bootloader is small, rarely changed and can always recover the device.

Can you answer it under time pressure?

Take a timed easy round and get scored on every answer.

Start mock interview

More easy Embedded Systems Engineer questions