HeapCrash / Topics / Drivers and bring-up

Drivers and bring-up: interview prep

Interview questions, hands-on challenges and design rounds on device driver and board bring-up, plus the companies whose embedded roles lean on it.

Interview questions

Key points for each answer are in the app's question bank.

  1. Compare polling, interrupts and DMA. When would you choose each?Basic
  2. Design the API for a non-blocking UART driver.Intermediate
  3. Explain SPI's four modes and how chip select is handled.Basic
  4. Walk through an I2C transaction: start, address, ACK, data, repeated start, stop.Basic
  5. An I2C bus is stuck with SDA held low. How do you recover?Intermediate
  6. How do you choose I2C pull-up resistor values?Intermediate
  7. Implement a software debounce for a push button.Basic
  8. Push-pull versus open-drain outputs: when would you use each?Basic
  9. Measure an input signal's frequency with a timer.Intermediate
  10. How do PWM frequency and duty-cycle resolution trade off?Intermediate
  11. What affects ADC accuracy, and how do you improve it?Intermediate
  12. What's the difference between an independent watchdog and a window watchdog?Basic
  13. What happens in hardware when an interrupt fires on a Cortex-M?Intermediate
  14. What contributes to interrupt latency, and how do you reduce it?Intermediate
  15. Explain NVIC priority grouping: preemption priority versus subpriority.Intermediate
  16. How would you structure a HAL so application code ports across MCU families?Intermediate
  17. What does a bootloader do, and why must the vector table be relocated?Intermediate
  18. You receive a brand-new board. In what order do you bring it up?Intermediate
  19. You must write a driver for a new sensor. What do you read first in the datasheet?Basic
  20. How does the clock tree affect peripherals when you change the PLL?Intermediate

Hands-on challenges

UART receive ring bufferDrivers & ISRs · Medium · 4 bugs · ~6 minFreeRTOS sensor pipelineRTOS · Hard · 5 bugs · ~8 minSPI NOR flash driverDrivers & ISRs · Medium · 4 bugs · ~6 minSTM32 HAL I2C readDrivers & ISRs · Warm-up · 4 bugs · ~4 minADC with circular DMADMA & graphics · Hard · 3 bugs · ~7 minButton debounce in an EXTI ISRDrivers & ISRs · Warm-up · 3 bugs · ~4 minIndependent watchdog usageDrivers & ISRs · Medium · 3 bugs · ~5 minPWM duty and frequency controlTiming · Medium · 5 bugs · ~6 minBattery voltage measurementLow power · Medium · 3 bugs · ~5 minSaving settings to internal flashBoot & OTA · Medium · 3 bugs · ~5 minRegister access macrosMemory & C · Warm-up · 3 bugs · ~4 minCharacter driver read()Embedded Linux · Medium · 3 bugs · ~7 minTouch controller interruptDMA & graphics · Medium · 4 bugs · ~6 minADC self-test at bootTest & validation · Warm-up · 3 bugs · ~5 minRS-485 transmit with DMAProtocols · Medium · 3 bugs · ~7 minSettings and calibration in one pageBoot & OTA · Medium · 4 bugs · ~7 minSPI DMA on a cached coreDMA & graphics · Hard · 3 bugs · ~7 minStuck I2C bus after resetProtocols · Medium · 3 bugs · ~7 minFlow meter input captureTiming · Medium · 3 bugs · ~6 minSleep current sixty times too highLow power · Medium · 3 bugs · ~6 minGPIO through /dev/memEmbedded Linux · Medium · 3 bugs · ~6 minStatus register as C bitfieldsMemory & C · Hard · 3 bugs · ~7 minRuntime baud-rate changeDrivers & ISRs · Warm-up · 3 bugs · ~5 minCAN node goes silent for goodDrivers & ISRs · Medium · 3 bugs · ~7 minEncoder ISR at top priorityRTOS · Medium · 3 bugs · ~6 minSPI writes that don't stickDrivers & ISRs · Medium · 3 bugs · ~6 minMicrosecond delays that hangTiming · Medium · 3 bugs · ~6 minRTC wake-up from STOP 2Low power · Medium · 3 bugs · ~7 min

Design rounds

Companies that emphasise it

Practise these with an AI interviewer that asks the follow-up.

Start practising