𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Building Embedded Systems with C++: A Practical Guide to Developing Efficient and Programming for ARM Microcontrollers Reliable Embedded Systems

✍ Scribed by Roronoa Hatake


Publisher
Roronoa Hatake
Year
2023
Tongue
English
Leaves
454
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Embark on a journey to master the art of bare-metal embedded C++ programming and unleash the full potential of microcontrollers.

In this comprehensive and practical guide, you will gain a deep understanding of bare-metal programming concepts and techniques, empowering you to build efficient and low-level embedded systems using C++.

What You Will Learn

Essentials of C++ for Embedded Systems: Delve into the fundamentals of C++ programming, including data types, operators, control flow statements, functions, and pointers, tailored specifically for embedded systems development.

ARM Cortex-M Architecture: Discover the intricacies of the ARM Cortex-M architecture, the heart of many modern microcontrollers, and grasp its memory organization, instruction set, and peripheral interfaces.

System Initialization and Clock Management: Master the process of initializing and configuring the microcontroller system, including clock management techniques for accurate timing and scheduling.

Peripheral Driver Development: Learn how to write efficient and reliable peripheral drivers for essential hardware components like UART, GPIO, timers, ADC, and more, using pure C++ and register manipulation.

Interfacing with External Devices: Explore techniques for interfacing with external devices, such as I2C, SPI, and LCDs, to expand the capabilities of your embedded system.

Real-Time Operating Systems (RTOS) Integration: Understand the role of RTOS in embedded systems and how to integrate it with your bare-metal C++ applications for enhanced multitasking and resource management.

Key Features

βœ”Start with the basics of embedded systems and C++ programming
βœ”Learn how to write bare-metal embedded C++ code
βœ”Develop peripheral drivers for common peripherals such as GPIO, ADC, UART, and timers
βœ”Master the ARM architecture and how to build professional embedded firmware
βœ”Hands-on projects to apply your knowledge and gain practical experience

✦ Table of Contents


GETTING THE BEST OUT OF THIS PROJECT
CREATING A SIMPLE LED CLASS (PART I)
CREATING A SIMPLE LED CLASS (PART II)
CONFIGURING OUR UART DRIVER FOR DISPLAYING RESULTS (PART I)
CONFIGURING OUR UART DRIVER FOR DISPLAYING RESULTS (PART II)
UNDERSTANDING CLASSES AND OBJECTS
DYNAMIC ALLOCATION
VARIABLE REFERENCES
UNDERSTANDING FUNCTION TEMPLATES
USING DEFAULT ARGUMENTS
UNDERSTANDING PASS BY REFERENCE AND PASS BY VALUE
UNDERSTANDING PASS BY ADDRESS
RETURN BY ADDRESS
CLASS PROPERTY FUNCTIONS
CLASS CONSTRUCTORS
UNDERSTANDING SCOPE RESOLUTION
UNDERSTANDING THIS POINTER
DIFFERENCES BETWEEN CLASS AND STRUCT
THE FUNCTION _FRIEND
CLASS INHERITANCE
UNDERSTANDING ACCESS SPECIFIERS
CLASS POINTERS
FUNCTION OVERRIDING
VIRTUAL FUNCTIONS
POLYMORPHISM (PART I)
POLYMORPHISM (PART II)
THE CLASS _FRIEND
STATIC VARIABLES
STATIC FUNCTIONS
UNDERSTANDING NAMESPACES
CLASS DESTRUCTORS
CLASS VIRTUAL DESTRUCTORS
INTRODUCTION TO MICROCONTROLLER TEMPLATE PROGRAMMING
DEVELOPING A TEMPLATE FOR ACCESSING MICROCONTROLLER REGISTERS (VERSION 1)
DEVELOPING A TEMPLATE FOR ACCESSING MICROCONTROLLER REGISTERS (VERSION 2)
REGISTER BIT-MAPPING (PART I)
REGISTER BIT-MAPPING (PART II)
APPLYING REGISTER BIT-MAPPING TO REGISTER ACCESS CLASS TEMPLATE
OVERVIEW OF ARM CORTEX-M GENERAL PURPOSE INPUT_OUTPUT MODULE
DEVELOPING A GPIO OUTPUT DRIVER USING THE BSRR REGISTER
DEVELOPING A GPIO INPUT DRIVER
OVERVIEW OF THE UART PROTOCOL
RECEIVING DATA WITH THE UART
TWO-WAY UART COMMUNICATION
UART STD COUT RETARGETING
OVERVIEW OF THE SYSTEM TICK TIMER
OVERVIEW OF GENERAL PURPOSE TIMERS
CREATING A DELAY FUNCTION USING THE SYSTEM TICK TIMER
ANALYZING GENERAL PURPOSE TIMER REGISTERS
WRITING A DRIVER FOR A DIFFERENT TIMER MODULE
INTRODUCTION TO ANALOG TO DIGITAL CONVERSION
DEVELOPING THE ADC DRIVER
INTRODUCTION TO I2C
ANALYZING THE DS1307 REAL TIME CLOCK
CREATING I2C REGISTERS
WRITING THE I2C INITIALIZATION FUNCTION
WRITING THE I2C READ AND WRITE FUNCTIONS
TESTING OUR I2C DRIVER
INTRODUCTION TO SPI
CREATING SPI REGISTERS
WRITING A BASIC SPI DRIVER
DEVELOPING AN SPI LIBRARY (PART I)
DEVELOPING AN SPI LIBRARY (PART II)
TESTING THE SPI LIBRARY
DOWNLOAD KEIL UVISION 5
INSTALLING KEIL UVISION 5
INSTALLING PACKS
OVERVIEW OF KEIL UVISION 5


