You are previewing Professional Embedded ARM Development.
O'Reilly logo
Professional Embedded ARM Development

Book Description

A practical Wrox guide to ARM programming for mobile devices

With more than 90 percent of mobile phones sold in recent years using ARM-based processors, developers are eager to master this embedded technology. If you know the basics of C programming, this guide will ease you into the world of embedded ARM technology. With clear explanations of the systems common to all ARM processors and step-by-step instructions for creating an embedded application, it prepares you for this popular specialty.

While ARM technology is not new, existing books on the topic predate the current explosive growth of mobile devices using ARM and don't cover these all-important aspects. Newcomers to embedded technology will find this guide approachable and easy to understand.

  • Covers the tools required, assembly and debugging techniques, C optimizations, and more

  • Lists the tools needed for various types of projects and explores the details of the assembly language

  • Examines the optimizations that can be made to ensure fast code

  • Provides step-by-step instructions for a basic application and shows how to build upon it

  • Professional Embedded ARM Development prepares you to enter this exciting and in-demand programming field.

    Table of Contents

    1. Cover
    2. Contents
    3. Part I: ARM Systems and Development
      1. Chapter 1: The History of ARM
        1. The Origin of ARM
        2. ARM Naming Conventions
        3. Manufacturer Documentation
        4. What Is ARM Doing Today?
        5. Summary
      2. Chapter 2: ARM Embedded Systems
        1. ARM Embedded Systems Defined
        2. Choosing the Right Processor
        3. What Should You Start With?
        4. Summary
      3. Chapter 3: ARM Architecture
        1. Understanding the Basics
        2. Getting to Know the Different ARM Subsystems
        3. Understanding the Different Concepts
        4. Presenting Different Technologies
        5. Summary
      4. Chapter 4: ARM Assembly Language
        1. Introduction to Assembly Language
        2. Talking to a Computer
        3. Why Learn Assembly?
        4. Uses of Assembly
        5. ARM Assembly Language
        6. ARM Assembly Primer
        7. Summary
      5. Chapter 5: First Steps
        1. Hello World!
        2. Taking the World Apart
        3. Hello World, for Real This Time!
        4. Software Implementation
        5. Memory Mapping
        6. Real World Examples
        7. Case Study: U-Boot
        8. Machine Study: Raspberry Pi
        9. Summary
      6. Chapter 6: Thumb Instruction Set
        1. Thumb
        2. Thumb-2 Technology
        3. How Thumb Is Executed
        4. Advantages of Using Thumb
        5. Cores Using Thumb
        6. ARM-Thumb Interworking
        7. Introduction to Thumb-1
        8. Introduction to Thumb-2
        9. Writing for Thumb
        10. Summary
      7. Chapter 7: Assembly Instructions
        1. Movement
        2. Arithmetic
        3. Saturating Arithmetic
        4. Data Transfer
        5. Logical
        6. Compare
        7. Branch
        8. Multiply
        9. Divide
        10. Multiple Register Data Transfer
        11. Barrel Shifter
        12. Stack Operations
        13. Coprocessor Instructions
        14. Miscellaneous Instructions
        15. Summary
      8. Chapter 8: NEON
        1. What Are the Advantages to NEON?
        2. What Data Types Does NEON Support?
        3. Using NEON in Assembly
        4. Using NEON in C
        5. Summary
      9. Chapter 9: Debugging
        1. What Is a Debugger?
        2. Types of Debugging
        3. Debuggers
        4. Example Debugging
        5. In-Depth Analysis
        6. Summary
      10. Chapter 10: Writing Optimized C
        1. Rules for Optimized Code
        2. Profiling
        3. C Optimizations
        4. Assembly Optimizations
        5. Hardware Configuration Optimizations
        6. Summary
    4. Part II: Reference
      1. Appendix A: Terminology
      2. Appendix B: ARM Architecture Versions
      3. Appendix C: ARM Core Versions
      4. Appendix D: NEON Intrinsics and Instructions
      5. Appendix E: Assembly Instructions
    5. Introduction