Embedded C under interview pressure
Practice explaining Embedded C decisions in terms of compiler behavior, hardware registers and firmware architecture.
Q1. Why is volatile needed for a hardware register?
Q2. Does volatile make a variable thread-safe or atomic?
Q3. What does const volatile mean?
Q4. What is memory-mapped I/O?
Q5. Why are read-modify-write operations dangerous for some registers?
Q6. static vs extern?
Q7. What does startup code do before main()?
Q8. What is the role of a linker script?
Q9. What is MISRA and why is it used in automotive software?
Q10. How would you structure a reusable GPIO driver?
KEY TAKEAWAY
The strongest answers explain not only what a keyword does, but why the embedded system needs it.