EmbeddedRelated.com
Books

Practical Microcontroller Engineering with ARM­ Technology

Bai, Ying ● 2015

This book covers both the fundamentals, as well as practical techniques in designing and building microcontrollers in industrial and commercial applications.

  • Examples included in this book have been compiled, built, and tested
  • Includes Both ARM® assembly and C codes
  • Direct Register Access (DRA) model and the Software Driver (SD) model programming techniques and discussed

If you are an instructor and adopted this book for your course, please email ieeeproposals@wiley.com to get access to the instructor files for this book.


Why Read This Book

You should read this book if you want a practical, example-driven introduction to building real-world microcontroller firmware on ARM platforms — you will learn both ARM assembly and C techniques and see working code that has been compiled and tested. The book emphasizes hands-on engineering practices, showing low-level Direct Register Access (DRA) and higher-level Software Driver (SD) models so you can choose the right trade-offs for industrial and commercial designs.

Who Will Benefit

Embedded firmware engineers and advanced students with some C/programming background who need practical, tested ARM-focused examples and guidance for building production microcontroller systems.

Level: Intermediate — Prerequisites: Basic C programming, familiarity with digital logic and microcontroller concepts (GPIO, timers, interrupts), and experience using a basic toolchain or IDE for building and flashing firmware.

Get This Book

Key Takeaways

  • Implement low-level peripheral control using Direct Register Access (DRA) on ARM microcontrollers.
  • Write and read ARM assembly and integrate it with C for performance-critical routines.
  • Design and build software drivers using the Software Driver (SD) model for maintainability and portability.
  • Debug, compile, and test embedded firmware using common toolchains and hardware debuggers.
  • Apply interrupt handling, timer, serial, and ADC/DAC peripheral programming in production-like examples.

Topics Covered

  1. Introduction to ARM microcontroller engineering and development workflows
  2. ARM architecture fundamentals and processor modes
  3. ARM assembly language essentials and integration with C
  4. C programming patterns for embedded systems on ARM
  5. Memory map, buses, and startup/boot code
  6. GPIO, timers, UART, ADC/DAC: peripheral programming with examples
  7. Serial buses: I2C, SPI and peripheral interfacing
  8. Interrupts, exceptions, and real-time event handling
  9. Direct Register Access (DRA) model: patterns and pitfalls
  10. Software Driver (SD) model: design, layering, and portability
  11. Low-power techniques and hardware-software co-design
  12. Testing, debugging, and toolchain workflows (GCC/Keil/IAR, debuggers)
  13. Bringing it together: case studies and industrial application examples
  14. Appendices: build scripts, linker scripts, and reference code

Languages, Platforms & Tools

CARM assemblyARM Cortex-M (typical microcontrollers)ARM7/ARM9 and other legacy ARM coresGeneric ARM-based microcontrollers (vendor-agnostic)Keil MDK (µVision)GNU ARM Embedded Toolchain (arm-none-eabi GCC)GDB and OpenOCDIAR Embedded WorkbenchVendor SDKs and BSPs (e.g., STM32Cube, LPCOpen)Hardware debuggers/programmers (JTAG/SWD)

How It Compares

Covers similar hands-on, processor-level topics as Joseph Yiu's ARM Cortex books but emphasizes tested, application-driven examples and the DRA vs SD programming trade-offs; more practical than the theory-heavy ARM System Developer's Guide.

Related Books