Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright and Credits
Embedded Programming with Modern C++ Cookbook
Dedication About Packt
Why subscribe?
Contributors
About the author About the reviewer Packt is searching for authors like you
Preface
Who this book is for What this book covers To get the most out of this book
Download the example code files Download the color images Conventions used
Sections
Getting ready How to do it… How it works… There's more… See also
Get in touch
Reviews
Fundamentals of Embedded Systems
Exploring embedded systems
How are they different from desktop or web applications? Types of embedded systems Microcontrollers System on Chip Application-specific integrated circuits Field programmable gate arrays
Working with limited resources Looking at performance implications Working with different architectures
Endianness Alignment Fixed-width integer types
Working with hardware errors
Early versions of hardware Hardware is unreliable The influence of environmental conditions
Using C++ for embedded development
You don't pay for what you don't use Object-oriented programming to time the code complexity Resource acquisition is initialization Exceptions The powerful standard library Threads and a memory model as part of the language specification
Deploying software remotely Running software remotely Logging and diagnostics Summary
Setting Up the Environment
Setting up the build system in a Docker container
How to do it... How it works... There's more...
Working with emulators
How to do it... How it works... There's more...
Cross-compilation
Getting ready How to do it... How it works... There's more...
Connecting to the embedded system
Getting ready How to do it... How it works... There's more...
Debugging embedded applications
Getting ready How to do it... How it works... There's more...
Using gdbserver for remote debugging
Getting ready How to do it... How it works... There's more...
Using CMake as a build system
Getting ready How to do it... How it works... There's more...
Working with Different Architectures
Exploring fixed-width integer types
How to do it... How it works... There's more...
Working with the size_t type
How to do it... How it works... There's more...
Detecting the endianness of the platform
How to do it... How it works... There's more...
Converting the endianness
How to do it... How it works...
Working with data alignment
How to do it... How it works... There's more... 
Working with packed structures
How to do it... How it works... There's more...
Aligning data with cache lines
How to do it... How it works... There's more...
Handling Interrupts
Data polling Interrupt service routines General considerations for ISRs 8051 microcontroller interrupts Implementing an interrupt service routine
How to do it... How it works...
Generating a 5 kHz square signal using 8-bit auto-reload mode
How to do it... How it works...
Using Timer 1 as an event counter to count a 1 Hz pulse
How to do it... How it works... There's more...
Receiving and transmitting data serially
How to do it... How it works... There's more...
Debugging, Logging, and Profiling
Technical requirements Running your applications in the GDB
How to do it... How it works... There's more...
Working with breakpoints
How to do it... How it works... There's more...
Working with core dumps
How to do it... How it works... There's more...
Using gdbserver for debugging
Getting ready... How to do it... How it works...
Adding debug logging
How to do it... How it works... There's more...
Working with debug and release builds
How to do it... How it works... There's more...
Memory Management
Using dynamic memory allocation
How to do it... How it works...
Exploring object pools
How to do it... How it works... There's more...
Using ring buffers
How to do it... How it works...
Using shared memory
How to do it... How it works... There's more...
Using specialized memory
How to do it... How it works... There's more...
Multithreading and Synchronization
Exploring thread support in C++
How to do it... How it works...
Exploring data synchronization
How to do it... How it works... There's more...
Using condition variables
How to do it... How it works... There's more...
Using atomic variables
How to do it... How it works... There's more...
Using the C++ memory model
How to do it... How it works... There's more...
Exploring lock-free synchronization
How to do it... How it works... There's more...
Using atomic variables in shared memory
How to do it... How it works...
Exploring async functions and futures
How to do it... How it works... There's more...
Communication and Serialization
Using inter-process communication in applications
How to do it... How it works... There's more...
Exploring the mechanisms of inter-process communication
Getting ready How to do it... How it works... There's more...
Learning about message queue and publisher-subscriber models
How to do it... How it works... There's more...
Using C++ lambdas for callbacks
How to do it... How it works... There's more...
Exploring data serialization
How to do it... How it works... There's more...
Using the FlatBuffers library
How to do it... How it works... There's more...
Peripherals
Controlling devices connected via GPIO
How to do it... How it works...
Exploring pulse-width modulation
How to do it... How it works... There's more...
Using ioctl to access a real-time clock in Linux
How to do it... How it works... There's more
Using libgpiod to control GPIO pins
How to do it... How it works... There's more...
Controlling I2C peripheral devices
How to do it... How it works... There's more...
Reducing Power Consumption
Technical requirements Exploring power-saving modes in Linux
How to do it... How it works... There's more...
Waking up using RTC
How to do it... How it works... There's more...
Controlling the autosuspend of USB devices
How to do it... How it works... There's more...
Configuring CPU frequency
How to do it... How it works... There's more...
Using events for waiting
How to do it... How it works... There's more...
Profiling power consumption with PowerTOP
How to do it... How it works... There's more...
Time Points and Intervals
Exploring the C++ Chrono library
How to do it... How it works... There's more...
Measuring time intervals
How to do it... How it works... There's more...
Working with delays
How to do it... How it works... There's more...
Using the monotonic clock
How to do it... How it works... There's more...
Using POSIX timestamps
How to do it... How it works... There's more...
Error Handling and Fault Tolerance
Working with error codes
How to do it... How it works... There's more...
Using exceptions for error handling
How to do it... How it works... There's more...
Using constant references when catching exceptions
How to do it... How it works... There's more...
Tackling static objects
How to do it... How it works...
Working with watchdogs
How to do it... How it works...
Exploring heartbeats for highly available systems
How to do it... How it works... There's more...
Implementing software debouncing logic
How to do it... How it works...
Guidelines for Real-Time Systems
Using real-time schedulers in Linux
How to do it... How it works...
Using statically allocated memory
How to do it... How it works... There's more...
Avoiding exceptions for error handling
How to do it... How it works... There's more...
Exploring real-time operating systems
How to do it... How it works... There's more...
Guidelines for Safety-Critical Systems
Using the return values of all functions
How to do it... How it works... There's more...
Using static code analyzers
How to do it... How it works... There's more...
Using preconditions and postconditions
How to do it... How it works... There's more...
Exploring the formal validation of code correctness
How to do it... How it works... There's more...
Microcontroller Programming
Setting up the development environment
How to do it... How it works... There's more...
Compiling and uploading a program
How to do it... How it works... There's more...
Debugging microcontroller code
How to do it... How it works...
Other Books You May Enjoy
Leave a review - let other readers know what you think
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion