EmbeddedRelated.com
Books

Introduction to Embedded Systems

Valvano, Jonathan W 2016

This book is a subset of Embedded Systems: Introduction to ARM Cortex-M Microcontrollers, Volume 1, ISBN: 978-1477508992, configured for specific use in EE319K Introduction to Embedded Systems taught at the University of Texas at Austin. The section numbers in this book also specify the corresponding section in the original book. This first book is an introduction to computers and interfacing focusing on assembly language and C programming. The second book Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontrollers focuses on hardware/software interfacing and the design of embedded systems. The third book Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers is an advanced book focusing on operating systems, high-speed interfacing, control systems, and robotics. The third volume could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. There is a web site accompanying this book http://users.ece.utexas.edu/~valvano/arm. Posted here are ARM Keil uVision and Texas Instruments Code Composer Studio projects for each of the example programs in the book.


Why Read This Book

You should read this book if you want a concise, course-ready introduction to low-level embedded programming on ARM Cortex‑M microcontrollers — written around classroom labs and practical examples. You will learn how processors execute code, how to write and debug ARM assembly and embedded C, and how to interface software to real hardware through interrupts, timers, and serial buses.

Who Will Benefit

Undergraduate students and early-career embedded engineers (or hobbyists) who need a hands-on, lab-oriented introduction to ARM Cortex‑M microcontrollers, assembly/C firmware, and basic hardware/software interfacing.

Level: Beginner — Prerequisites: Basic programming experience (preferably some C) and a fundamental understanding of electricity and digital logic (Ohm's law, logic gates). College-level calculus is not required.

Get This Book

Key Takeaways

  • Write and debug ARM Cortex‑M assembly and embedded C for real microcontrollers
  • Understand CPU data representation, memory layout, and how machine instructions map to C code
  • Implement and manage interrupts, timers, and low-level I/O for responsive firmware
  • Interface common peripherals (GPIO, UART, SPI, I2C, ADC) with practical example code
  • Use standard embedded development tools (toolchains, debuggers, hardware debuggers) to build and troubleshoot systems

Topics Covered

  1. 1. Introduction to Embedded Systems and Microcontrollers
  2. 2. Data Representation and Machine-Level Programming
  3. 3. ARM Cortex‑M Architecture Overview
  4. 4. ARM Assembly Language Fundamentals
  5. 5. Embedded C Programming Basics
  6. 6. Memory, Linking, and Startup for Microcontrollers
  7. 7. Interrupts, Exceptions, and Nested Interrupt Handling
  8. 8. Timers, PWM, and Real-Time I/O
  9. 9. Digital I/O and Peripheral Interfacing (GPIO)
  10. 10. Serial Communications: UART, SPI, I2C
  11. 11. Analog Interfacing: ADC and Basic Signal Conditioning
  12. 12. Debugging, Toolchains, and Development Workflows
  13. 13. Laboratory Projects and Example Applications

Languages, Platforms & Tools

CARM assemblyARM Cortex‑M family (M0/M3/M4) — generic examplesTI LaunchPad / Stellaris / Tiva style eval boards (used in course examples)Keil MDK / uVisionGCC ARM Embedded toolchainGDB and hardware debuggers (SWD/JTAG)Logic analyzer / oscilloscope (for hardware debug)

How It Compares

This book is a compact, lab-focused subset of Valvano's full 'Embedded Systems: Introduction to ARM Cortex‑M Microcontrollers' and is more hands-on and course-tailored than architecture-focused titles like Joseph Yiu's 'The Definitive Guide to ARM Cortex‑M3 and M4 Processors'.

Related Books

Bryant, Randal, O'Hallaron,...