Page 2
This document is intended only to assist the reader in the use of the product. ARM Limited shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.
Preface About this book This book is for the Cortex-M0 processor. Product revision status The rnpn identifier indicates the revision status of the product described in this manual, where: Identifies the major revision of the product. Identifies the minor revision or modification status of the product.
Page 13
Denotes language keywords when used outside example code. monospace bold Additional reading This section lists publications by ARM and by third parties. for access to ARM documentation. http://infocenter.arm.com ARM publications This book contains information that is specific to the processor. See the following documents for other relevant information: •...
Page 14
Note A Cortex-M0 implementation can include a Debug Access Port (DAP). This DAP is defined in v5.1 of the ARM Debug interface specification, or in the errata document to Issue A of the ARM Debug Interface v5 Architecture Specification. •...
Preface Feedback ARM welcomes feedback on the processor and its documentation. Feedback on the processor If you have any comments or suggestions about this product, contact your supplier giving: • The product name. • The product revision or version. •...
Chapter 1 Introduction This chapter introduces the Cortex-M0 processor and its features. It contains the following sections: About the processor on page 1-2 • Features on page 1-3 • Interfaces on page 1-4 • Configurable options on page 1-5 •...
• The processes to sign off the integration and implementation of the design. The ARM product deliverables include reference scripts and information about using them to implement your design. Reference methodology documentation from your EDA tools vendor complements the IIM.
Page 24
The system bus of the processor implements AMBA-3 AHB-Lite. See the ARM AMBA 3 AHB-Lite Protocol Specification. Debug Access Port architecture The Debug Access Port (DAP) is an optional component, defined by v5.1 of the ARM Debug interface specification, see the ARM Debug Interface v5 Architecture Specification.
Functional Description About the functions The Cortex-M0 processor is a configurable, multistage, 32-bit RISC processor. It has an AMBA AHB-Lite interface and includes an NVIC component. It also has optional hardware debug functionality. The processor can execute Thumb code and is compatible with other Cortex-M profile processors.
For more information on: • DAP, see the ADI v5.1 version of the ARM Debug Interface v5, Architecture Specification • CoreSight DAP, see the ARM CoreSight Components Technical Reference Manual.
About the programmers model The ARMv6-M ARM provides a complete description of the programmers model. This chapter gives an overview of the Cortex-M0 programmers model that describes the implementation-defined options. It also contains the ARMv6-M Thumb instructions it uses and their cycle counts for the processor. In addition: •...
See the ARMv6-M Architecture Reference Manual for information about the modes of operation and execution. Note Other ARM architectures support the concept of privileged or unprivileged software execution. This processor does not support different privilege levels. Software execution is always privileged, meaning software can access all the features of the processor.
16-bit Thumb instructions from ARMv7-M excluding CBNZ • the 32-bit Thumb instructions Table 3-1 shows the Cortex-M0 instructions and their cycle counts. The cycle counts are based on a system with zero wait-states. Table 3-1 Cortex-M0 instruction summary Operation...
Page 38
Cortex-M profile processors. You can move software, including system level software, from the Cortex-M0 to other Cortex-M profile processors. To ensure a smooth transition, ARM recommends that code designed to operate on other Cortex-M profile processor architectures obey the following rules and configure the Configuration Control Register (CCR) appropriately: •...
If this is done, the highest priority interrupt is jitter-free. See the documentation supplied by the processor implementer for more information. To reduce interrupt latency and jitter, the Cortex-M0 processor implements both interrupt late-arrival and interrupt tail-chaining mechanisms, as defined by the ARMv6-M architecture.
About the NVIC External interrupt signals connect to the NVIC, and the NVIC prioritizes the interrupts. Software can set the priority of each interrupt. The NVIC and the Cortex-M0 processor core are closely coupled, providing low latency interrupt processing and efficient processing of late arriving interrupts.
The processor implementation can be partitioned to place the debug components in a separate power domain from the processor core and NVIC. When debug is implemented, ARM recommend that a debugger identifies and connects to the debug components using the CoreSight debug infrastructure.
Page 53
A debugger cannot rely on the Cortex-M0 ROM table being the first ROM table encountered. One or more system ROM tables are required between the access port and the Cortex-M0 ROM table if other CoreSight components are in the system, or if the implementation is uniquely identifiable.
Component ID1 0x00000010 Component ID2 0x00000005 Component ID3 0x000000B1 Table 6-2 shows the CoreSight components that the Cortex-M0 ROM table points to. The values depend on the implemented debug configuration. Table 6-2 Cortex-M0 ROM table components Component Value Description See System Control Space on page 6-5...
SCS CoreSight identification Table 6-3 shows the SCS CoreSight identification registers and values for debugger detection. Final debugger identification of the Cortex-M0 processor is through the CPUID register in the SCS, see CPUID Register on page 4-4. Table 6-3 SCS identification values...
Debug 6.1.3 Data watchpoint unit The Cortex-M0 DWT implementation provides zero, one or two watchpoint register sets. A processor configured with zero watchpoint implements no watchpoint functionality and the ROM table shows that no DWT is implemented. DWT functionality The processor watchpoints implement both data address and PC based watchpoint functionality, a PC sampling register, and support comparator address masking, as described in the ARMv6-M ARM.
DWT Program Counter Sample Register (DWT_PCSR). This register permits a debugger to periodically sample the PC without halting the processor. This provides coarse grained profiling. See the ARMv6-M ARM for more information. The Cortex-M0 DWT_PCSR records both instructions that pass their condition codes and those that fail. 6.1.4...
Description DFSR Debug Fault Status Register in the ARMv6-M ARM DHCSR Debug Halting Control and Status Register in the ARMv6-M ARM DCRSR Debug Core Register Selector Register in the ARMv6-M ARM DCRDR Debug Core Register Data Register in the ARMv6-M ARM...
Page 63
A family of protocol specifications that describe a strategy for the interconnect. AMBA is the ARM open standard for on-chip buses. It is an on-chip bus specification that details a strategy for the interconnection and management of functional blocks that make up a System-on-Chip (SoC).
Page 65
The ARM architecture supports byte-invariant systems in ARMv6 and later versions. A core is that part of a processor that contains the ALU, the datapath, the...
Page 67
JTAG boundary-scan architecture. The mandatory terminals are TDI, TDO, TMS, and TCK. The optional terminal is TRST. A halfword that specifies an operation for an ARM processor in Thumb state to Thumb instruction perform. Thumb instructions must be halfword-aligned.
Need help?
Do you have a question about the Cortex-M0 and is the answer not in the manual?
Questions and answers