EmbeddedRelated.com
The 2026 Embedded Online Conference
Filtered by topic: Bare-Metal Programming [clear filter]
C++ On Embedded Systems

C++ On Embedded Systems

Matt Kline
Still RelevantIntermediate

This October, my team at work switched from C to C++ for embedded firmware development. Many of its features, including classes, automatic resource cleanup, parametric polymorphism, and additional type safety are just as useful on an RTOS or bare metal as they are on a desktop running a general-purpose OS. Using C++ lets us write safer, more expressive firmware.

C++'s automagic is a double-edged sword, however. Some language features depend on system facilities that we don't want to provide in embedded environments.* Wrangling the toolchain can also be difficult. We don't want to completely discard libgcc and libstdc++ since they provide vital facilities like memcpy, atomic operations, and hardware-specific floating-point functions, but we must avoid certain parts of them.

This guide is a short attempt to codify what we've learned while moving our firmware to C++. Hopefully it provides a solid primer.


Bare-metal programming for ARM - A hands-on guide

Bare-metal programming for ARM - A hands-on guide

Daniels Umanovskis
Still RelevantIntermediate

The subject of this ebook is bare-metal programming in C for an ARM system. Specifically, the ARMv7-A architecture is used, which is the last purely 32-bit ARM architecture, unlike the newer ARMv8/AArch64. The -A suix in ARMv7-A indicates the A profile, which is intended for more resource-intensive applications. The corresponding microcontroller architecture is ARMv7-M.


Getting Started with C Programming for  the ATMEL AVR Microcontrollers

Getting Started with C Programming for the ATMEL AVR Microcontrollers

Son Lam Phung
Still RelevantBeginner

This tutorial provides information on the tool and the basic steps for programming the Atmel AVR microcontrollers using C. It is aimed at people who are new to this family of microcontrollers. The Atmel STK500 development board and the ATmega16 chip are used in this tutorial; however, it is easy to adopt the information given here for other AVR chips.


PIC Microcontrollers - Programming in C

PIC Microcontrollers - Programming in C

Milan Verle
Still RelevantBeginner

If you haven’t done it so far then it’s high time to learn what the microcontrollers are and how they operate. Numerous illustrations and practical examples along with detailed description of the PIC16F887 will make you enjoy your work with the PIC microcontrollers


Microcontroller Programming and Interfacing

Microcontroller Programming and Interfacing

David G. Alciatore, Michael B. Histand
Still RelevantIntermediate

Chapter 7 of the book: Introduction to Mechatronics and Measurement Systems


Introduction to Microcontrollers

Introduction to Microcontrollers

Gunther Gridling, Bettina Weiss
Still RelevantBeginner

This text has been developed for the introductory courses on microcontrollers taught by the Institute of Computer Engineering at the Vienna University of Technology. It introduces undergraduate students to the field of microcontrollers – what they are, how they work, how they interface with their I/O components, and what considerations the programmer has to observe in hardware-based and embedded programming. This text is not intended to teach one particular controller architecture in depth, but should rather give an impression of the many possible architectures and solutions one can come across in today’s microcontrollers. We concentrate, however, on small 8-bit controllers and their most basic features, since they already offer enough variety to achieve our goals.


First Steps  with Embedded Systems

First Steps with Embedded Systems

Byte Craft Limited
Still RelevantIntermediate

This book is intended to fill the need for an intermediate level overview of programming microcontrollers using the C programming language. It is aimed specifically at two groups of readers who have different, yet overlapping needs. The first group are familiar with C but require an examination of the general nature of microcontrollers: what they are, how they behave and how best to use the C language to program them. The second group are familiar with microcontrollers but are new to the C programming language and wish to use C for microcontroller development projects. First Steps with Embedded Systems will be useful both as an introduction to microcontroller programming for intermediate level post-secondary programs and as a guide for developers coping with the growth and change of the microcontroller industry.


An Engineer's Guide to the LPC2100 Series

An Engineer's Guide to the LPC2100 Series

Trevor Martin
HistoricalIntermediate

This book is intended as a hands-on guide for anyone planning to use the Philips LPC2000 family of microcontrollers in a new design. It is laid out both as a reference book and as a tutorial. It is assumed that you have some experience in programming microcontrollers for embedded systems and are familiar with the C language. The bulk of technical information is spread over the first four chapters, which should be read in order if you are completely new to the LPC2000 and the ARM7 CPU.


Choosing An Ultralow-Power MCU

Choosing An Ultralow-Power MCU

Mike Mitchell
Still RelevantIntermediate

This application report describes how to compare ultralow-power MCUs. It discusses the key differences between popular low-power MCUs and how to interpret features and specifications and apply them to application requirements


Interrupts, Low Power Modes and Timer A

Interrupts, Low Power Modes and Timer A

Erik Cheever
Still RelevantIntermediate

This document contains a lot of what you need to know to get the most out of the MSP430. The MSP430 line is renowned for it's low power usage, and to really utilize it well you have to architect your software to be an interrupt driven device that utilizes the low power modes.


The 2026 Embedded Online Conference