Contents

Part I: ARM Systems and Development

Chapter 1: The History of ARM

The Origin of ARM

ARM Naming Conventions

Manufacturer Documentation

What Is ARM Doing Today?

Summary

Chapter 2: ARM Embedded Systems

ARM Embedded Systems Defined

Choosing the Right Processor

What Should You Start With?

Summary

Chapter 3: ARM Architecture

Understanding the Basics

Getting to Know the Different ARM Subsystems

Understanding the Different Concepts

Presenting Different Technologies

Summary

Chapter 4: ARM Assembly Language

Introduction to Assembly Language

Talking to a Computer

Why Learn Assembly?

Uses of Assembly

ARM Assembly Language

ARM Assembly Primer

Summary

Chapter 5: First Steps

Hello World!

Taking the World Apart

Hello World, for Real This Time!

Software Implementation

Memory Mapping

Real World Examples

Case Study: U-Boot

Machine Study: Raspberry Pi

Summary

Chapter 6: Thumb Instruction Set

Thumb

Thumb-2 Technology

How Thumb Is Executed

Advantages of Using Thumb

Cores Using Thumb

ARM-Thumb Interworking

Introduction to Thumb-1

Introduction to Thumb-2

Writing for Thumb

Summary

Chapter 7: Assembly Instructions

Movement

Arithmetic

Saturating Arithmetic

Data Transfer

Logical

Compare

Branch

Multiply

Divide

Multiple Register Data Transfer

Barrel Shifter

Stack Operations

Coprocessor Instructions

Miscellaneous Instructions

Summary

Chapter 8: NEON

What Are the Advantages to NEON?

What Data Types Does NEON Support?

Using NEON in Assembly

Using NEON in C

Summary

Chapter 9: Debugging

What Is a Debugger? ...

Get Professional Embedded ARM Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.