1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ARM v7 m architecture application level reference manual

534 1.4K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • ARM v7-M Architecture Application Level Reference Manual

  • Contents

  • Preface

    • About this manual

    • Unified Assembler Language

    • Using this manual

    • Conventions

      • General typographic conventions

    • Further reading

      • ARM publications

    • Feedback

      • Feedback on this book

  • Application

  • Introduction

    • A1.1 The ARM Architecture - M profile

    • A1.2 Introduction to Pseudocode

  • Application Level Programmer’s Model

    • A2.1 The register model

      • A2.1.1 Registers

      • A2.1.2 Execution state support

      • A2.1.3 Privileged execution

    • A2.2 Exceptions, faults and interrupts

      • A2.2.1 System related events

    • A2.3 Coprocessor support

  • ARM Architecture Memory Model

    • A3.1 Address space

      • A3.1.1 Virtual versus Physical Addressing

    • A3.2 Alignment Support

      • A3.2.1 Alignment Behavior

    • A3.3 Endian Support

      • A3.3.1 Control of the Endian Mapping in ARMv7-M

      • A3.3.2 Element size and Endianness

      • A3.3.3 Instructions to reverse bytes in a general-purpose register

    • A3.4 Synchronization and semaphores

      • A3.4.1 Exclusive access instructions and Non Shared memory regions

      • A3.4.2 Exclusive access instructions and shared memory regions

      • A3.4.3 Size of the tagged memory block

      • A3.4.4 Context switch support

      • A3.4.5 Load-Exclusive and Store-Exclusive usage restrictions

      • A3.4.6 Synchronization primitives and the memory order model

    • A3.5 Memory types

      • A3.5.1 Atomicity

      • A3.5.2 Normal memory attribute

      • A3.5.3 Device memory attribute

      • A3.5.4 Strongly Ordered memory attribute

      • A3.5.5 Memory access restrictions

    • A3.6 Access rights

      • A3.6.1 User/privileged access and Read/Write access control for Data Accesses

      • A3.6.2 User/privileged access and Read/Write access control for Instruction Accesses

    • A3.7 Memory access order

      • A3.7.1 Read and write definitions

      • A3.7.2 Observability and completion

      • A3.7.3 Ordering requirements for memory accesses

      • A3.7.4 Program order for instruction execution

      • A3.7.5 Memory barriers

      • A3.7.6 Data Memory Barrier (DMB)

      • A3.7.7 Data Synchronization Barrier (DSB)

      • A3.7.8 Instruction Synchronization Barrier (ISB)

    • A3.8 Caches and memory hierarchy

      • A3.8.1 Introduction to caches

      • A3.8.2 Implication of caches to the application programmer

    • A3.9 Bit banding

  • The Thumb Instruction Set

    • A4.1 Instruction set encoding

    • A4.2 Instruction encoding for 16-bit Thumb instructions

      • A4.2.1 Miscellaneous instructions

    • A4.3 Instruction encoding for 32-bit Thumb instructions

      • A4.3.1 Data processing instructions: immediate, including bitfield and saturate

      • A4.3.2 Data processing instructions, non-immediate

      • A4.3.3 Load and store single data item, and memory hints

      • A4.3.4 Load/store double and exclusive, and table branch

      • A4.3.5 Load and store multiple

      • A4.3.6 Branches, miscellaneous control instructions

      • A4.3.7 Coprocessor instructions

    • A4.4 Conditional execution

      • A4.4.1 Assembly language syntax

      • A4.4.2 The IT execution state bits

    • A4.5 UNDEFINED and UNPREDICTABLE instruction set space

      • A4.5.1 16-bit instruction set space

      • A4.5.2 32-bit instruction set space

    • A4.6 Usage of 0b1111 as a register specifier

      • A4.6.1 M profile interworking support

    • A4.7 Usage of 0b1101 as a register specifier

      • A4.7.1 R13<1:0> definition

      • A4.7.2 Thumb-2 ISA support for R13

      • A4.7.3 Thumb-2 16-bit ISA support for R13

  • Thumb Instructions

    • A5.1 Format of instruction descriptions

      • A5.1.1 Instruction section title

      • A5.1.2 Introduction to the instruction

      • A5.1.3 Instruction encodings

      • A5.1.4 Architecture version information

      • A5.1.5 Assembler syntax

      • A5.1.6 Pseudo-code describing how the instruction operates

      • A5.1.7 Exception information

      • A5.1.8 Notes

    • A5.2 Immediate constants

      • A5.2.1 Encoding

      • A5.2.2 Operation

    • A5.3 Constant shifts applied to a register

      • A5.3.1 Encoding

      • A5.3.2 Shift operations

    • A5.4 Memory accesses

      • A5.4.1 Memory stores and exclusive access

    • A5.5 Memory hints

    • A5.6 NOP-compatible hints

    • A5.7 Alphabetical list of Thumb instructions

      • A5.7.1 ADC (immediate)

      • A5.7.2 ADC (register)

      • A5.7.3 ADD (immediate)

      • A5.7.4 ADD (register)

      • A5.7.5 ADD (SP plus immediate)

      • A5.7.6 ADD (SP plus register)

      • A5.7.7 ADR

      • A5.7.8 AND (immediate)

      • A5.7.9 AND (register)

      • A5.7.10 ASR (immediate)

      • A5.7.11 ASR (register)

      • A5.7.12 B

      • A5.7.13 BFC

      • A5.7.14 BFI

      • A5.7.15 BIC (immediate)

      • A5.7.16 BIC (register)

      • A5.7.17 BKPT

      • A5.7.18 BL

      • A5.7.19 BLX (register)

      • A5.7.20 BX

      • A5.7.21 CBNZ

      • A5.7.22 CBZ

      • A5.7.23 CDP, CDP2

      • A5.7.24 CLREX

      • A5.7.25 CLZ

      • A5.7.26 CMN (immediate)

      • A5.7.27 CMN (register)

      • A5.7.28 CMP (immediate)

      • A5.7.29 CMP (register)

      • A5.7.30 CPS

      • A5.7.31 CPY

      • A5.7.32 DBG

      • A5.7.33 DMB

      • A5.7.34 DSB

      • A5.7.35 EOR (immediate)

      • A5.7.36 EOR (register)

      • A5.7.37 ISB

      • A5.7.38 IT

      • A5.7.39 LDC, LDC2

      • A5.7.40 LDMDB / LDMEA

      • A5.7.41 LDMIA / LDMFD

      • A5.7.42 LDR (immediate)

      • A5.7.43 LDR (literal)

      • A5.7.44 LDR (register)

      • A5.7.45 LDRB (immediate)

      • A5.7.46 LDRB (literal)

      • A5.7.47 LDRB (register)

      • A5.7.48 LDRBT

      • A5.7.49 LDRD (immediate)

      • A5.7.50 LDREX

      • A5.7.51 LDREXB

      • A5.7.52 LDREXH

      • A5.7.53 LDRH (immediate)

      • A5.7.54 LDRH (literal)

      • A5.7.55 LDRH (register)

      • A5.7.56 LDRHT

      • A5.7.57 LDRSB (immediate)

      • A5.7.58 LDRSB (literal)

      • A5.7.59 LDRSB (register)

      • A5.7.60 LDRSBT

      • A5.7.61 LDRSH (immediate)

      • A5.7.62 LDRSH (literal)

      • A5.7.63 LDRSH (register)

      • A5.7.64 LDRSHT

      • A5.7.65 LDRT

      • A5.7.66 LSL (immediate)

      • A5.7.67 LSL (register)

      • A5.7.68 LSR (immediate)

      • A5.7.69 LSR (register)

      • A5.7.70 MCR, MCR2

      • A5.7.71 MCRR, MCRR2

      • A5.7.72 MLA

      • A5.7.73 MLS

      • A5.7.74 MOV (immediate)

      • A5.7.75 MOV (register)

      • A5.7.76 MOV (shifted register)

      • A5.7.77 MOVT

      • A5.7.78 MRC, MRC2

      • A5.7.79 MRRC, MRRC2

      • A5.7.80 MRS

      • A5.7.81 MSR (register)

      • A5.7.82 MUL

      • A5.7.83 MVN (immediate)

      • A5.7.84 MVN (register)

      • A5.7.85 NEG

      • A5.7.86 NOP

      • A5.7.87 ORN (immediate)

      • A5.7.88 ORN (register)

      • A5.7.89 ORR (immediate)

      • A5.7.90 ORR (register)

      • A5.7.91 PLD (immediate)

      • A5.7.92 PLD (register)

      • A5.7.93 PLI (immediate)

      • A5.7.94 PLI (register)

      • A5.7.95 POP

      • A5.7.96 PUSH

      • A5.7.97 RBIT

      • A5.7.98 REV

      • A5.7.99 REV16

      • A5.7.100 REVSH

      • A5.7.101 ROR (immediate)

      • A5.7.102 ROR (register)

      • A5.7.103 RRX

      • A5.7.104 RSB (immediate)

      • A5.7.105 RSB (register)

      • A5.7.106 SBC (immediate)

      • A5.7.107 SBC (register)

      • A5.7.108 SBFX

      • A5.7.109 SDIV

      • A5.7.110 SEV

      • A5.7.111 SMLAL

      • A5.7.112 SMULL

      • A5.7.113 SSAT

      • A5.7.114 STC, STC2

      • A5.7.115 STMDB / STMFD

      • A5.7.116 STMIA / STMEA

      • A5.7.117 STR (immediate)

      • A5.7.118 STR (register)

      • A5.7.119 STRB (immediate)

      • A5.7.120 STRB (register)

      • A5.7.121 STRBT

      • A5.7.122 STRD (immediate)

      • A5.7.123 STREX

      • A5.7.124 STREXB

      • A5.7.125 STREXH

      • A5.7.126 STRH (immediate)

      • A5.7.127 STRH (register)

      • A5.7.128 STRHT

      • A5.7.129 STRT

      • A5.7.130 SUB (immediate)

      • A5.7.131 SUB (register)

      • A5.7.132 SUB (SP minus immediate)

      • A5.7.133 SUB (SP minus register)

      • A5.7.134 SVC (formerly SWI)

      • A5.7.135 SXTB

      • A5.7.136 SXTH

      • A5.7.137 TBB

      • A5.7.138 TBH

      • A5.7.139 TEQ (immediate)

      • A5.7.140 TEQ (register)

      • A5.7.141 TST (immediate)

      • A5.7.142 TST (register)

      • A5.7.143 UBFX

      • A5.7.144 UDIV

      • A5.7.145 UMLAL

      • A5.7.146 UMULL

      • A5.7.147 USAT

      • A5.7.148 UXTB

      • A5.7.149 UXTH

      • A5.7.150 WFE

      • A5.7.151 WFI

      • A5.7.152 YIELD

  • System

  • System Level Programmer’s Model

    • B1.1 Introduction to the system level

    • B1.2 System programmer’s model

      • B1.2.1 System level operation and terminology overview

      • B1.2.2 Registers

      • B1.2.3 Exception model

  • System Address Map

    • B2.1 The system address map

    • B2.2 Bit Banding

    • B2.3 System Control Space (SCS)

      • B2.3.1 The System Control Block (SCB)

    • B2.4 System timer - SysTick

      • B2.4.1 Theory of operation

      • B2.4.2 System timer register support in the SCS

    • B2.5 Nested Vectored Interrupt Controller (NVIC)

      • B2.5.1 Theory of operation

      • B2.5.2 NVIC register support in the SCS

    • B2.6 Protected Memory System Architecture

      • B2.6.1 PMSAv7 compliant MPU operation

      • B2.6.2 Register support for PMSAv7 in the SCS

  • ARMv7-M System Instructions

    • B3.1 Alphabetical list of ARMv7-M system instructions

      • B3.1.1 CPS

      • B3.1.2 MRS

      • B3.1.3 MSR (register)

  • Debug

  • Debug

    • C1.1 Introduction to debug

    • C1.2 The Debug Access Port (DAP)

      • C1.2.1 General rules applying to debug register access

    • C1.3 Overview of the ARMv7-M debug features

    • C1.4 Debug and reset

    • C1.5 Debug event behavior

      • C1.5.1 Debug stepping

    • C1.6 Debug register support in the SCS

      • C1.6.1 Vector catch support

    • C1.7 Instrumentation Trace Macrocell (ITM) support

      • C1.7.1 Theory of operation

      • C1.7.2 Register support for the ITM

    • C1.8 Data Watchpoint and Trace (DWT) support

      • C1.8.1 Theory of operation

      • C1.8.2 Register support for the DWT

    • C1.9 Embedded Trace (ETM) support

    • C1.10 Trace Port Interface Unit (TPIU)

    • C1.11 Flash Patch and Breakpoint (FPB) support

      • C1.11.1 Theory of operation

      • C1.11.2 Register support for the FPB

  • Pseudo-code definition

    • AppxA.1 Instruction encoding diagrams and pseudo-code

      • AppxA.1.1 Pseudo-code

    • AppxA.2 Data Types

      • AppxA.2.1 General data type rules

      • AppxA.2.2 Bitstrings

      • AppxA.2.3 Integers

      • AppxA.2.4 Reals

      • AppxA.2.5 Booleans

      • AppxA.2.6 Enumerations

      • AppxA.2.7 Lists

      • AppxA.2.8 Arrays

    • AppxA.3 Expressions

      • AppxA.3.1 General expression syntax

      • AppxA.3.2 Operators and functions - polymorphism and prototypes

      • AppxA.3.3 Precedence rules

    • AppxA.4 Operators and built-in functions

      • AppxA.4.1 Operations on generic types

      • AppxA.4.2 Operations on booleans

      • AppxA.4.3 Bitstring manipulation

      • AppxA.4.4 Arithmetic

    • AppxA.5 Statements and program structure

      • AppxA.5.1 Simple statements

      • AppxA.5.2 Compound statements

      • AppxA.5.3 Comments

    • AppxA.6 Helper procedures and functions

      • AppxA.6.1 ALUWritePC()

      • AppxA.6.2 ArchVersion()

      • AppxA.6.3 BadReg()

      • AppxA.6.4 BigEndian()

      • AppxA.6.5 BranchWritePC()

      • AppxA.6.6 BreakPoint()

      • AppxA.6.7 BXWritePC()

      • AppxA.6.8 CallSupervisor()

      • AppxA.6.9 ClearEventRegister()

      • AppxA.6.10 ClearExclusiveMonitors()

      • AppxA.6.11 ConditionPassed()

      • AppxA.6.12 Coproc_Accepted()

      • AppxA.6.13 Coproc_DoneLoading()

      • AppxA.6.14 Coproc_DoneStoring()

      • AppxA.6.15 Coproc_GetOneWord()

      • AppxA.6.16 Coproc_GetTwoWords()

      • AppxA.6.17 Coproc_GetWordToStore()

      • AppxA.6.18 Coproc_InternalOperation()

      • AppxA.6.19 Coproc_SendLoadedWord()

      • AppxA.6.20 Coproc_SendOneWord()

      • AppxA.6.21 Coproc_SendTwoWords()

      • AppxA.6.22 DataMemoryBarrier()

      • AppxA.6.23 DataSynchronizationBarrier()

      • AppxA.6.24 DecodeImmShift(), DecodeRegShift()

      • AppxA.6.25 EventRegistered()

      • AppxA.6.26 EncodingSpecificOperations()

      • AppxA.6.27 ExclusiveMonitorsPass()

      • AppxA.6.28 Hint_Debug()

      • AppxA.6.29 Hint_PreloadData()

      • AppxA.6.30 Hint_PreloadInstr()

      • AppxA.6.31 Hint_SendEvent()

      • AppxA.6.32 Hint_Yield()

      • AppxA.6.33 InITBlock()

      • AppxA.6.34 InstructionSynchronizationBarrier()

      • AppxA.6.35 IntegerZeroDivideTrappingEnabled()

      • AppxA.6.36 LastInITBlock()

      • AppxA.6.37 LoadWritePC()

      • AppxA.6.38 MemA[]

      • AppxA.6.39 MemAA[]

      • AppxA.6.40 MemU[]

      • AppxA.6.41 MemU_unpriv[]

      • AppxA.6.42 R[]

      • AppxA.6.43 RaiseCoprocessorException()

      • AppxA.6.44 RaiseIntegerZeroDivide()

      • AppxA.6.45 SetExclusiveMonitors()

      • AppxA.6.46 Shift(), Shift_C()

      • AppxA.6.47 StartITBlock()

      • AppxA.6.48 ThisInstr()

      • AppxA.6.49 ThumbExpandImm(), ThumbExpandImmWithC()

      • AppxA.6.50 WaitForEvent()

      • AppxA.6.51 WaitForInterrupt()

  • Legacy Instruction Mnemonics

  • CPUID

    • AppxC.1 Core Feature ID Registers

  • Deprecated Features in ARMv7M

  • Glossary

