NB TechKnowledgy Ltd.
Bare Metal software
What is "Bare Metal" ?
This is basically a processor controlled system where the code running on it is not under the supervision of an operating system. To put it another way, the code is compiled and loaded onto a fixed memory device, and runs directly from it. In comparison, non "Bare Metal" codes runs under an operating system which may be acquired as a whole, and tailored to the device running it.
Most "bare metal" code takes advantage of code libraries, but these are compiled in, and not 'loaded' at run time. "Bare Metal" provides the most efficient use of the processor and it's resources, at the expense of convenience during development. A well written bare metal implementation is fast and efficient, both in terms of speed, and use of code and data space.
An example, originally targetted at the education and home hobbyist is the range of Arduino boards currently available. The original board, called the Uno, used an Atmel Atmega328P microcontroller.
This device is completely self contained, with on board Flash, eeprom and RAM, along with many ports providing things like UART, SPI, and I2C interfaces. See definitions below.
So -- what do we do with this type of processor ?
NB TechKnowledgy Ltd. have produced both a 'C' and a 'C++' set of libraries that can be run on this platform, along with other boards utilising this processor.
What about multi-threading or multi-tasking ?
Well, we have a C++ object and a C library that allows us to use a timer to perform callbacks using the timer and it's interrupt. This provides a pseudo multi-tasking facility, without the overhead of a full operating system.
Well, that's all well and good, but what about realtime processing ?
We have libraries that allow interrupt driven communications on the SPI, I2C and UART interfaces.
The above is just scratching the surface of what we can do with a small embedded system.
Definitions :-
The libraries mentioned above will be available from our download links soon. If you cant wait, they can also be found on Bitbucket
While these libraries are open source, they are subject to the GPL license and should NOT be used commercially other than for evaluation purposes.
If you wish to use them commercially, please contact us for a licensing agreement.

By accessing or using this site, you agree to be bound by the terms and conditions set forth in the terms herein.

Privacy Policy