Improve volatile Usage with volatile_load() and volatile_store()

A C++ proposal for deprecating the volatile keyword has surfaced. This may surprise our readers, because as Michael Caisse said, "volatile is the embedded keyword." The original intent of the volatile keyword in C89 is to suppress read/write optimizations: No cacheing through this lvalue: each operation in the abstract semantics must be performed (that is, …

Musings on Tight Coupling Between Firmware and Hardware

Embedded software is often tightly coupled to the underlying hardware and RTOS. There is a real cost associated with this tight coupling, especially in today's increasingly agile world with its increasingly volatile electronics market: teams cannot rapidly respond to changes. Instead, changes tend to trigger large-scale rewrites or contribute to the degradation of the code …