C1 ARMv7-M Debug

C1.1 Introduction to ARMv7-M debug

This section describes the debug architecture for the ARMv7-M architecture profile. This includes several debug features that are supported only in the M profile.

Debug support is a key element of the ARM architecture. ARMv7-M supports a range of invasive and non-invasive debug mechanisms.

Invasive debug mechanisms are:

• The ability to halt the processor, for example at a breakpoint. This provides a run-stop debug model.

• Debug code using the DebugMonitor exception. This provides less intrusive debug than halting the processor.

Non-invasive debug techniques are:

• Application trace by writing to the Instrumentation Trace Macrocell (ITM), causing a very low level of intrusion.

• Non-intrusive program trace and profiling.

Debug software normally accesses the debug features of the processor using the DAP, see The Debug Access Port on page C1-682. This provides access to debug resources when the processor is running, halted, or held in reset. When a processor is halted, it is in Debug state. When the processor is not halted, it is in Non-Debug state.

The ARMv7-M debug architecture supports the following features:

• High-level trace using the ITM.

• Profiling a variety of system events, including associated timing information. This can include monitoring processor clock counts associated with interrupt and sleep functions.

• PC sampling and event counts associated with load and store operations, instruction folding, and performance statistics based on cycles-per-instruction (CPI) counts.

• Data tracing.

• Instruction trace, using an Embedded Trace Macrocell (ETM).

In the ARMv7-M system address map, debug resources are in the Private Peripheral Bus (PPB) region. Except for the resources in the System Control Space (SCS), each debug component occupies a fixed 4KB address region. The resources are:

• Debug resources in the SCS:

--- The Debug Control Block (DCB).

--- Debug controls in the System Control Block (SCB).

• Debug components:

--- The Instrumentation Trace Macrocell (ITM), for profiling software. This uses non-blocking register accesses, with a fixed low-intrusion overhead, and can be added to a Real-Time Operating System (RTOS), application, or exception handler. If necessary, product code can retain the register access instructions, avoiding probe effects.

--- The Debug Watchpoint and Trace (DWT) unit. This provides watchpoint support, program counter

sampling for performance monitoring, and embedded trace trigger control.

--- The Flash Patch and Breakpoint (FPB) unit. This unit can remap sections of ROM, typically Flash

memory, to regions of RAM, and can set breakpoints on code in ROM. This unit can be used for debug,

and to provide a code or data patch to an application that requires a field update to a product ROM.

--- The Embedded Trace Macrocell (ETM). This provides instruction tracing.

--- The Trace Port Interface Unit (TPIU). This provides the external interface for the ITM, DWT, and

ETM.

• The ROM table. A table of entries providing a mechanism to identify the debug infrastructure supported by the implementation.

Note: An implementation might not include all the listed debug features, see Debug support in ARMv7-M on page C1-679.

a. Might be implemented as a shared resource, in which case this region of the memory map is reserved.

Appendix D4 Debug ITM and DWT Packet Protocol describes the protocol used for ITM and DWT output, and the ETM Architecture Specification describes the protocol used for ETM output.

A debug implementation that outputs ITM, DWT, or ETM data requires a trace sink, such as a TPIU, to which it exports the trace data from the device, providing one or more of data trace, instruction trace, and profiling. A TPIU can be either the ARMv7-M TPIU implementation shown in Table C1-1, or an external system resource, usually a CoreSight TPIU. For more information about the CoreSight TPIU see the ARM® CoreSight™ SoC-400 Technical Reference Manual.

Many debug components are optional, and the debug configuration of an implementation is IMPLEMENTATION DEFINED. Debug support in ARMv7-M describes how software can determine which debug features are implemented.

相关推荐
项目題供诗1 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞2 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天3 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
芯岭技术4 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
小龙报5 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_110112 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋14 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
进击的小头16 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
宵时待雨20 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
JJRainbow21 小时前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程