Explain the difference between `volatile`, `const`, and `static` keywords in C, and describe a scenario where `volatile` is mandatory in embedded firmware.

Technical