Chapter 2 Interaction with the book

2.1 Overall Structure

The book you are currently browsing is structured in a particular way:

logical structure of this book

Figure 2.1: logical structure of this book

The basics chapters introduce you to the fundamental concepts and terms related to a specific topic:

  • Chapter 3 introduces terms and concepts related to compiling, assembling and linking C language source code in the context of Arm.
  • Chapter 4 focuses concepts, which are common across all M-profile Arm cores (Armv6-M, Armv7-M, Armv8-M).
  • Chapter 5 introduces TrustZone-M on a high level.
  • Chapter 6 goes through a linker script to describe the general firmware layout of a secure world firmware.

The run time view chapters use the terms and concepts introduced in the basics chapters to dive deeper:

  • Chapter 7 explains how procedures and exceptions are called and how values are returned in bare-metal firmwares
  • Chapter 8 focuses to explain how secure and non-secure world interact and how secure world is initialized.

Additional chapters:

  • Chapter 9 is about embedded protocols and their analysis using a Logic Analyzer. (in progress)
  • Chapter 10 describes some basic tools you need as an embedded hacker. (in progress)

Obviously all topics are highly depended and related to each other. As a consequence some topics are explained multiple times in different chapters, but with different technical depth. For example both chapter 5 and 8 explain how functions in TrustZone- are called, however chapter 8 goes into technical details and builds upon concepts introduced in 5. To connect all chapters related to a specific topic (e.g. “secure function call”) information boxes are used across the whole book. The information box for “secure function calls” for example looks like:

More on Secure function calls:

  • Chapter 6.4: CMSIS: Non-Secure Callable segment
  • Chapter 7.2: AAPCS: Subroutine Call
  • Chapter 5.4.1: Banked Registers
  • Chapter 8.3: Details: Secure function call
  • Chapter 5.6.1: Overview: Secure function call

2.2 Information Boxes

This is a general note and is used to point out an interesting fact, which is related to the current topic.

This is the next level box! It is widely used through the book and provides links to all chapters, which are related to the topic you are currently reading.

For example, when you read about Arm Exceptions, the box will show you all chapters related to the Arm Exception System!

You can find a list of all next level boxes in chapter 12.

This is the concept box! It is located at the beginning of a chapter and shows the concepts and terms, which are newly introduced in the current chapter.

A newly introduced term is always written in bold letters.