The thread
Bare Metal or RTOS, NORDIC brings the Receipts. (saving Nrf54 Xiao) of @PJ_Glasso has shown the view of Nordic engineers: Bare Metal is just anything (including Soft Devices) without an OS (or RTOS). But that is (was) not my view.
For me, Bare Metal Programming is the direct access to the registers of the MCU. When I was young, I programmed a lot in Assembler (6502/Z80/8051, even on a PC with 80286) and that was bare metal from 2 aspects, one accessing the specific registers and another with using a specific language.
Today, with the RISC structure of modern MCUs (mostly ARM or RISC V), there is only the aspect of addressing memory mapped registers. The optimizing C/C++ compilers create a machine language which cannot be improved, unless there are special machine commands which replace many C code lines (I remember a repetition command with the 286 doing a whole memory copy with one assembler line). So from this view to the language, all MCUs are compatible today.
We also can find Bare Metal Servers and the explanation ist, that this are simply physical existing computers and not virtual resources in a cloud. If I take this definition, Bare Metal Programming is my physical access to the MCU. If we assume the RTOS being a shell around the hardware which is hindering my direct access to the MCU, the Nordic definition is just that. But what about using libraries (soft devices) or interrupt based drivers? Is it Bare Metal Programming when using libraries and drivers?
Ok, if that is the fact, I will have to find another wording for my kind of programming. May be it is Register Access Programming or Direct MCU Access Programming. And just this kind of programming is what I like most. My basic literature is the datasheet (product description) of the MCU and from that view I select the good and the better MCUs. In that environment, only your fantasy is the limit.


