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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Roronoa Hatake
Publisher: Roronoa Hatake
Year: 2023

Language: English
Pages: 454

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