# Introduction

**DISCLAIMER**: The text on this site (gitbook) is no longer maintained. It is kept here just to keep all the existing web links alive. The source repository of this e-book can be found on [github](https://github.com/arobenko/bare_metal_cpp_src) and the updated and maintained HTML version of this book is hosted on [github pages](https://arobenko.github.io/bare_metal_cpp) now.&#x20;

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

Once in a while I encounter a question whether C++ is suitable for embedded development and bare metal development in particular. There are multiple articles of how C++ is superior to C, that everything you can do in C you can do in C++ with a lot of extras, and that it should be used even with bare metal development. However, I haven't found many practical guides or tutorials of how to use C++ superiority and boost development process compared to conventional approach of using “C” programming language. With this book I hope to explain and show examples of how to implement **soft** real time systems without prioritising interrupts and without any need for complex real time task scheduling. Hopefully it will help someone to get started with using C++ in embedded bare metal development.

This work is licensed under a [Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/). ![Image: Creative Commons License](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)
