Curated Q&As across topics. Filter by topic and level to focus your prep.
55 questions
What is the difference between const and volatile in C?
What does the static keyword mean when used inside a function?
Explain the strict aliasing rule and why it matters in embedded C.
What is the difference between a pointer to a function and a function pointer stored in a struct?
How does link-time optimisation (LTO) affect embedded firmware, and when should you disable it?
What is memory alignment and why does it matter on ARM Cortex-M?
What are the typical memory sections in a bare-metal firmware binary?
What is a memory pool and why prefer it over malloc in embedded systems?
What is a stack overflow and how do you detect it on an embedded MCU?
How do you prevent heap fragmentation in a long-running embedded application?
What is a task (thread) in an RTOS and how does the scheduler decide which one runs?
What is a semaphore and how does it differ from a mutex?
Explain priority inversion and how a priority ceiling or inheritance protocol resolves it.
What is a deadlock and how do you prevent it in an RTOS?
How do you profile CPU utilisation per task in FreeRTOS without a JTAG trace probe?
What are the differences between UART, SPI, and I2C?
What is CAN bus and why is it used in automotive/industrial applications?
How does I2C clock stretching work and what problems can it cause?
Explain SPI modes (CPOL/CPHA) and how to determine which one to use.
How would you implement a robust bootloader update over UART with error detection?
What is an ISR and what restrictions apply to code running inside one?
What is interrupt latency and what factors affect it on a Cortex-M processor?
What is the MPU on Cortex-M and how do you use it to harden firmware?
How do you safely share data between an ISR and a task without an RTOS?
What is the difference between a HardFault and a MemManage fault on Cortex-M?
How does tail-chaining work on Cortex-M and when is it beneficial?
What is the difference between kernel space and user space in Linux?
What is a device tree and why is it used in embedded Linux?
Explain the difference between a platform driver and a character driver in Linux.
What is DMA and how does it interact with cache coherency on ARM Linux?
How would you implement a zero-copy data path between a peripheral and a user-space application?
What is a JTAG/SWD debug interface and what can you do with it?
What is a watchdog timer and why should every embedded product have one?
What is a breakpoint and what is the difference between a software and hardware breakpoint?
How do you decode a HardFault on a Cortex-M MCU without a debugger attached?
What is ITM/SWO tracing and how does it compare to UART logging?
Describe your approach to debugging a sporadic, non-reproducible crash in production firmware.
What is a HAL (Hardware Abstraction Layer) and why is it important?
What is the difference between polling and interrupt-driven I/O?
How would you design a firmware architecture for a multi-sensor IoT node that must run for 10 years on batteries?
What is the actor model and how can it simplify concurrent embedded firmware?
How do you ensure software reliability in a safety-critical embedded system (IEC 61508 / ISO 26262)?
What is the purpose of the volatile keyword when accessing memory-mapped registers?
Explain move semantics in C++11 and their relevance in embedded systems.
What is the difference between a hard and soft real-time system, and how does FreeRTOS fit?
What is Modbus RTU and where is it used?
How would you use a logic analyser to debug an intermittent SPI communication failure?
What is Zephyr OS and how does it differ from FreeRTOS?
Explain the Linux driver model: bus, device, and driver.
What is an NMI (Non-Maskable Interrupt) and when would you use it?
What are bit fields in C and what pitfalls should you be aware of?
What is the difference between stack and heap memory?
What is a message queue in FreeRTOS and when should you use it instead of a global variable?
How does the MQTT protocol work and what makes it suitable for IoT devices?
What is the MISRA C standard and why is it used in safety-critical firmware?