【ARM Cortex-M 系列 2.3 -- Cortex-M7 Debug event 详细介绍】


请阅读【嵌入式开发学习必备专栏】


文章目录

    • Cortex-M7 Debug event
      • Debug events

Cortex-M7 Debug event

在ARM Cortex-M7架构中,调试事件(Debug Event)是由于调试原因而触发的事件。一个调试事件会导致以下几种情况之一发生:

  1. 进入调试状态:如果启用了停滞调试(Halting Debug),一个调试事件会使处理器在调试状态下停滞。通过将DHCSR.C_DEBUGEN位设置为1来启用停滞调试。一个导致进入调试状态的调试事件会将DHCSR.C_HALT设置为1。在这里插入图片描述

  2. DebugMonitor异常:如果停滞调试被禁用且 DebugMonitor 异常被启用,当 DebugMonitor 异常的组优先级大于当前执行优先级时,一个调试事件会导致DebugMonitor异常。停滞调试被禁用是通过将DHCSR.C_DEBUGEN位设置为0或通过调试认证接口禁用,在这里插入图片描述
    而 DebugMonitor 异常被启用是通过将DEMCR.MON_EN位设置为1。在这里插入图片描述

MON_EN, bit[16] Enable the DebugMonitor exception:

  • 0 DebugMonitor exception disabled.
  • 1 DebugMonitor exception enabled.

如果DebugMonitor组优先级小于或等于当前执行优先级:

  • 处理器会将由执行BKPT指令生成的断点调试事件升级为HardFault。
  • 处理器升级由FPB生成的断点为HardFault,或忽略FPB断点,这是由具体实现定义的。然而,处理器只有在受断点影响的指令显示其架构行为时才能忽略FPB断点。
  • 处理器忽略其他调试事件。这意味着它忽略看点(Watchpoints)和外部调试请求。
  1. HardFault异常:如果停滞调试和监视器都被禁用,一个断点调试事件会升级为HardFault,并且处理器忽略其他调试事件。
  2. 在NMI或HardFault异常处理程序中发生断点时:如果在NMI或HardFault异常处理程序中断点发生时停滞调试被禁用,系统会因不可恢复的错误(Unrecoverable exception)而锁定。断点可能是由BKPT指令产生或由FPB生成的。
  3. FPB在DHCSR.C_DEBUGEN设置为0且DEMCR.MON_EN设置为0时,是否生成断点调试事件是由具体实现定义的。
  4. 导致HardFault或锁定的断点调试事件被视为不可恢复。

在ARM Cortex-M7架构中关于调试事件行为,特别是关于HardFault和锁定(Lockup)情况的触发机制,主要涉及当处理器在以下情况下执行BKPT(断点)指令时:

  • 因为禁止停滞而不设置DHCSR.C_HALT
  • 因为DebugMonitor被禁用或处理器未在比DebugMonitor优先级低的优先级上执行,而不设置DEMCR.MON_PEND

处理器的DFSR(Debug Fault Status Register,调试故障状态寄存器)包含每个调试事件的状态位。当一个调试事件导致处理器停滞或生成异常时,这些位被设置为1,并且之后通过写1来清除(write-one-to-clear)。是否在事件被忽略或导致锁定时更新这些位是由具体实现定义的。

Debug events

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

部署管理征信链码

一 . 链码准备 需要删除上面后面标记的文件,之后拖入 二. 打包链码 注意需要先启动链 打包测试链码 export FABRIC_CFG_PATH${PWD}/config peer lifecycle chaincode package ./chaincode/chaincode_basic.tar.gz --path ./chaincode/credit_chaincode --lang n…

vue3.0(五) reactive全家桶

文章目录 1 reactive1.1 reactive的应用1.2 reactive的特点1.3 reactive的注意1.4 reactive的局限性 2 toRefs3 isReactive4 shallowReactive5 readonly5.1 readonly 详细信息5.2 readonly函数创建一个只读的响应式对象5.3 如何修改嵌套在只读响应式对象中的对象? 6 isReadonl…

考研数学|李林《880》做不动,怎么办!?看这一篇!

在考研数学的备考过程中,遇到难题是很常见的情况,尤其是当你尝试解决李林880习题集中的问题时。他以其难度和深度著称,旨在帮助考生深入理解数学分析的复杂概念。 如果你在解题过程中感到困难,这并不是你个人的问题,而…

《无畏契约》游戏画面出现“撕裂感“,你清楚背后的原理吗?

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

安全风险 - 如何解决 setAccessible(true) 带来的安全风险?

