1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# Embedded Systems Interview Questions
Embedded interviews focus on low-level programming, hardware interaction, and constraints that desktop developers rarely face.
**C fundamentals.**
- Pointers, pointer arithmetic, and arrays.
- `volatile` for memory that can change outside the program's control, such as hardware registers or variables shared with interrupts.
- `const` and its placement.
- Bit manipulation for setting, clearing, and toggling register bits.
- Fixed-width integer types and endianness.
**Interrupts.**
- Keep interrupt service routines short; defer work to the main loop or a task.
- Protect shared data with critical sections or atomic operations.
- Understand interrupt priorities and latency.
**Memory.**
- Stack versus heap; many embedded systems avoid dynamic allocation entirely to prevent fragmentation.
- Memory-mapped I/O.
- Understanding linker sections: code, initialized data, uninitialized data.
**Real-time operating systems.** Tasks, priorities, semaphores, mutexes, and priority inversion (and priority inheritance as a solution).
**Communication protocols.** UART, SPI, and I2C: their differences in wiring, speed, and addressing.
**Debugging.** Oscilloscopes, logic analyzers, debug probes, and careful logging when resources are tight.
**Power management.** Sleep modes and wake-up sources for battery-powered devices.
**Common interview task.** Write a function to reverse bits, implement a ring buffer, or debounce a button.
Practicing explanations of volatile and interrupts with [this interview prep tool](https://www.ai-interviewcopilot.com/) helps you answer these fundamentals clearly.
*Written by the AI Interview Copilot team.*
|