Explore various constraints and challenges that embedded developers
encounter in their daily tasks and learn how to build effective programs
using the latest standards of C++
Key Features
- Get hands-on experience in developing a sample application for an
embedded Linux-based system
- Explore advanced topics such as concurrency, real-time operating
system (RTOS), and C++ utilities
- Learn how to test and debug your embedded applications using logs and
profiling tools
Book Description
Developing applications for embedded systems may seem like a daunting
task as developers face challenges related to limited memory, high power
consumption, and maintaining real-time responses. This book is a
collection of practical examples to explain how to develop applications
for embedded boards and overcome the challenges that you may encounter
while developing.
The book will start with an introduction to embedded systems and how to
set up the development environment. By teaching you to build your first
embedded application, the book will help you progress from the basics to
more complex concepts, such as debugging, logging, and profiling. Moving
ahead, you will learn how to use specialized memory and custom
allocators. From here, you will delve into recipes that will teach you
how to work with the C++ memory model, atomic variables, and
synchronization. The book will then take you through recipes on
inter-process communication, data serialization, and timers. Finally,
you will cover topics such as error handling and guidelines for
real-time systems and safety-critical systems.
By the end of this book, you will have become proficient in building
robust and secure embedded applications with C++.
What you will learn
- Get to grips with the fundamentals of an embedded system
- Understand how to optimize code for the targeted hardware platforms
- Explore cross-compilation, build types, and remote debugging
- Discover the importance of logging for debugging and root cause
analysis of failures
- Uncover concepts such as interrupt service routine, memory model, and
ring buffer
- Recognize the need for custom memory management in embedded systems
- Delve into static code analyzers and tools to improve code quality
Who this book is for
This book is for developers, electronic hardware professionals, and
software and system-on-chip engineers who want to build effective
embedded programs in C++. Familiarity with the C++ programming language
is expected, but no previous knowledge of embedded systems is required.