【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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022-1990年 各省碳排放Co2数据集(含数据及参考文献)

碳排放是指人类活动产生的二氧化碳(CO2)等温室气体释放到大气中的过程。通过划分排放源的范围以避免重复计算的思想,由世界资源研究所在关于企业温室气体排放清单编制的指南中首次提出。城市碳排放核算边界界定借鉴该思想,可分为3…

物联网应用开发--STM32与新大陆云平台通信(云平台控制开发板上蜂鸣器、LED)

实现目标 1、掌握云平台执行器的创建 2、熟悉STM32 与ESP8266模块之间的通信 3、具体实现目标:(1)创建5个执行器:蜂鸣器,LED1,LED2,ED3,LED4;(2)执行器能对…

【C++】每日一题 17 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 可以使用回溯法来解决这个问题。首先定义一个映射关系将数字与字母对应起来…

Web开发三层架构

##Controller Service Dao(mapper) 软件设计:高内聚 低耦合 Controller 调用Service, Service调用 DAO 模块之间耦合 如果要从EmpServiceA切换到EmpServiceB,Controller代码也要修改 new EmpServiceB 分层接耦 容器中放EmpServiceA&am…

文本批量高效管理,一键删除前后第一行,轻松提升工作效率!

在信息爆炸的时代,文本处理成为我们日常生活和工作中不可或缺的一部分。然而,面对大量的文本数据,如何高效地进行批量管理,成为了许多人头疼的问题。今天,我们将向您介绍一种简单而高效的方法,让您轻松删除…

【UE5.1 角色练习】01-使用小白人蓝图控制商城角色移动

目录 效果 步骤 一、导入资源 二、控制角色移动 三、更换角色移动动作 效果 步骤 一、导入资源 新建一个工程,然后在虚幻商城中将角色动画的相关资源加入工程,这里使用的是“动画初学者内容包”和“MCO Mocap Basics” 将我们要控制的角色添加进…

搜索引擎的设计与实现(四)

目录 6 系统测试 6.1测试重要性 6.2测试用例 结 论 参 考 文 献 前面内容请移步 搜索引擎的设计与实现(三) 免费源代码&毕业设计论文 搜索引擎的设计与实现 6 系统测试 6.1测试重要性 该项目是在本地服务器上进行运行和调试,…

【从零开始学习Redis | 第十一篇】快速介绍Redis持久化策略

前言: Redis 作为一种快速、高效的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景。然而,由于其特性是基于内存的,一旦服务器进程退出,内存中的数据就会丢失。为了解决这一问题,Redis 提供了持久…

IT技术产品:开发者极为重要的思维习惯

1、特色内容预告 1、我用敏捷开发思维,提高工作效率。 2、我用代码批判思维,逐渐让自己的作品变得无可挑剔。 3、我是一个顶级程序员,是哪些重要的专业习惯,让我如此优秀? 2、可以免费获取到的IT资源 1、《软件工程&a…

【嵌入式模块芯片开发】ADXL345的优化精确测量和角度计算(中断单次测量、卡尔曼滤波)

【嵌入式模块芯片开发】ADXL345的优化精确测量和角度计算(中断单次测量、卡尔曼滤波) 文章目录 ADXL345的一般读取方式ADXL345的中断读取方式(单次测量)角度计算卡尔曼滤波优化后完整代码附录:压缩字符串、大小端格式…

计算机vcruntime140.dll找不到如何修复,分享5种靠谱的修复教程

当您在运行某个应用程序或游戏时遇到提示“找不到vcruntime140.dll”,这通常意味着系统中缺少了Visual C Redistributable for Visual Studio 2015或更高版本的一个重要组件。这个错误通常发生在运行某些程序时,系统无法找到所需的动态链接库文件。小编将…

手撸XXL-JOB(三)——本地定时任务管理平台

引言 在XXL-JOB中,有一个xxl-job-admin项目,这个就相当于定时任务的调度平台,我们参考XXL-JOB,也添加这么一个调度平台,由于篇幅有限,我们先实现一个本地的定时任务调度平台,至于如何调用远程的…

算法练习day8

反转字符串 代码随想录 0344.反转字符串 344. 反转字符串 - 力扣(LeetCode) (用时:0.05小时) 思路 这道题很简单也很经典。 字符串的反转方法有很多,我这里是用for循环通过数组长度和下标计算来交换。…

【小积累】@Qualifier注解

今天在看rabbitMQ的时候需要绑定交换机和队列,交换机和队列都已经注入到spring容器中,写了一个配置类,使用了bean注解注入的。所以这时候绑定的时候需要使用容器中的交换机和队列,必须要使用Qualifier去确定是容器中的哪个bean对象…

【Unity Shader入门精要 第7章】基础纹理补充内容:MipMap原理

1.纹理采样 我们对纹理采样进行显示的过程,可以理解为将屏幕上的一个像素(下文用像素表示)映射到纹理上的一个像素(下文用纹素表示),然后用纹理上的这个像素的颜色进行显示。 理想情况下,屏幕…

Optional用法

说明:Optional和Stream一样,是Java8引入的特性,本文介绍Optional的几个实际用法。Steam流使用,参考下面这篇文章: Stream流使用 使用 1.保证值存在 // 1.保证值存在,pageNumber,pageSizeInte…

HTTP基础概念和HTTP缓存技术

什么是HTTP HTTP是超文本传输协议,主要分为三个部分:超文本、传输、协议。 超文本是指:文字、图片、视频的混合体。传输是指:点与点之间的信息通信。协议是指:通信时的行为规范或约定 HTTP常见字段 字段名 解释 例…

图片标签 以及 常见的图片的格式

1.图片的基本使用 2.图片的常见格式 3.bmp格式

前端已死? Bootstrap--JS-jQuery

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

element-ui的表单中,输入框、级联选择器的长度设置

使用<el-col>控制输入框的长度 <el-form-item label"姓名" label-width"80px"><el-col :span"15"><el-input v-model"form.name" autocomplete"off"></el-input></el-col></el-form…