Bare Metal C cover

Bare Metal C

Embedded Programming for the Real World
by Stephen Oualline
June 2022, 304 pp.
Lay-flat binding

Look Inside!

Bare Metal C back coverBare Metal C pages 36-37Bare Metal C pages 92-93Bare Metal C pages 154-155

Download Chapter 1: HELLO WORLD

Bare Metal C will teach you how to program embedded devices with the C programming language. For embedded system programmers who want precise and complete control over the system they are using, this book pulls back the curtain on what the compiler is doing for you so that you can see all the details of what's happening with your program.

The first part of the book teaches C basics with the aid of a low-cost, widely available bare metal system (the Nucleo Arm evaluation system), which gives you all the tools needed to perform basic embedded programming. As you progress through the book you’ll learn how to integrate serial input/output (I/O) and interrupts into your programs. You’ll also learn what the C compiler and linker do behind the scenes, so that you’ll be better able to write more efficient programs that maximize limited memory. Finally, you’ll learn how to use more complex, memory hungry C features like dynamic memory, file I/O, and floating-point numbers.

Author Bio 

Steve Oualline wrote his first program when he was 11. It was for an embedded system. He has been programming and designing methodologies for reliable programming ever since. He has a Master of Science from USC and has written many books for both No Starch Press and O’Reilly.

Table of contents 

PART I: Embedded Programming
Chapter 1:
Hello World
Chapter 2: Introduction to the Integrated Development Environment
Chapter 3: Programming the Microcontroller
Chapter 4: Numbers and Variables
Chapter 5: Decision and Control Statements
Chapter 6: Arrays, Pointers, and Strings
Chapter 7: Local Variables and Procedures
Chapter 8: Complex Data Types
Chapter 9: Serial Output on the STM
Chapter 10: Interrupts
Chapter 11: The Linker
Chapter 12: The Preprocessor
PART II: C for Big Machines
Chapter 13:
Dynamic Memory
Chapter 14: Buffered File I/O
Chapter 15: Command Line Arguments and Raw I/O
Chapter 16: Floating-Point Numbers
Chapter 17: Modular Programming
Appendix: Project Creation Checklist

View the Copyright page
View the detailed Table of Contents
View the Index