Book description
Over the last ten years, the ARM architecture has become one of the most pervasive architectures in the world, with more than 2 billion ARM-based processors embedded in products ranging from cell phones to automotive braking systems. A world-wide community of ARM developers in semiconductor and product design companies includes software developers, system designers and hardware engineers. To date no book has directly addressed their need to develop the system and software for an ARM-based system. This text fills that gap.This book provides a comprehensive description of the operation of the ARM core from a developer’s perspective with a clear emphasis on software. It demonstrates not only how to write efficient ARM software in C and assembly but also how to optimize code. Example code throughout the book can be integrated into commercial products or used as templates to enable quick creation of productive software.
The book covers both the ARM and Thumb instruction sets, covers Intel's XScale Processors, outlines distinctions among the versions of the ARM architecture, demonstrates how to implement DSP algorithms, explains exception and interrupt handling, describes the cache technologies that surround the ARM cores as well as the most efficient memory management techniques. A final chapter looks forward to the future of the ARM architecture considering ARMv6, the latest change to the instruction set, which has been designed to improve the DSP and media processing capabilities of the architecture.
* No other book describes the ARM core from a system and software perspective.
* Author team combines extensive ARM software engineering experience with an in-depth knowledge of ARM developer needs.
* Practical, executable code is fully explained in the book and available on the publisher's Website.
* Includes a simple embedded operating system.
Table of contents
- Cover image
- Title page
- Table of Contents
- ABOUT THE AUTHORS
- Copyright
- PREFACE
- Chapter 1: ARM EMBEDDED SYSTEMS
- Chapter 2: ARM PROCESSOR FUNDAMENTALS
- Chapter 3: INTRODUCTION TO THE ARM INSTRUCTION SET
- Chapter 4: INTRODUCTION TO THE THUMB INSTRUCTION SET
-
Chapter 5: EFFICIENT C PROGRAMMING
- 5.1 OVERVIEW OF C COMPILERS AND OPTIMIZATION
- 5.2 BASIC C DATA TYPES
- 5.3 C LOOPING STRUCTURES
- 5.4 REGISTER ALLOCATION
- 5.5 FUNCTION CALLS
- 5.6 POINTER ALIASING
- 5.7 STRUCTURE ARRANGEMENT
- 5.8 BIT-FIELDS
- 5.9 UNALIGNED DATA AND ENDIANNESS
- 5.10 DIVISION
- 5.11 FLOATING POINT
- 5.12 INLINE FUNCTIONS AND INLINE ASSEMBLY
- 5.13 PORTABILITY ISSUES
- 5.14 SUMMARY
- Chapter 6: WRITING AND OPTIMIZING ARM ASSEMBLY CODE
- Chapter 7: OPTIMIZED PRIMITIVES
- Chapter 8: DIGITAL SIGNAL PROCESSING
- Chapter 9: EXCEPTION AND INTERRUPT HANDLING
- Chapter 10: FIRMWARE
- Chapter 11: EMBEDDED OPERATING SYSTEMS
- Chapter 12: CACHES
- Chapter 13: MEMORY PROTECTION UNITS
-
Chapter 14: MEMORY MANAGEMENT UNITS
- 14.1 MOVING FROM AN MPU TO AN MMU
- 14.2 HOW VIRTUAL MEMORY WORKS
- 14.3 DETAILS OF THE ARM MMU
- 14.4 PAGE TABLES
- 14.5 THE TRANSLATION LOOKASIDE BUFFER
- 14.6 DOMAINS AND MEMORY ACCESS PERMISSION
- 14.7 THE CACHES AND WRITE BUFFER
- 14.8 COPROCESSOR 15 AND MMU CONFIGURATION
- 14.9 THE FAST CONTEXT SWITCH EXTENSION
- 14.10 DEMONSTRATION: A SMALL VIRTUAL MEMORY SYSTEM
- 14.11 THE DEMONSTRATION AS MMUSLOS
- 14.12 SUMMARY
- Chapter 15: THE FUTURE OF THE ARCHITECTURE
- Appendix A: ARM AND THUMB ASSEMBLER INSTRUCTIONS
- Appendix B: ARM AND THUMB INSTRUCTION ENCODINGS
- Appendix C: PROCESSORS AND ARCHITECTURE
- Appendix D: INSTRUCTION CYCLE TIMINGS
- Appendix E: SUGGESTED READING
- INDEX
Product information
- Title: ARM System Developer's Guide
- Author(s):
- Release date: May 2004
- Publisher(s): Morgan Kaufmann
- ISBN: 9780080490496
You might also like
book
ARM Assembly Language, 2nd Edition
Delivering a solid introduction to assembly language and embedded systems, ARM Assembly Language: Fundamentals and Techniques, …
book
Making Embedded Systems, 2nd Edition
Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach …
book
Making Embedded Systems
Interested in developing embedded systems? Since they don’t tolerate inefficiency, these systems require a disciplined approach …
book
Mastering Linux Device Driver Development
Master the art of developing customized device drivers for your embedded Linux systems Key Features Stay …