One of the key benefits of the C language, which is the reason it is so popular for embedded applications, is that it is a high-level, structured programming language, but has low-level capabilities.
Hardware abstraction layers (HALs) are an important layer to every embedded software application. A HAL allows a developer to abstract or decouple the hardware details from the application code.
Originally published in the November 1988 Embedded Systems Programming magazine. Correction is the final step of any debugging exercise. Sometimes bug eradication is straightforward; sometimes a bug ...