Practical Guide to Bare Metal C++


Practical Guide to Bare Metal C++
Practical Guide to Bare Metal C++
CC BY-NC-ND

Book Details

Author Alex Robenko
Published 2021
Edition 1st
Paperback 177 pages
Language English
License Creative Commons Attribution-NonCommercial-NoDerivatives

Book Description

The primary intended audience of this open book is professional C++ developers who want to understand bare metal development a little bit better, get to know how to use their favourite programming language in an embedded environment, and probably bring their C++ skills to an "expert" level. The author asks "Why professional?" and explains that it is because the bare metal platform has lots of limitations. In most cases no exceptions and no runtime type information (RTTI) support will be available. In many cases the dynamic memory allocation will also be excluded. The author states that in order to be able to use C++ effectively the reader will have to have deep knowledge of existing C++ idioms, constructs and STL contents. The reader must know how their favourite data structures are implemented and whether it is possible to reuse them in their environment. The author notes that if it is not possible to use the STL (or any other library) code "as is", the reader will have to implement a reduced version of it, and it is better to know how the library developers implemented the feature and how to make it work with the constrains of their environment.

The author indicates that professional embedded developers with intermediate knowledge of C++ may also find this document useful. They will probably benefit from lots of C++ insights and will have several "eureka" moments with "I didn't know I could do that!!!" kind of thoughts.

The author states that if the reader's C++ knowledge doesn't go much beyond polymorphism and virtual functions, and if template meta-programming doesn't mean anything to them, they are probably not ready to use C++ in the embedded environment and this document will probably be too complex to understand.

The author would like to emphasise the fact that this is NOT a C++ tutorial. The reader is reminded that there are lots of resources on the web that teach conventional C++ with OS services, exceptions and RTTI. The author's personal opinion is that one has to master C++ in a regular environment before using it effectively in the bare metal world.


This book is available under a Creative Commons Attribution-NonCommercial-NoDerivatives license (CC BY-NC-ND), which means that you are free to copy and distribute it, as long as you attribute the source, don't use it commercially, and don't create modified versions.

If you enjoyed the book and would like to support the author, you can purchase a printed copy (hardcover or paperback) from official retailers.

Download and Read Links

PDF

Share this Book

[localhost]# find . -name "*Similar_Books*"


A Practical Guide to TPM 2.0

Security

A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security is a straight-forward primer for developers. It shows security and TPM concepts, demonstrating their use in real applications that the reader can try out. Simply put, this book is designed to empower and excite the programming community to go out and do cool

Operating Systems: From 0 to 1

C / C++

This book helps you gain the foundational knowledge required to write an operating system from scratch. Hence the title, 0 to 1. After completing this book, at the very least you will learn: - How to write an operating system from scratch by reading hardware datasheets. In the real world, it works like that. You won't be able to consult Google for

Beej's Guide to Network Programming

C / C++

This practical guide offers a clear introduction to network programming using Internet sockets, commonly referred to as 'sockets programming.' While the sockets API originated in Berkeley, it has since been adapted across various platforms, including Unix, Linux, and Windows. Though the API can be overwhelming at first, this book simplifies the lea

Building Modern Web Applications With Spring Boot and Vaadin

Java Spring

This guide is a practical introduction to web application development with Spring Boot and Vaadin. It covers the entire development process, from setup to deployment, following a step-by-step approach. You can replicate each section at your own pace as you follow along. The content is suitable for anyone familiar with Java who wants to build a web

Making Servers Work

Linux

This book highlights practical sysadmin skills, common architectures that you'll encounter, and best practices that apply to automating and running systems at any scale, from one laptop or server to 1,000 or more. It is intended to help orient you within the discipline, and hopefully encourages you to learn more about system administration.

Blazor, A Beginners Guide

Blazor C#

Blazor, A Beginners Guide is intended for developers with some .NET experience. If you're coming from a non-.NET development background, you may learn some .NET basics along the way, but supplemental material around C# and .NET would be of great help to you. The book begins with the author's own perspective on WebAssembly, why it's important to hav