ARM system developer's guide : designing and optimizing system software /
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 prod...
Saved in:
Main Author: | |
---|---|
Other Authors: | , |
Format: | Electronic eBook |
Language: | English |
Published: |
San Francisco, CA :
Elsevier/ Morgan Kaufman,
©2004.
|
Subjects: | |
Online Access: |
Full text (MFA users only) |
ISBN: | 9780080490496 0080490492 |
Local Note: | ProQuest Ebook Central |
Table of Contents:
- Table of Contents:
- 1. ARM Embedded Systems
- 1.1 The RISC Design Philosophy
- 1.2 The ARM Design Philosophy
- 1.3 Embedded System Hardware
- 1.4 Embedded System Software
- 1.5 Summary
- 2 ARM Processor Fundamentals
- 2.1 Registers
- 2.2 Current Program Status Register
- 2.3 Pipeline
- 2.4 Exceptions, Interrupts, and the Vector Table
- 2.5 Core Extensions
- 2.6 Architecture Revisions
- 2.7 ARM Processor Families
- 2.8 Summary
- 3 Introduction to the ARM Instruction Set
- 3.1 Data Processing Instructions
- 3.2 Branch Instructions
- 3.3 Load-Store Instructions
- 3.4 Software Interrupt Instruction
- 3.5 Program Status Register Instructions
- 3.6 Loading Constants
- 3.7 ARMv5E Extensions
- 3.8 Conditional Execution
- 3.9 Summary
- 4 Introduction to the Thumb Instruction Set
- 4.1 Thumb Register Usage
- 4.2 ARM-Thumb Interworking
- 4.3 Other Branch Instructions
- 4.4 Data Processing Instructions
- 4.5 Single-Register Load-Store Instructions
- 4.6 Multiple-Register Load-Store Instructions
- 4.7 Stack Instructions
- 4.8 Software Interrupt Instruction
- 4.9 Summary
- 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
- 6 Writing and Optimizing ARM Assembly Code
- 6.1 Writing Assembly Code
- 6.2 Profiling and Cycle Counting
- 6.3 Instruction Scheduling
- 6.4 Register Allocation
- 6.5 Conditional Execution
- 6.6 Looping Constructs
- 6.7 Bit Manipulation
- 6.8 Efficient Switches
- 6.9 Handling Unaligned Data
- 6.10 Summary
- 7 Optimized Primitives
- 7.1 Double-Precision Integer Multiplication
- 7.2 Integer Normalization and Count Leading Zeros
- 7.3 Division
- 7.4 Square Roots
- 7.5 Transcendental Functions: log, exp, sin, cos
- 7.6 Endian Reversal and Bit Operations
- 7.7 Saturated and Rounded Arithmetic
- 7.8 Random Number Generation
- 7.9 Summary
- 8 Digital Signal Processing
- 8.1 Representing a Digital Signal
- 8.2 Introduction to DSP on the ARM
- 8.3 FIR filters
- 8.4 IIR Filters
- 8.5 The Discrete Fourier Transform
- 8.6 Summary
- 9 Exception and Interruput Handling
- 9.1 Exception Handling
- 9.2 Interrupts
- 9.3 Interrupt Handling Schemes
- 9.4 Summary
- 10 Firmware
- 10.1 Firmware and Bootloader
- 10.2 Example: Sandstone
- 10.3 Summary
- 11 Embedded Operating Systems
- 11.1 Fundamental Components
- 11.2 Example: Simple Little Operating System
- 11.3 Summary
- 12 Caches
- 12.1 The Memory Hierarchy and Cache Memory
- 12.2 Cache Architecture
- 12.3 Cache Policy
- 12.4 Coprocessor 15 and Caches
- 12.5 Flushing and Cleaning Cache Memory
- 12.6 Cache Lockdown
- 12.7 Caches and Software Performance
- 12.8 Summary
- 13 Memory Protection Units
- 13.1 Protected Regions
- 13.2 Initializing the MPU, Caches, and Write Buffer
- 13.3 Demonstration of an MPU system
- 13.4 Summary
- 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
- 15 The Future of the Architecture
- by John Rayfield
- 15.1 Advanced DSP and SIMD Support in ARMv6
- 15.2 System and Multiprocessor Support Additions to ARMv6
- 15.3 ARMv6 Implementations
- 15.4 Future Technologies beyond ARMv6
- 15.5 Conclusions
- 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.