- Page 1 and 2:
ARMv6-M Architecture Reference Manu
- Page 3 and 4:
This document is Non-Confidential b
- Page 5 and 6:
Contents ARMv6-M Architecture Refer
- Page 7 and 8:
Contents Chapter B2 System Memory M
- Page 9 and 10:
List of Tables ARMv6-M Architecture
- Page 11 and 12:
List of Tables Table C1-7 Debug ste
- Page 13 and 14:
List of Figures ARMv6-M Architectur
- Page 15 and 16:
Preface This preface introduces the
- Page 17 and 18:
Using this manual The information i
- Page 19 and 20:
Conventions This manual employs typ
- Page 21 and 22:
Feedback ARM welcomes feedback on i
- Page 23:
Part A Application Level Architectu
- Page 26 and 27:
Introduction A1.1 About the ARM arc
- Page 28 and 29:
Introduction A1-28 Copyright © 200
- Page 30 and 31:
Application Level Programmers’ Mo
- Page 32 and 33:
Application Level Programmers’ Mo
- Page 34 and 35:
Application Level Programmers’ Mo
- Page 36 and 37:
Application Level Programmers’ Mo
- Page 38 and 39:
Application Level Programmers’ Mo
- Page 40 and 41:
Application Level Programmers’ Mo
- Page 42 and 43:
ARM Architecture Memory Model A3.1
- Page 44 and 45:
ARM Architecture Memory Model A3.3
- Page 46 and 47:
ARM Architecture Memory Model Instr
- Page 48 and 49:
ARM Architecture Memory Model A3.5
- Page 50 and 51:
ARM Architecture Memory Model The o
- Page 52 and 53:
ARM Architecture Memory Model incoh
- Page 54 and 55:
ARM Architecture Memory Model An im
- Page 56 and 57:
ARM Architecture Memory Model A3.6
- Page 58 and 59:
ARM Architecture Memory Model A3.7
- Page 60 and 61:
ARM Architecture Memory Model Side
- Page 62 and 63:
ARM Architecture Memory Model Data
- Page 64 and 65:
ARM Architecture Memory Model In a
- Page 66 and 67:
The ARMv6-M Instruction Set A4.1 Ab
- Page 68 and 69:
The ARMv6-M Instruction Set A4.2 Un
- Page 70 and 71:
The ARMv6-M Instruction Set A4.3 Br
- Page 72 and 73:
The ARMv6-M Instruction Set Mnemoni
- Page 74 and 75:
The ARMv6-M Instruction Set A4.5 St
- Page 76 and 77:
The ARMv6-M Instruction Set A4.6.2
- Page 78 and 79:
The ARMv6-M Instruction Set A4.8 Mi
- Page 80 and 81:
The ARMv6-M Instruction Set A4-80 C
- Page 82 and 83:
The Thumb Instruction Set Encoding
- Page 84 and 85:
The Thumb Instruction Set Encoding
- Page 86 and 87:
The Thumb Instruction Set Encoding
- Page 88 and 89:
The Thumb Instruction Set Encoding
- Page 90 and 91:
The Thumb Instruction Set Encoding
- Page 92 and 93:
The Thumb Instruction Set Encoding
- Page 94 and 95:
Thumb Instruction Details A6.1 Form
- Page 96 and 97:
Thumb Instruction Details • The l
- Page 98 and 99:
Thumb Instruction Details A6.2 Stan
- Page 100 and 101:
Thumb Instruction Details A6.3.1 Ps
- Page 102 and 103:
Thumb Instruction Details (result,
- Page 104 and 105:
Thumb Instruction Details A6.6 Hint
- Page 106 and 107:
Thumb Instruction Details A6.7.1 AD
- Page 108 and 109:
Thumb Instruction Details Operation
- Page 110 and 111:
Thumb Instruction Details Operation
- Page 112 and 113:
Thumb Instruction Details Operation
- Page 114 and 115:
Thumb Instruction Details Operation
- Page 116 and 117:
Thumb Instruction Details A6.7.7 AN
- Page 118 and 119:
Thumb Instruction Details A6.7.9 AS
- Page 120 and 121:
Thumb Instruction Details Operation
- Page 122 and 123:
Thumb Instruction Details A6.7.12 B
- Page 124 and 125:
Thumb Instruction Details A6.7.14 B
- Page 126 and 127:
Thumb Instruction Details A6.7.16 C
- Page 128 and 129:
Thumb Instruction Details Operation
- Page 130 and 131:
Thumb Instruction Details Operation
- Page 132 and 133:
Thumb Instruction Details A6.7.20 C
- Page 134 and 135:
Thumb Instruction Details A6.7.22 D
- Page 136 and 137:
Thumb Instruction Details A6.7.24 I
- Page 138 and 139:
Thumb Instruction Details Operation
- Page 140 and 141:
Thumb Instruction Details Operation
- Page 142 and 143:
Thumb Instruction Details Operation
- Page 144 and 145:
Thumb Instruction Details A6.7.29 L
- Page 146 and 147:
Thumb Instruction Details A6.7.31 L
- Page 148 and 149:
Thumb Instruction Details A6.7.33 L
- Page 150 and 151:
Thumb Instruction Details A6.7.35 L
- Page 152 and 153:
Thumb Instruction Details A6.7.37 L
- Page 154 and 155:
Thumb Instruction Details A6.7.39 M
- Page 156 and 157:
Thumb Instruction Details Operation
- Page 158 and 159:
Thumb Instruction Details A6.7.42 M
- Page 160 and 161:
Thumb Instruction Details Operation
- Page 162 and 163:
Thumb Instruction Details A6.7.46 N
- Page 164 and 165:
Thumb Instruction Details A6.7.48 O
- Page 166 and 167:
Thumb Instruction Details Operation
- Page 168 and 169:
Thumb Instruction Details A6.7.51 R
- Page 170 and 171:
Thumb Instruction Details A6.7.53 R
- Page 172 and 173:
Thumb Instruction Details A6.7.55 R
- Page 174 and 175:
Thumb Instruction Details A6.7.57 S
- Page 176 and 177:
Thumb Instruction Details Operation
- Page 178 and 179:
Thumb Instruction Details Operation
- Page 180 and 181:
Thumb Instruction Details A6.7.61 S
- Page 182 and 183:
Thumb Instruction Details A6.7.63 S
- Page 184 and 185:
Thumb Instruction Details Operation
- Page 186 and 187:
Thumb Instruction Details Operation
- Page 188 and 189:
Thumb Instruction Details A6.7.67 S
- Page 190 and 191:
Thumb Instruction Details A6.7.69 S
- Page 192 and 193:
Thumb Instruction Details A6.7.71 T
- Page 194 and 195:
Thumb Instruction Details Operation
- Page 196 and 197:
Thumb Instruction Details A6.7.74 U
- Page 198 and 199:
Thumb Instruction Details A6.7.76 W
- Page 200 and 201:
Thumb Instruction Details A6-200 Co
- Page 203 and 204:
Chapter B1 System Level Programmers
- Page 205 and 206:
B1.2 About the ARMv6-M memory mappe
- Page 207 and 208:
Mode Privilege Stack pointer Typica
- Page 209 and 210:
System Level Programmers’ Model
- Page 211 and 212:
B1.4 Registers System Level Program
- Page 213 and 214:
The IPSR System Level Programmers
- Page 215 and 216:
B1.4.4 The special-purpose CONTROL
- Page 217 and 218:
R[] - assignment form // ==========
- Page 219 and 220:
System Level Programmers’ Model H
- Page 221 and 222:
Note System Level Programmers’ Mo
- Page 223 and 224:
for (i=2, i= 2 && n = 16 then r = (
- Page 225 and 226:
The ARMv6-M architecture uses a ful
- Page 227 and 228:
Note • IRQ behavior also applies
- Page 229 and 230:
System Level Programmers’ Model I
- Page 231 and 232:
System Level Programmers’ Model p
- Page 233 and 234:
System Level Programmers’ Model I
- Page 235 and 236:
Note System Level Programmers’ Mo
- Page 237 and 238:
Fault Cause System Level Programmer
- Page 239 and 240:
Fault cause Occurrence Behavior VEC
- Page 241 and 242:
System Level Programmers’ Model W
- Page 243 and 244:
System Level Programmers’ Model
- Page 245 and 246:
Chapter B2 System Memory Model This
- Page 247 and 248:
B2.2 Declarations and support funct
- Page 249 and 250:
memattrs.innerattrs = '01'; memattr
- Page 251 and 252:
B2.3 Memory accesses System Memory
- Page 253 and 254:
case perms.ap of when '000' fault =
- Page 255 and 256:
B2.5 Barrier support for system cor
- Page 257 and 258:
Chapter B3 System Address Map This
- Page 259 and 260:
System Address Map See Chapter A2 A
- Page 261 and 262:
Note System Address Map This is dif
- Page 263 and 264:
B3.2.1 About the System Control Blo
- Page 265 and 266:
Table B3-5 shows the CPUID Base Reg
- Page 267 and 268:
Bits Type Name Function [21] - - Re
- Page 269 and 270:
Table B3-8 shows the AIRCR bit assi
- Page 271 and 272:
Bits Name Function System Address M
- Page 273 and 274:
Table B3-11 shows the SHPR2 bit ass
- Page 275 and 276:
B3.3 The system timer, SysTick Syst
- Page 277 and 278:
B3.3.3 SysTick Control and Status R
- Page 279 and 280:
Table B3-15 shows the SYST_RVR bit
- Page 281 and 282:
B3.4 Nested Vectored Interrupt Cont
- Page 283 and 284:
clearPend = ExceptionIN(INTNUM) ||
- Page 285 and 286:
B3.4.4 Interrupt Clear Enable Regis
- Page 287 and 288:
B3.4.6 Interrupt Clear-Pending Regi
- Page 289 and 290:
B3.5 Protected Memory System Archit
- Page 291 and 292:
if MPU_CTRL.HFNMIENA == '1' then UN
- Page 293 and 294:
B3.5.2 Register support for PMSAv6
- Page 295 and 296:
B3.5.4 MPU Control Register, MPU_CT
- Page 297 and 298:
Table B3-27 shows the MPU_RNR bit a
- Page 299 and 300:
Figure B3-22 shows the MPU_RASR bit
- Page 301 and 302:
The AP bits, AP[2:0], are used for
- Page 303 and 304:
Chapter B4 ARMv6-M System Instructi
- Page 305 and 306:
B4.2 ARMv6-M system instruction des
- Page 307 and 308:
Notes Privilege Any unprivileged co
- Page 309 and 310:
Exceptions None. Notes Privilege An
- Page 311 and 312: Exceptions None. Notes ARMv6-M Syst
- Page 313: Part C Debug Architecture
- Page 316 and 317: ARMv6-M Debug C1.1 Introduction to
- Page 318 and 319: ARMv6-M Debug C1.2 The Debug Access
- Page 320 and 321: ARMv6-M Debug C1.3 Overview of the
- Page 322 and 323: ARMv6-M Debug Figure C1-1 on page C
- Page 324 and 325: ARMv6-M Debug C1.5 Debug event beha
- Page 326 and 327: ARMv6-M Debug DHCSR write a C_HALT
- Page 328 and 329: ARMv6-M Debug C1.6 Debug register s
- Page 330 and 331: ARMv6-M Debug C1.6.2 Debug Fault St
- Page 332 and 333: ARMv6-M Debug 31 26 25 24 23 20 19
- Page 334 and 335: ARMv6-M Debug Bits Name Access Func
- Page 336 and 337: ARMv6-M Debug Table C1-12 shows the
- Page 338 and 339: ARMv6-M Debug Use of DCRSR and DCRD
- Page 340 and 341: ARMv6-M Debug The conditions for a
- Page 342 and 343: ARMv6-M Debug DWT_COMPx contains th
- Page 344 and 345: ARMv6-M Debug case DWT_FUNCTION[N].
- Page 346 and 347: ARMv6-M Debug Control register, DWT
- Page 348 and 349: ARMv6-M Debug Attributes See Table
- Page 350 and 351: ARMv6-M Debug Bits Name TYPE Functi
- Page 352 and 353: ARMv6-M Debug C1.8.2 BPU register s
- Page 354 and 355: ARMv6-M Debug Breakpoint Comparator
- Page 356 and 357: ARMv6-M Debug C1-356 Copyright © 2
- Page 359 and 360: Appendix A ARMv6-M CoreSight Infras
- Page 361: Address offset 0xFDC 0x00000000 PID
- Page 365 and 366: B.2 Obsolete features of the ARMv6-
- Page 367 and 368: Appendix C ARMv7-M Differences This
- Page 369 and 370: C.2 About the ARMv6-M and ARMv7-M a
- Page 371 and 372: C.4 Programmers’ model support AR
- Page 373 and 374: C.5 Memory model support ARMv7-M Di
- Page 375 and 376: C.6 System Control Space register s
- Page 377 and 378: C.7 Debug support ARMv7-M Differenc
- Page 379 and 380: Appendix D Legacy Instruction Mnemo
- Page 381 and 382: Pre-UAL Thumb syntax Equivalent UAL
- Page 383 and 384: Pre-UAL Thumb syntax Equivalent UAL
- Page 385 and 386: Appendix E Pseudocode Definition Th
- Page 387 and 388: Pseudocode Definition If there are
- Page 389 and 390: E.3 Data types This section describ
- Page 391 and 392: E.3.7 Lists Pseudocode Definition A
- Page 393 and 394: E.4 Expressions This section descri
- Page 395 and 396: E.5 Operators and built-in function
- Page 397 and 398: Pseudocode Definition Encoding diag
- Page 399 and 400: Unary plus, minus and absolute valu
- Page 401 and 402: E.6 Statements and program structur
- Page 403 and 404: elsif then ... else ... The
- Page 405 and 406: Procedure and function definitions
- Page 407 and 408: E.7.7 ConditionPassed() This functi
- Page 409 and 410: Appendix F Pseudocode Index This ap
- Page 411 and 412: Operator Meaning See // Introduces
- Page 413 and 414:
Operator Meaning See repeat ... unt
- Page 415 and 416:
ClearEventRegister() Clear the Even
- Page 417 and 418:
InstrAddressMatch() DWT comparator
- Page 419 and 420:
SCS_UpdateStatusRegs() On taking an
- Page 421 and 422:
Appendix G Register Index This appe
- Page 423 and 424:
G.2 Memory mapped system registers
- Page 425 and 426:
Glossary AAPCS Procedure Call Stand
- Page 427 and 428:
Glossary Cache miss Is a memory acc
- Page 429 and 430:
Glossary IMPLEMENTATION DEFINED Mea
- Page 431 and 432:
Glossary Pseudo-instruction UAL ass
- Page 433 and 434:
Glossary Should-Be-Zero fields (SBZ
- Page 435 and 436:
UNK/SBZP field UNKNOWN on reads, Sh