Nội dung

ARM v7-M Architecture Application Level Reference Manual Beta Copyright © 2006 ARM Limited All rights reserved ARM DDI 0405A-01 ARM v7-M Architecture Application Level Reference Manual Copyright © 2006 ARM Limited All rights reserved Release Information The following changes have been made to this document Change History Date Issue Change 21-Mar-2006 A first beta release Proprietary Notice ARM, the ARM Powered logo, Thumb, and StrongARM are registered trademarks of ARM Limited The ARM logo, AMBA, Angel, ARMulator, EmbeddedICE, ModelGen, Multi-ICE, PrimeCell, ARM7TDMI, ARM7TDMI-S, ARM9TDMI, ARM9E-S, ETM7, ETM9, TDMI, STRONG, are trademarks of ARM Limited All other products or services mentioned herein may be trademarks of their respective owners 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 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) integrated circuits which incorporate a microprocessor core manufactured under licence from ARM Except as expressly licensed in Clause 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 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 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 programmer's 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 without the express written permission of ARM; or (iv) translate or have translated this ARM Architecture Reference Manual into any other languages 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 ii Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 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 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 Copyright © 2005, 2006 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 The right to use and copy this document is subject to the licence set out above ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta iii iv Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Contents ARM v7-M Architecture Application Level Reference Manual Preface About this manual x Unified Assembler Language xi Using this manual xii Conventions xiv Further reading xv Feedback xvi Part A Chapter A1 Application Introduction A1.1 A1.2 Chapter A2 Application Level Programmer’s Model A2.1 A2.2 A2.3 ARM DDI 0405A-01 The ARM Architecture – M profile A1-2 Introduction to Pseudocode A1-3 The register model A2-2 Exceptions, faults and interrupts A2-5 Coprocessor support A2-6 Copyright © 2006 ARM Limited All rights reserved Beta v Contents Chapter A3 ARM Architecture Memory Model A3.1 A3.2 A3.3 A3.4 A3.5 A3.6 A3.7 A3.8 A3.9 Chapter A4 The Thumb Instruction Set A4.1 A4.2 A4.3 A4.4 A4.5 A4.6 A4.7 Chapter A5 Chapter B1 System Level Programmer’s Model The system address map B2-2 Bit Banding B2-5 System Control Space (SCS) B2-7 System timer - SysTick B2-9 Nested Vectored Interrupt Controller (NVIC) B2-10 Protected Memory System Architecture B2-12 ARMv7-M System Instructions B3.1 vi Introduction to the system level B1-2 System programmer’s model B1-3 System Address Map B2.1 B2.2 B2.3 B2.4 B2.5 B2.6 Chapter B3 Format of instruction descriptions A5-2 Immediate constants A5-8 Constant shifts applied to a register A5-10 Memory accesses A5-13 Memory hints A5-14 NOP-compatible hints A5-15 Alphabetical list of Thumb instructions A5-16 System B1.1 B1.2 Chapter B2 Instruction set encoding A4-2 Instruction encoding for 16-bit Thumb instructions A4-3 Instruction encoding for 32-bit Thumb instructions A4-12 Conditional execution A4-33 UNDEFINED and UNPREDICTABLE instruction set space A4-37 Usage of 0b1111 as a register specifier A4-39 Usage of 0b1101 as a register specifier A4-41 Thumb Instructions A5.1 A5.2 A5.3 A5.4 A5.5 A5.6 A5.7 Part B Address space A3-2 Alignment Support A3-3 Endian Support A3-5 Synchronization and semaphores A3-8 Memory types A3-19 Access rights A3-26 Memory access order A3-27 Caches and memory hierarchy A3-32 Bit banding A3-34 Alphabetical list of ARMv7-M system instructions B3-2 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Contents Part C Chapter C1 Debug Debug C1.1 C1.2 C1.3 C1.4 C1.5 C1.6 C1.7 C1.8 C1.9 C1.10 C1.11 Appendix A Pseudo-code definition A.1 A.2 A.3 A.4 A.5 A.6 Appendix B Appendix C Instruction encoding diagrams and pseudo-code AppxA-2 Data Types AppxA-4 Expressions AppxA-8 Operators and built-in functions AppxA-10 Statements and program structure AppxA-18 Helper procedures and functions AppxA-22 Legacy Instruction Mnemonics CPUID C.1 Appendix D Introduction to debug C1-2 The Debug Access Port (DAP) C1-4 Overview of the ARMv7-M debug features C1-7 Debug and reset C1-8 Debug event behavior C1-9 Debug register support in the SCS C1-11 Instrumentation Trace Macrocell (ITM) support C1-12 Data Watchpoint and Trace (DWT) support C1-14 Embedded Trace (ETM) support C1-15 Trace Port Interface Unit (TPIU) C1-16 Flash Patch and Breakpoint (FPB) support C1-17 Core Feature ID Registers AppxC-2 Deprecated Features in ARMv7M Glossary ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta vii Contents viii Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Preface This preface describes the contents of this manual, then lists the conventions and terminology it uses • About this manual on page x • Unified Assembler Language on page xi • Using this manual on page xii • Conventions on page xiv • Further reading on page xv • Feedback on page xvi ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta ix Preface About this manual This manual documents the Microcontroller profile associated with version of the ARM Architecture (ARMv7-M) For short-form definitions of all the ARMv7 profiles see page A1-1 The manual consists of three parts: Part A The application level programming model and memory model information along with the instruction set as visible to the application programmer This is the information required to program applications or to develop the toolchain components (compiler, linker, assembler and disassembler) excluding the debugger For ARMv7-M, this is almost entirely a subset of material common to the other two profiles Instruction set details which differ between profiles are clearly stated Note All ARMv7 profiles support a common procedure calling standard, the ARM Architecture Procedure Calling Standard (AAPCS) Part B The system level programming model and system level support instructions required for system correctness The system level supports the ARMv7-M exception model It also provides features for configuration and control of processor resources and management of memory access rights This is the information in addition to Part A required for an operating system (OS) and/or system support software It includes details of register banking, the exception model, memory protection (management of access rights) and cache support Part B is profile specific ARMv7-M introduces a new programmer’s model and as such has some fundamental differences at the system level from the other profiles As ARMv7-M is a memory-mapped architecture, the system memory map is documented here Part C The debug features to support the ARMv7-M debug architecture, and the programmer’s interface to the debug environment This is the information required in addition to Parts A and B to write a debugger Part C covers details of the different types of debug: • halting debug and the related debug state • exception-based monitor debug • non-invasive support for event generation and signalling of the events to an external agent This part is profile specific and includes several debug features unique within the ARMv7 architecture to this profile x Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Pseudo-code definition AppxA-30 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Appendix B Legacy Instruction Mnemonics The following table shows the pre-UAL assembly syntax used for Thumb instructions before the introduction of Thumb-2 and the equivalent UAL syntax for each instruction It can be used to translate correctly-assembling pre-UAL Thumb assembler code into UAL assembler code This table is not intended to be used for the reverse translation from UAL assembler code to pre-UAL Thumb assembler code In this table, 3-operand forms of the equivalent UAL syntax are used, except in one case where a 2-operand form needs to be used to ensure that the same instruction encoding is selected by a UAL assembler as was selected by a pre-UAL Thumb assembler Table AppxB-1 Pre-UAL assembly syntax Pre-UAL Thumb syntax Equivalent UAL syntax ADC , ADCS , , ADD , , # ADDS , , # ADD , # ADDS , # ADD , , ADDS , , ADD , SP ADD , SP, ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta Notes AppxB-1 Legacy Instruction Mnemonics Table AppxB-1 Pre-UAL assembly syntax AppxB-2 Pre-UAL Thumb syntax Equivalent UAL syntax Notes ADD , ADD , , If or is a high register and is not SP ADD , PC, # ADR , ADD , PC, # ADR , ADR form preferred where possible ADD , SP, # ADD , SP, # ADD SP, # ADD SP, SP, # AND , ANDS , , ASR , , # ASRS , , # ASR , ASRS , , B B B B BIC , BICS , , BKPT BKPT BL BL BLX BLX can be a high register BX BX can be a high register CMN , CMN , CMP , # CMP , # CMP , CMP , CPS CPS CPY , MOV , EOR , EORS , , LDMIA !, LDMIA , LDMIA !, If listed in Otherwise LDR , [, #] LDR , [, #] can be SP Copyright © 2006 ARM Limited All rights reserved Beta and can be high registers ARM DDI 0405A-01 Legacy Instruction Mnemonics Table AppxB-1 Pre-UAL assembly syntax Pre-UAL Thumb syntax Equivalent UAL syntax LDR , [, ] LDR , [, ] LDR , [PC, #] LDR , LDR , [PC, #] LDR , LDRB , [, #] LDRB , [, #] LDRB , [, ] LDRB , [, ] LDRH , [, #] LDRH , [, #] LDRH , [, ] LDRH , [, ] LDRSB , [, ] LDRSB , [, ] LDRSH , [, ] LDRSH , [, ] LSL , , # LSLS , , # LSL , LSLS , , LSR , , # LSRS , , # LSR , LSRS , , MOV , # MOVS , # MOV , ADDS , , #0MOV , MUL , MULS , , MVN , MVNS , NEG , RSBS , , #0 ORR , ORRS , , POP POP can include PC PUSH PUSH can include LR REV , REV , [...]... follows: ARMv7-A the application profile for systems supporting the ARM and Thumb instruction sets, and requiring virtual address support in the memory management model ARMv7-R the realtime profile for systems supporting the ARM and Thumb instruction sets, and requiring physical address only support in the memory management model ARMv7 -M the microcontroller profile for systems supporting only the Thumb instruction... Introduction ARMv7 overview, the different architecture profiles and the background to the Microcontroller (M) profile Chapter A2 Application Level Programmer’s Model Details on the registers and status bits available at the application level along with a summary of the exception support Chapter A3 ARM Architecture Memory Model Details of the ARM architecture memory attributes and memory order model Chapter... deterministic operation for an implementation are more important than absolute performance While profiles were formally introduced with the ARMv7 development, the A-profile and R-profile have implicitly existed in earlier versions, associated with the Virtual Memory System Architecture (VMSA) and Protected Memory System Architecture (PMSA) respectively Instruction Set Architecture (ISA) ARMv7 -M only... references to the system information part of the architecture specification as appropriate ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta A2-1 Application Level Programmer’s Model A2.1 The register model The application level programmer’s model provides details of the general-purpose and special-purpose registers visible to the application programmer, the ARM memory model, and the instruction... Virtual memory is not supported in ARMv7 -M A3-2 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 ARM Architecture Memory Model A3.2 Alignment Support The system architecture can choose one of two policies for alignment checking in ARMv7 -M: • Support the unaligned access • Generate a fault when an unaligned access occurs The policy varies with the type of access An implementation... the memory has the sharable or non-sharable memory attribute, see Shared Normal memory on page A3-22 Uniprocessor systems are only required to support the non-shared memory model This means they can support synchronization primitives with the minimum amount of hardware overhead Figure A3-2 on page A3-9 shows an example minimal system A3-8 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI... includes information on data types and the operations (logical and arithmetic) supported by the ARM architecture ARM DDI 0405A-01 Copyright © 2006 ARM Limited All rights reserved Beta A1-3 Introduction A1-4 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Chapter A2 Application Level Programmer’s Model This chapter provides an application level view of the programmer’s model This... additions and improvements are also welcome xvi Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 Part A Application Chapter A1 Introduction Due to the explosive growth in recent years associated with the ARM architecture into many market areas, along with the need to maintain high levels of architecture consistency, ARMv7 is documented as a set of architecture profiles The ARM architecture. .. information on the ARM family of processors This manual provides architecture imformation It is designed to be read in conjunction with a Technical Reference Manual (TRM) for the implementation of interest The TRM provides details of the IMPLEMENTATION DEFINED architecture features in the ARM compliant core The silicon partner’s device specification should be used for additional system details ARM periodically... its documentation For the latest information and errata, some materials are published at http://www .arm. com Alternatively, contact your distributor or silicon partner who will have access to the latest published ARM information, as well as information specific to the device of interest ARM publications The first ARMv7 -M implementation is described in the Cortex -M3 Technical Reference Manual (ARM DDI ... ModelGen, Multi-ICE, PrimeCell, ARM7 TDMI, ARM7 TDMI-S, ARM9 TDMI, ARM9 E-S, ETM7, ETM9, TDMI, STRONG, are trademarks of ARM Limited All other products or services mentioned herein may be trademarks... ARMv7 -M introduces a new programmer’s model and as such has some fundamental differences at the system level from the other profiles As ARMv7 -M is a memory-mapped architecture, the system memory... Virtual memory is not supported in ARMv7 -M A3-2 Copyright © 2006 ARM Limited All rights reserved Beta ARM DDI 0405A-01 ARM Architecture Memory Model A3.2 Alignment Support The system architecture

Ngày đăng: 08/03/2016, 11:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN