Bare Metal Programming is a low level method of programming where the software is interfaced directly to the chip, without resorting to an Operating System.

It is by essence faster, whilst still allowing for testing. This is achieved through a Hardware Abstraction Layer, which also means that the software can be kept reasonably portable. A deep understanding of the MCU’s inner workings and the underlying electronics is essential. At Bluefruit, we consider ourselves as bare metal programming experts.

Bare metal programming is especially appropriate for small 8-bit MCUs, up to the more powerful PIC32/Cortex M4 based MCUs.

However, as complexity grows, it may become necessary to resort to an operating system to make the best use of the processor capabilities. For example, we would recommend using a full-fledged operating system such as Linux if you intend to use a powerful embedded microprocessor such as the Cortex-A series.