πŸ“œ SIMILAR VOLUMES


Fast and Effective Embedded Systems Desi
✍ Rob Toulson, Tim Wilmshurst πŸ“‚ Library πŸ“… 2012 πŸ› Newnes 🌐 English

This book is an introduction to embedded systems design, using the ARM mbed and C programming language as development tools.<br>The mbed provides a compact, self-contained and low-cost hardware core, and the on-line compiler requires no download or installation, being accessible wherever an internet

Fast and Effective Embedded Systems Desi
✍ Toulson, Rob;Wilmshurst, Tim πŸ“‚ Library πŸ“… 2016 πŸ› Newnes 🌐 English

<i>Fast and Effective Embedded Systems Design</i>is a fast-moving introduction to embedded systems design, applying the innovative ARM mbed and its web-based development environment. Each chapter introduces a major topic in embedded systems, and proceeds as a series of practical experiments, adoptin

Fast and Effective Embedded Systems Desi
✍ Rob Toulson, Tim Wilmshurst πŸ“‚ Library πŸ“… 2012 πŸ› Newnes 🌐 English

<p><i>Fast and Effective Embedded Systems Design</i> is a fast-moving introduction to embedded systems design, applying the innovative ARM mbed and its web-based development environment. Each chapter introduces a major topic in embedded systems, and proceeds as a series of practical experiments, ado

Fast and Effective Embedded Systems Desi
✍ Tim Wilmshurst, Rob Toulson, Tom Spink πŸ“‚ Library πŸ“… 2024 πŸ› Newnes 🌐 English

<p><span>Fast and Effective Embedded Systems Design, Third Edition</span><span> is a fast-moving introduction to embedded systems design, applying the innovative Arm mbed β€œecosystem,” including both hardware components and its web-based development environment. Minimal background knowledge is needed

MicroPython cookbook: over 110 practical
✍ Alsabbagh, Marwan πŸ“‚ Library πŸ“… 2019 πŸ› Packt Publishing, Limited 🌐 English

MicroPython is an open source implementation of Python 3 language that runs on embedded environments. With MicroPython you can write clean and simple Python code to control hardware instead of having to use complex low-level languages like C or C++. If you want to create devices that interact with p

Embedded System Design with Arm Cortex-M
✍ Cem Ünsalan et al πŸ“‚ Library πŸ“… 2022 πŸ› Springer 🌐 English

This textbook introduces basic and advanced embedded system topics through ARM Cortex M microcontrollers, covering programmable microcontroller usage starting from basic to advanced concepts using the STMicroelectronics Discovery development board. Designed for use in upper-level undergraduate and g