STM32F10xxx使用Cortex™-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。
SWJ调试端口(serial wire and JTAG)
STM32F10xxx内核集成了串行/JTAG调试接口(SWJ-DP)。这是标准的ARM CoreSight调试接口,包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。
● JTAG调试接口(JTAG-DP)为AHP-AP模块提供5针标准JTAG接口。
● 串行调试接口(SW-DP)为AHP-AP模块提供2针(时钟+数据)接口。
JTAG调试接口是默认的调试接口。
如果调试器想要切换到SW-DP,必须在TMS/TCK上输出一指定的JTAG序列(分别映射到SWDIO和SWCLK),该序列禁止JTAG-DP,并激活SW-DP。该方法可以只通过SWCLK和SWDIO两个引脚来激活SW-DP接口。
灵活的SWJ-DP脚分配
3个控制位用来配置SWJ-DP接口的引脚,这3个位在系统复位时复位。
● AFIO_MAPR(STM32F10xxx微控制器中的地址是0x40010004)
─ 读:APB,无等待状态
─ 写:APB,如果AHB-APB桥的写缓冲器满了,则一个等待状态位26:24=SWJ_CFG[2:0] 由软件置位和复位 这3位用来设置分配给SWJ调试接口的专用引脚数目,目的是在使用不同的调试接口时能释放尽可能多的引脚用作普通I/O口。 复位后的初始值是000(所有引脚都设置为JTAG-DP接口专用引脚),同时只能置位3个位中的一个(禁止同时设置一个以上的位)。
关键字:STM32 调试 Cortex™-M3内核
引用地址:
STM32调试支持
推荐阅读最新更新时间:2024-11-10 15:14
STM32的DAC输出驱动电压
目的 项目中的模块对输出电压的改变来控制功率、所以考虑用stm32内部的DAC来输出电压作为驱动。 源代码 #include dac.h void Dac1_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitType; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE ); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPI
[单片机]
在实际项目开发中keil的调试方法
一.在keilc的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置? 在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。 在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,为了随时观察它们的变化,可以启用view菜单下的Periodic Windows Update命令,让keilc自动周期刷新各个调试窗口。 二.在keilc的调试状态下,如何观察和修改变量? 在调试状态下,点击view菜单下的watch&call stack windows命令或对应的按钮,就会显示或隐藏起变量窗口。变量窗口包含有4个标签,即4个显示区
[单片机]
stm32之DMA彻底研究
在做实验之前,首先必须明白什么是DMA,DMA的作用又体现在哪里。 DMA,即直接内存存储,在一些数据的传输中,采用DMA方式,从而将CPU解放出来。 让CPU有足够的时间处理其他的事情。 stm32使用DMA的相关操作: 1、DMA的配置 要配置的有DMA传输通道选择,传输的成员和方向、普通模式还是循环模式等等。 void DMA_Configuration(void) { DMA_InitTypeDef DMA_InitStructure; //DMA设置: //设置DMA源:内存地址&串口数据寄存器地址 //方向:内存-- 外设 //每次传输位:8bit //传输大小DMA_BufferSize=SEN
[单片机]
开漏输出和推挽输出
概述 在STM32或者GD32中,普通的输出GPIO输出方式主要是开漏输出和推挽输出,下面我们开始讲解这2种模式的区别。 下图是GPIO内部的结构示意图。 在上图中,P-MOS带了一个⚪,说明是低电平导通。 上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。 模拟文件下载 https://download.csdn.net/download/qq_24312945/85250172 推挽输出 推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。 当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。 当输出低电平时
[单片机]
STM32内存映射
一、概述 STM32内存映射是STM32的架构的重要组成部分,不可或缺。 二、STM32内存映射图 1、内存映射图--摘自《CM3权威指南》 2、内存映射图--摘自《STM32F103x简要芯片手册》
[单片机]
stm32之GPIO_Remap_SWJ_Disable之后无法使用swd下载
说明:库文件版本:3.5.0 软件环境:iar for arm 在系统复位的时候默认是开启JTAG与swd的, 在点击下载后的2秒内按下复位键即可将程序下载进stm32 注意:在程序里边加入GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); 来彻底解除限制,或用写寄存器的方式,SWG_CFG 写入000
[单片机]
超越边沿触发 使用示波器触发进行调试
简介 示波器是电气工程师的基础仪器,但我经常发现有些工程师不能有效地使用其触发功能。触发常被认为非常复杂,现在存在这样一种趋势,即如果有任何问题,直接到实验室去求助专家来帮助设置触发。本文的目的在于帮助工程师了解触发的基本原理以及有效使用触发的策略。 什么是触发? 任何示波器的存储器都是有限的,因此所有示波器都必须使用触发。触发是示波器应该发现的用户感兴趣的事件。换句话说,它是用户想要在波形中寻找的东西。触发可以是一个事件(即波形中的问题),但不是所有的触发都是事件。触发实例包括边沿触发、毛刺信号触发和数字码型触发。 示波器必须使用触发的原因在于其存储器的容量有限。例如,Agilent90000系列示波
[测试测量]
STM32之五外部中断(下)
通过对外部中断理论的些许理解,这次我们利用两个按键key1和key2来控制led1和led2的亮灭,按key1进入key1的中断,控制对应的led亮灭,按key2进入key2的中断,控制相应的led的亮灭 同样,涉及到中断,我们要建立两个文件,exti.c及exti.h,首先来看看exti.c 用到中断,自然我们要用到stm32f10x_it.c函数,将中断响应函数放在里面,打开这个文件你会发现里面只是给出了部分中断函数,找来找去也没有我们需要的中断函数体,这时需要我们自己添加函数体,看下我添加的函数体: 但是这个函数名可不是随便起的,具体每个中断函数体的函数名怎么书写,我们可以打开startup_stm32f10x_hd.
[单片机]