可能每款成熟的金融app上架前都会经过层层安全检测才能执行上架,所以我隔三差五就能看到安全检测报告中提到的问题,根据问题的不同级别,处理的优先级也有所不同,此次讲的主要是一个 “轻度问题” ,个人认为属于那种可改…

[译文] 恶意代码分析:2.LNK文件伪装成证书传播RokRAT恶意软件(含无文件攻击)

这是作者新开的一个专栏,主要翻译国外知名安全厂商的技术报告和安全技术,了解它们的前沿技术,学习它们威胁溯源和恶意代码分析的方法,希望对您有所帮助。当然,由于作者英语有限,会借助LLM进行校验和润色&am…

idea控制台日志控制

1.清除控制台log日志 测试的时候,控制台打印的日志比较多,速度有点慢而且不利于查看运行结果,所以接下来我们把这个日志处理下: 取消初始化spring日志打印,resources目录下添加logback.xml,名称固定,内容如…

Transformer+Classification学习笔记

论文名称:An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale [2112.11010] MPViT: Multi-Path Vision Transformer for Dense Prediction (arxiv.org) 参考博客与视频: Vision Transformer 超详细解读 (原理分析代码解读) …

[动画详解]LeetCode151.翻转字符串里的单词

💖💖💖欢迎来到我的博客,我是anmory💖💖💖 又和大家见面了 欢迎来到动画详解LeetCode算法系列 用通俗易懂的动画让算法题不再神秘 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成…

589.N叉树的前序遍历

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

解决el-upload组件上传文件403 Forbidden的问题

话不多说,上错误。网络显示: 控制台显示: 并且后端也没接收到任何的请求。 只需要把前端中的组件: action的路径修改为: 也就是不写前面的localhost,而是拼接上发送请求拼接的‘api’即可 可以看到&#x…

架构每日一学 6:作为架构师,你必须学会寻找商业模式

本文首发于公众平台:腐烂的橘子 在前面的文章中,我们已经讲了架构师的两条生存法则,第一条是有且仅有一个目标,感兴趣的可以看一下原文: 架构每日一学 2:架构师六个生存法则之一:架构必须有且仅…

【LLM第五篇】名词解释:prompt

1.是什么 提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解…

教育型内容的制胜秘诀:Kompas.ai如何结合知识与营销

在数字化营销的浪潮中,教育型内容已经成为品牌建立权威性和提供价值的重要手段。通过分享专业知识和见解,品牌不仅能够吸引目标受众,还能够在潜在客户心中建立起专业和可信赖的形象。本文将深入分析教育型内容的重要性,详细介绍Ko…

sklearn之k近邻算法——以鸢尾花分类为例

文章目录 k近邻算法算法原理k值的选取特征数据的归一化距离的度量分类原则的制定鸢尾花分类 k近邻算法 k近邻算法是经典的监督学习算法,我们这里主要介绍k近邻算法的基本内容和如何应用 算法原理 k近邻算法的基本原理其实很简单 首先k近邻算法是一个分类算法&am…

x264 帧类型代价计算原理:slicetype_slice_cost 函数分析

x264 x264 是一个开源的视频编码库,它实现了H.264/AVC标准。H.264是一种广泛使用的压缩标准,用于视频流、视频下载、蓝光光盘以及许多其他形式的数字视频分发。x264 以其高压缩效率和良好的视频质量而著称,是许多视频编辑软件和视频播放器的默认编解码器。 以下是关于 x26…

软件工程期末复习(6)需求分析的任务

需求分析 需求分析的任务 “建造一个软件系统的最困难的部分是决定要建造什么……没有别的工作在做错时会如此影响最终系统,没有别的工作比以后矫正更困难。” —— Fred Brooks 需求难以建立的原因&#x…

半小时搞懂STM32面经知识——RCC

1. 时钟的概念 时钟是由电路产生的具有周期性的脉冲信号,相当于单片机的心脏,要想使用单片机的外设必须开启时钟。 时钟对单片机有什么作用? 1. 驱动外设的本质是寄存器,而寄存器需要时钟触发才能改写值。 2. 时钟频率越高&#…

基于Docker的JMeter分布式压测

一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。JMeter使用Java RMI[远程方法调用]来与分布式网络中的对象进行交互。JMeter主站…

前端已死? Bootstrap--JS-jQuery

目录 Bootstrap--JS-jQuery 1 jQuery基础 介绍 基础语法: $(selector).action() 1.1 安装jQuery 地址 基础语法: $(selector).action() 2 jQuery事件 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 jQuery常用事件 2.1 鼠标事件…