arm에서 제공하는 문서는 Generic User Guide와 Reference Manual 두가지 이며, 다행히(?) 다른 계열의 ARM 시리즈에 비해 Document가 비교적 가볍다. 따라서 시간이 된다면 한번 정도는 정독 해두어도 충분히 값어치가 있는 문서라고 할 수 있다.
1. Introduction 1.1. About the Cortex-M3 processor and core peripherals
1.1.1. System-level interface 1.1.2. Optional integrated configurable debug 1.1.3. Cortex-M3 processor features and benefits summary 1.1.4. Cortex-M3 core peripherals
2. The Cortex-M3 Processor 2.1. Programmers model
2.1.1. Processor mode and privilege levels for software execution 2.1.2. Stacks 2.1.3. Core registers 2.1.4. Exceptions and interrupts 2.1.5. Data types 2.1.6. The Cortex Microcontroller Software Interface Standard
2.2. Memory model
2.2.1. Memory regions, types and attributes 2.2.2. Memory system ordering of memory accesses 2.2.3. Behavior of memory accesses 2.2.4. Software ordering of memory accesses 2.2.5. Optional bit-banding 2.2.6. Memory endianness 2.2.7. Synchronization primitives 2.2.8. Programming hints for the synchronization primitives
4. Cortex-M3 Peripherals 4.1. About the Cortex-M3 peripherals 4.2. Nested Vectored Interrupt Controller
4.2.1. Accessing the Cortex-M3 NVIC registers using CMSIS 4.2.2. Interrupt Set-enable Registers 4.2.3. Interrupt Clear-enable Registers 4.2.4. Interrupt Set-pending Registers 4.2.5. Interrupt Clear-pending Registers 4.2.6. Interrupt Active Bit Registers 4.2.7. Interrupt Priority Registers 4.2.8. Software Trigger Interrupt Register 4.2.9. Level-sensitive and pulse interrupts 4.2.10. NVIC usage hints and tips
4.3. System control block
4.3.1. Auxiliary Control Register 4.3.2. CPUID Base Register 4.3.3. Interrupt Control and State Register 4.3.4. Vector Table Offset Register 4.3.5. Application Interrupt and Reset Control Register 4.3.6. System Control Register 4.3.7. Configuration and Control Register 4.3.8. System Handler Priority Registers 4.3.9. System Handler Control and State Register 4.3.10. Configurable Fault Status Register 4.3.11. HardFault Status Register 4.3.12. MemManage Fault Address Register 4.3.13. BusFault Address Register 4.3.14. Auxiliary Fault Status Register 4.3.15. System control block usage hints and tips
4.4. System timer, SysTick
4.4.1. SysTick Control and Status Register 4.4.2. SysTick Reload Value Register 4.4.3. SysTick Current Value Register 4.4.4. SysTick Calibration Value Register 4.4.5. SysTick usage hints and tips
4.5. Optional Memory Protection Unit
4.5.1. MPU Type Register 4.5.2. MPU Control Register 4.5.3. MPU Region Number Register 4.5.4. MPU Region Base Address Register 4.5.5. MPU Region Attribute and Size Register 4.5.6. MPU access permission attributes 4.5.7. MPU mismatch 4.5.8. Updating an MPU region 4.5.9. MPU usage hints and tips
A. Cortex-M3 Options A.1. Cortex-M3 implementation options
1. Introduction 1.1. About the processor 1.2. Features 1.3. Interfaces 1.4. Configurable options 1.5. Product documentation
1.5.1. Documentation 1.5.2. Design Flow 1.5.3. Architecture and protocol information
1.6. Product revisions
1.6.1. Differences in functionality between r0p0 and r1p0 1.6.2. Differences in functionality between r1p0 and r1p1 1.6.3. Differences in functionality between r1p1 and r2p0 1.6.4. Differences in functionality between r2p0 and r2p1
2. Functional Description 2.1. About the functions 2.2. Interfaces
2.2.1. Bus interfaces 2.2.2. ETM interface 2.2.3. AHB Trace Macrocell interface 2.2.4. Debug Port AHB-AP interface
3. Programmers Model 3.1. About the programmers model 3.2. Modes of operation and execution
3.2.1. Operating modes 3.2.2. Operating states 3.2.3. Privileged access and user access
3.3. Instruction set summary
3.3.1. Cortex-M3 instructions 3.3.2. Load/store timings 3.3.3. Binary compatibility with other Cortex processors
3.4. System address map
3.4.1. Private peripheral bus 3.4.2. Unaligned accesses that cross regions