ARM Cortex-M7与Cortex-M33微控制器中DebugMonitor异常机制的深入解析与远程调试实践

I. 引言:实时系统调试的挑战与DebugMonitor的架构定位1.1 传统侵入式调试(Halting Debug)的局限性嵌入式系统开发人员长期以来依赖的核心调试方法是中止式调试(Halting Debug)。在这一模式下,当处理器遇到调试事件(例如硬件断点或观察点)时,通过设置调试暂停和控制状态寄存器(DHCSR)中的特定位,中央处理单元(CPU)会进入完全中止(Halt)状态¹。这种...

继续阅读 »

如何实现MCU更可靠的系统启动

介绍稳定可靠的启动是嵌入式系统设计的一个重要方面。本文档介绍了如何通过使用MCU的看门狗定时器、芯片内部的异常处理机制来实现更可靠的系统启动。MCU的启动过程MCU的启动过程是指MCU上电后,系统从复位状态到进入用户应用程序的过程。这个过程通常包括以下几个步骤:上电复位:MCU上电后,首先会进入复位状态,所有的寄存器和外设都被初始化为默认值。SRAM ECC初始化:在复位状态下,MCU会对S...

继续阅读 »

深入理解调试访问端口(DAP):从ARM核心到混合设计

在嵌入式系统开发中,调试是一个不可或缺的环节。调试访问端口(DAP)作为连接开发者与硬件的桥梁,其重要性不言而喻。本文将基于SEGGER Wiki上的资料,深入探讨DAP的概念、组成部分以及其在不同架构中的应用。DAP概述调试访问端口(DAP)是指DP(Debug Port)和所有连接到DP的AP(Access Port)的集合,它描述了整个调试层次结构。DAP最初是作为一项标准设计的,旨在...

继续阅读 »

SAR ADC多通道采样电路设计注意事项

现在 MCU 中对于 ADC 通道的需求越来越高,而 MCU 受成本限制往往不会放多个 ADC 模块,普遍都是采用多个通道分时复用 ADC 转换核心的方式实现多通道的采样。上图所示是云途 YTM32B1ME0 产品的 ADC 框图,可以看到 ADC 采用 SAR 结构的转换核心,核心外部通过一个 MUX 实现多个通道的选择。对于 SAR 结构的 ADC,采样保持电路是一个非常重要的组成部分,...

继续阅读 »

HardFault调试

本篇应用笔记主要描述Cortex-M系列MCU Hard Fault中断的调试方法。笔记中会分析Hard Fault中断产生的原因以及如何依据Hard Fault中断信息定位软件中的问题。Hard Fault简介Hard Fault 是Cortex-M系列MCU中最为常见的一种故障类中断,Hard Fault属于不可屏蔽中断,并且中断优先级固定为-1,在软件运行过程中如果产生了CPU无法正常...

继续阅读 »