EmbeddedRelated.com
Books

Learning Computer Architecture with Raspberry Pi

Upton, Eben, Duntemann, Jeff 2016

Use your Raspberry Pi to get smart about computing fundamentals

In the 1980s, the tech revolution was kickstarted by a flood of relatively inexpensive, highly programmable computers like the Commodore. Now, a second revolution in computing is beginning with the Raspberry Pi. Learning Computer Architecture with the Raspberry Pi is the premier guide to understanding the components of the most exciting tech product available. Thanks to this book, every Raspberry Pi owner can understand how the computer works and how to access all of its hardware and software capabilities.

Now, students, hackers, and casual users alike can discover how computers work with Learning Computer Architecture with the Raspberry Pi. This book explains what each and every hardware component does, how they relate to one another, and how they correspond to the components of other computing systems. You'll also learn how programming works and how the operating system relates to the Raspberry Pi's physical components.

  • Co-authored by Eben Upton, one of the creators of the Raspberry Pi, this is a companion volume to the Raspberry Pi User Guide
  • An affordable solution for learning about computer system design considerations and experimenting with low-level programming
  • Understandable descriptions of the functions of memory storage, Ethernet, cameras, processors, and more
  • Gain knowledge of computer design and operation in general by exploring the basic structure of the Raspberry Pi

The Raspberry Pi was created to bring forth a new generation of computer scientists, developers, and architects who understand the inner workings of the computers that have become essential to our daily lives. Learning Computer Architecture with the Raspberry Pi is your gateway to the world of computer system design.


Why Read This Book

You will get a hands-on, hardware-rooted tour of how modern computers work using the Raspberry Pi as a tangible, affordable platform. The book pairs practical experiments and code with clear explanations of CPU, memory, I/O, boot and OS concepts so you can see theory play out on real silicon.

Who Will Benefit

Students, makers, and embedded/IoT engineers with some programming experience who want a practical, architecture-focused grounding in ARM-based SoCs and the hardware–software interface.

Level: Intermediate — Prerequisites: Basic programming experience (Python or C) and familiarity with the Linux command line; curiosity about hardware is helpful but detailed electronics knowledge is not required.

Get This Book

Key Takeaways

  • Explain the components of an ARM-based SoC and how CPU, memory, GPU and peripherals interact
  • Trace the Raspberry Pi boot process and understand how firmware, bootloader and Linux kernel hand off control
  • Write and run low-level code (including simple bare-metal examples) to interact with GPIO, I2C, SPI and UART
  • Measure and reason about performance using caches, memory hierarchy and profiling techniques
  • Diagnose common hardware–software integration issues and design dependable firmware for embedded tasks

Topics Covered

  1. Introduction: Why learn architecture with the Raspberry Pi
  2. The Raspberry Pi platform and ecosystem
  3. Binary data, number systems, and simple logic
  4. CPU fundamentals: instruction sets, pipelines, and ARM basics
  5. Memory systems: caches, virtual memory, and I/O addressing
  6. System on Chip (SoC) internals: timers, DMA, and peripherals
  7. Boot sequence: firmware, bootloader, and bringing up Linux
  8. Linux and the kernel: drivers, device tree, and user/kernel boundary
  9. Bare-metal programming: early examples and toolchain setup
  10. Peripherals and interfacing: GPIO, I2C, SPI, UART, and ADC/DAC patterns
  11. Interrupts, concurrency, and simple RTOS concepts
  12. Performance measurement and optimization
  13. Security and reliability considerations in embedded systems
  14. Project examples: from low-level demos to simple IoT applications
  15. Appendices: tools, further reading, and reference materials

Languages, Platforms & Tools

PythonCARM assemblyShell scriptingRaspberry Pi (Model B and later)ARM-based SoCs (Broadcom BCM series, ARMv6/ARMv7/ARMv8)Raspbian / Raspberry Pi OSGCC toolchain (arm-none-eabi / gcc)MakeGDBwiringPi / pigpio / libgpiodLinux kernel build toolsperf / simple profilers

How It Compares

More architecture- and low-level-focused than Derek Molloy's 'Exploring Raspberry Pi' (which emphasizes interfacing and projects), and more hands-on and Pi-specific than theory-heavy texts like Patterson & Hennessy's 'Computer Organization and Design.'

Related Books

Bryant, Randal, O'Hallaron,...