+612 9045 4394
 
CHECKOUT
ARM System Developer's Guide : Designing and Optimizing System Software - Sloss

ARM System Developer's Guide

Designing and Optimizing System Software

By: Sloss

Hardcover

Published: 10th May 2004
Ships: 15 business days
15 business days
$143.25
or 4 easy payments of $35.81 with Learn more
if ordered within

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.

"The ARM architecture has enabled a rich set of new applications on increasingly powerful wireless platforms. Media-rich applications such as 3D games, camera and videophones, location-based services and connected portable music and video devices are enabled by next generation CDMA phones executing on the ARM architecture.

Developing embedded software for these platforms requires a knowledge of the underlying architecture, and programming practices which balance power, cost and performance efficient. Sloss provides a comprehensive and practical guide to the development of "hardware aware" software which meets the demanding constraints of these applications. Highlighted with practical examples, and enhanced by a thorough treatment of topics such as ISRs, code optimization, and DSP on ARM, this book is essential for every embedded software and hardware engineer alike."

-J. Scott Runner, Senior Staff Engineer/Manager, Qualcomm CMDA Technologies, Qualcomm Inc.

"This book has a place on the desk of every engineer developing software for the ARM processor; it is a thorough introduction for newcomers, and a useful reference for the ARM expert.

The technical information in this book is aimed squarely at the software developer, you'll find advice on bringing a device up from a bare board, reference information describing the characteristics of all current ARM architectures, and many valuable tips for optimizing code running on ARM cores.

I have been using this book since reviewing the first draft, and can recommend it to anyone who wants the get the best out of their ARM Powered products."

-Peter Maloy, CodeSprite Inc.

"This book provides an excellent introduction to the ARM architecture. It describes important architectural features in detail. It also makes great use of examples to illustrate those features and put them in context."

-Wayne Wolf, Princeton University

ARM Embedded Systems
The RISC Design Philosophy
The ARM Design Philosophy
Embedded System Hardware
Embedded System Software
Summary
ARM Processor Fundamentals
Registers
Current Program Status Register
Pipeline
Exceptions, Interrupts, and the Vector Table
Core Extensions
Architecture Revisions
ARM Processor Families
Summary
Introduction to the ARM Instruction Set
Data Processing Instructions
Branch Instructions
Load-Store Instructions
Software Interrupt Instruction
Program Status Register Instructions
Loading Constants
ARMv5E Extensions
Conditional Execution
Summary
Introduction to the Thumb Instruction Set
Thumb Register Usage
ARM-Thumb Interworking
Other Branch Instructions
Data Processing Instructions
Single-Register Load-Store Instructions
Multiple-Register Load-Store Instructions
Stack Instructions
Software Interrupt Instruction
Summary
Efficient C Programming
Overview of C Compilers and Optimization
Basic C Data Types
C Looping Structures
Register Allocation
Function Calls
Pointer Aliasing
Structure Arrangement
Bit-fields
Unaligned Data and Endianness
Division
Floating Point
Inline Functions and Inline Assembly
Portability Issues
Summary
Writing and Optimizing ARM Assembly Code
Writing Assembly Code
Profiling and Cycle Counting
Instruction Scheduling
Register Allocation
Conditional Execution
Looping Constructs
Bit Manipulation
Efficient Switches
Handling Unaligned Data
Summary
Optimized Primitives
Double-Precision Integer Multiplication
Integer Normalization and Count Leading Zeros
Division
Square Roots
Transcendental Functions: log, exp, sin, cos
Endian Reversal and Bit Operations
Saturated and Rounded Arithmetic
Random Number Generation
Summary
Digital Signal Processing
Representing a Digital Signal
Introduction to DSP on the ARM
FIR filters
IIR Filters
The Discrete Fourier Transform
Summary
Exception and Interruput Handling
Exception Handling
Interrupts
Interrupt Handling Schemes
Summary
Firmware
Firmware and Bootloader
Example: Sandstone
Summary
Embedded Operating Systems
Fundamental Components
Example: Simple Little Operating System
Summary
Caches
The Memory Hierarchy and Cache Memory
Cache Architecture
Cache Policy
Coprocessor 15 and Caches
Flushing and Cleaning Cache Memory
Cache Lockdown
Caches and Software Performance
Summary
Memory Protection Units
Protected Regions
Initializing the MPU, Caches, and Write Buffer
Demonstration of an MPU system
Summary
Memory Management Units
Moving from an MPU to an MMU
How Virtual Memory Works
Details of the ARM MMU
Page Tables
The Translation Lookaside Buffer
Domains and Memory Access Permission
The Caches and Write Buffer
Coprocessor 15 and MMU Configuration
The Fast Context Switch Extension
Demonstration: A Small Virtual Memory System
The Demonstration as mmuSLOS
Summary
The Future of the Architecture
Advanced DSP and SIMD Support in ARMv6
System and Multiprocessor Support Additions to ARMv6
ARMv6 Implementations
Future Technologies beyond ARMv6
Table of Contents provided by Publisher. All Rights Reserved.

ISBN: 9781558608740
ISBN-10: 1558608745
Series: The Morgan Kaufmann Series in Computer Architecture and Design
Audience: Professional
Format: Hardcover
Language: English
Number Of Pages: 689
Published: 10th May 2004
Publisher: Elsevier Science & Technology
Country of Publication: US
Dimensions (cm): 23.5 x 19.1  x 4.45
Weight (kg): 1.29