C1 ARMv7-M Debug

2023-11-14

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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C1 ARMv7-M Debug 的相关文章

随机推荐

  • Lua文件夹及文件操作(清空文件夹下所有文件、创建多级文件夹、删除文件夹所有文件等)

    在不适用lfs库的情况下对文件和文件夹进行简单的操作 引用 require FileLib 调用 fileLib createFolder path 功能 1 创建文件夹 2 连续创建文件夹 3 删除文件夹所有内容 4 删除空文件夹 文件
  • 蓝桥杯决赛之行的感悟

    这是一篇瞎写的感悟 想到哪写到哪 从去年11月份开始参加学校的训练团队 到现在5月份 也是半年多一个月了 期间就参加了比较水的蓝桥杯 另外还有就是百度之星 蓝桥杯确实跟大伙说的差不多 含金量并不高 适合大众玩的 不适合黑客玩 省赛的话 一共
  • 使用Gradle自动化构建多类型apk包

    作者 Ezio Shiki 链接 http www zhihu com question 22842123 answer 55675046 来源 知乎 著作权归作者所有 转载请联系作者获得授权 对于多种类型的apk包构建 通常有以下需求 各
  • 思维导图软件 XMind 2022

    XMind是一个高级且易于使用的思维导图工具 它为您的想法提供了可视化支持 因此您可以更轻松地组织任务或与团队一起参加头脑风暴会议 使用这个易于使用的应用程序创建头脑风暴会议的思维导图 该应用程序包装在具有直观选项的用户友好界面中 XMin
  • 在自动驾驶的领域里面如何玩仿真 【1】 概述和写在前面的一些话

    在自动驾驶的领域里面如何玩sil仿真 1 写在前面的一些话 停了两年 很久没登录CSDN了 之前野心勃勃开的题目随着自己进入一家初创公司开始后就没有时间和精力去更新了 发现这两三年有很多人喜欢这几个都不算太监 甚至头都没有写完 的文章 不少
  • UI设计新手指南之什么是UI设计?

    最直观的 只要用手机 打开界面就会接触到 UI 设计 UI 设计是什么 它是指对软件人机交互 操作逻辑 界面美观的整体设计 UI设计的目的是创造出简单 直观 易于使用的界面 为用户提供良好的体验 随着移动互联网的兴起 UI设计越来越受到重视
  • SPI总线verilog hdl实现(1)SPI通信

    SPI总线传输只需要4根线就能完成 这四根线的作用分别如下 SCK Serial Clock SCK是串行时钟线 作用是Master向Slave传输时钟信号 控制数据交换的时机和速率 MOSI Master Out Slave in 在SP
  • Matlab深度学习笔记——深度学习工具箱说明

    本文是Rasmus Berg Palm发布在Github上的Deep learning toolbox的说明文件 作者对这个工具箱进行了详细的介绍 原文链接 https github com rasmusbergpalm DeepLearn
  • CSS行高line-height默认值normal以及line-height与盒子的关系

  • FindBugs作为eclipse的插件的使用

    目录 1 FindBugs是干嘛的 2 Eclipse如何安装FindBugs插件 3 Eclipse中如何使用FindBugs插件 注 本篇主要是讲FindBugsEclipse插件的使用
  • java连接多个mysql,JAVA:MySql:太多连接

    I think that my application is cursed debug goes where it wants and I don t know why Line by line debugging seems to ana
  • 【GOF23设计模式】_状态模式_UML状态图_酒店系统房间状态_线程对象状态切换JAVA250

    来源 http www bjsxt com 一 S03E250 01 GOF23设计模式 状态模式 UML状态图 酒店系统房间状态 线程对象状态切换 package com test state public interface State
  • 如何高效学习一门新技术

    如何高效学习一门新技术 最近着手学习WCF 举步维艰 故阅读了大量关于学习新技术方法的网页 最终整理如下 一共大家参考 对于这个较大的话题 我们分两个部分介绍 学习新技术的10个建议 和 学习新技术的具体行动 学习新技术的10个建议 尽管我
  • Python视频处理(1)——视频分镜头提取+视频处理

    目录 一 导出帧图像 二 判定相似度 1 均值哈希判定相似度 2 基于直方图相似度 三 视频处理 利用ffmpeg 1 截取视频1分钟 2 视频格式转换 3 多媒体格式转换 4 视频方向处理 5 其他命令代码整理 一 导出帧图像 将视频以帧
  • 关于mysql取余和取整的函数

    MySQL中整除和取余函数分别为 1 整除函数 DIV 或者 双斜杠 使用方法 SELECT 10 DIV 3 返回结果为 3 SELECT 10 3 返回结果为 3 2 取余函数 MOD 或者 百分号 使用方法 SELECT MOD 10
  • loop设备模拟nvme设备

    加载 nvme loop内核模块 需要内核支持 或者自己编译 nvme loop 相关模块 sudo modprobe nvme loop 生成 loop 文件 dd if dev zero of path to nvme fs bs 1M
  • Jenkins ——The server rejected the connection

    启动agent时 报如下错误 信息 Protocol JNLP4 connect encountered an unexpected exception java util concurrent ExecutionException org
  • HTK语音识别中的决策树

    1 为什么需要决策树 我们在使用HTK进行语音识别模型训练的过程中 首先进行的是单音素 单个高斯的模型训练 抛开单个高斯不说 单音素模型本身有很大缺点 没有考虑到本音素前后音素的发音对本音素的影响 比如 同样是一个音素iy 如果它前面的音素
  • 你好,面试官-秋招面经C++持续更新

    C 指针和引用的区别 指针常量和常量指针的区别 sizeof 和 strlen 的区别 const关键字 static关键字 C 中struct和class的区别 new malloc和deete free的区别 宏定义和typedef区别
  • C1 ARMv7-M Debug

    C1 1 Introduction to ARMv7 M debug This section describes the debug architecture for the ARMv7 M architecture profile Th