ARM Architecture Reference Manual - Architecture Reference Manual ARM Architecture Reference Manual ARM Architecture Reference Manual † †

  • View
    277

  • Download
    8

Embed Size (px)

Text of ARM Architecture Reference Manual - Architecture Reference Manual ARM Architecture Reference...

  • ARM ArchitectureReference Manual

    ARMv7-A and ARMv7-R edition

    Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved.ARM DDI 0406A

  • ARM Architecture Reference ManualARMv7-A and ARMv7-R edition

    Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved.

    Release Information

    The following changes have been made to this document.

    From ARMv7, the ARM architecture defines different architectural profiles and this edition of this manual describes only the A and R profiles. For details of the documentation of the ARMv7-M profile see Further reading on page xix. Before ARMv7 there was only a single ARM Architecture Reference Manual, with document number DDI 0100. The first issue of this was in February 1996, and the final issue, Issue I, was in July 2005. For more information see Further reading on page xix.

    Proprietary Notice

    Words and logos marked with or are registered trademarks or trademarks of ARM Limited in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

    Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

    The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

    1. Subject to the provisions set out below, ARM hereby grants to you a perpetual, non-exclusive, nontransferable, royalty free, worldwide licence to use this ARM Architecture Reference Manual for the purposes of developing; (i) software applications or operating systems which are targeted to run on microprocessor cores distributed under licence from ARM; (ii) tools which are designed to develop software programs which are targeted to run on microprocessor cores distributed under licence from ARM; (iii) or having developed integrated circuits which incorporate a microprocessor core manufactured under licence from ARM.

    2. Except as expressly licensed in Clause 1 you acquire no right, title or interest in the ARM Architecture Reference Manual, or any Intellectual Property therein. In no event shall the licences granted in Clause 1, be construed as granting you expressly or by implication, estoppel or otherwise, licences to any ARM technology other than the ARM Architecture Reference Manual. The licence grant in Clause 1 expressly excludes any rights for you to use or take into use any ARM patents. No right is granted to you under the provisions of Clause 1 to; (i) use the ARM Architecture Reference Manual for the purposes of developing or having developed microprocessor cores or models thereof which are compatible in whole or part with either or both the instructions or programmers models described in this ARM Architecture Reference Manual; or (ii) develop or have developed models of any microprocessor cores designed by or for ARM; or (iii) distribute in whole or in part this ARM Architecture Reference Manual to third parties, other than to your subcontractors for the purposes of having developed products in accordance with the licence grant in Clause 1 without the express written permission of ARM; or (iv) translate or have translated this ARM Architecture Reference Manual into any other languages.

    Change History

    Date Issue Confidentiality Change

    05 April 2007 A Non-Confidential New edition for ARMv7-A and ARMv7-R architecture profiles.

    Document number changed from ARM DDI 0100 to ARM DDI 0406 and contents restructured.

    ii Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved. ARM DDI 0406A

  • 3. THE ARM ARCHITECTURE REFERENCE MANUAL IS PROVIDED "AS IS" WITH NO WARRANTIES EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF SATISFACTORY QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE.

    4. No licence, express, implied or otherwise, is granted to LICENSEE, under the provisions of Clause 1, to use the ARM tradename, in connection with the use of the ARM Architecture Reference Manual or any products based thereon. Nothing in Clause 1 shall be construed as authority for you to make any representations on behalf of ARM in respect of the ARM Architecture Reference Manual or any products based thereon.

    Where the term ARM is used it means ARM or any of its subsidiaries as appropriate.

    Copyright 1996-1998, 2000, 2004-2007 ARM Limited

    110 Fulbourn Road Cambridge, England CB1 9NJ

    Restricted Rights Legend: Use, duplication or disclosure by the United States Government is subject to the restrictions set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19.

    This document is Non-Confidential. The right to use, copy and disclose this document is subject to the licence set out above.

    ARM DDI 0406A Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved. iii

  • iv Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved. ARM DDI 0406A

  • ContentsARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

    PrefaceAbout this manual ............................................................................... xivUsing this manual ................................................................................ xvConventions ....................................................................................... xviiiFurther reading ................................................................................... xixFeedback ............................................................................................. xx

    Part A Application Level Architecture

    Chapter A1 Introduction to the ARM ArchitectureA1.1 About the ARM architecture ............................................................. A1-2A1.2 The ARM and Thumb instruction sets .............................................. A1-3A1.3 Architecture versions, profiles, and variants .................................... A1-4A1.4 Architecture extensions .................................................................... A1-6A1.5 The ARM memory model ................................................................. A1-7A1.6 Debug .............................................................................................. A1-8

    Chapter A2 Application Level Programmers ModelA2.1 About the Application level programmers model ............................. A2-2

    ARM DDI 0406A Copyright 1996-1998, 2000, 2004-2007 ARM Limited. All rights reserved. v

  • Contents

    A2.2 ARM core data types and arithmetic ................................................ A2-3A2.3 ARM core registers ........................................................................ A2-11A2.4 The Application Program Status Register (APSR) ......................... A2-14A2.5 Execution state registers ................................................................ A2-15A2.6 Advanced SIMD and VFP extensions ............................................ A2-20A2.7 Floating-point data types and arithmetic ........................................ A2-31A2.8 Polynomial arithmetic over {0,1} .................................................... A2-62A2.9 Coprocessor support ...................................................................... A2-63A2.10 Execution environment support ..................................................... A2-64A2.11 Exceptions, debug events and checks ........................................... A2-75

    Chapter A3 Application Level Memory ModelA3.1 Address space ................................................................................. A3-2A3.2 Alignment support ............................................................................ A3-4A3.3 Endian support ................................................................................. A3-7A3.4 Synchronization and semaphores .................................................. A3-12A3.5 Memory types and attributes and the Memory order model .......... A3-23A3.6 Access rights .................................................................................. A3-37A3.7 Virtual and physical addressing ..................................................... A3-39A3.8 Memory access order .................................................................... A3-40A3.9 Caches and memory hierarchy ...................................................... A3-50

    Chapter A4 The Instruction SetsA4.1 About the instruction sets ................................................................. A4-2A4.2 Unified Assembler Language ........................................................... A4-4A4.3 Branch instructions .......................................................................... A4-7A4.4 Data-processing instructions ............................................................ A4-8A4.5 Status register access instructions ................................................ A4-18A4.6 Load and store instructions ............................................................ A4-19A4.7 Load/store multiple instructions ..................................................... A4-22A4.8 Miscellaneous instructions ............................................................. A4-23A4.9 Exception-generating and exception-handling instructions ............ A4-24A4.10 Coprocessor instructions ............................................................... A4-25A4.11 Advanced SIMD and VFP load/store instructions .........