STM32 jtag调试程序时程序跑飞

发布者:忠正最新更新时间:2018-05-04 来源: eefocus关键字:STM32  jtag  调试程序  程序跑飞 手机看文章 扫描二维码
随时随地手机看文章

开发环境:keil MDK V5.10

操作系统:windows 7(32位)

目标硬件:STM32F103C8

问题描述:在使用jtag对某软件进行调试的时候,KEIL可以正常的进行软件下载,一旦使用F5全速运行时,立即发现程序跑飞了,暂停后汇编代码显示“MOVS R0 R0”。程序跑飞的时候可以看到目标设备程序执行过程正常(灯正常闪烁,串口调试信息正常输出)。


问题原因:芯片的JTAG引脚被复用,在程序初始化阶段将JTAG引脚remap为了普通的IO引脚导致。


PS:在使用JTAG进行程序调试的时候,如果程序中开了看门狗,调试程序进行了单步调试的情况也可能导致JTAG无法正常使用,因为目标设备的看门狗不能因为单步执行而暂停,从而导致在JTAG在线调试的单步执行或者暂停执行的情况下,目标设备由于看门狗不能暂停,已经导致硬件复位,从而脱离JTAG的调试模式,导致看起来程序跑飞。


关键字:STM32  jtag  调试程序  程序跑飞 引用地址:STM32 jtag调试程序时程序跑飞

上一篇:嵌入式调试ARM程序跑飞现象的跟踪
下一篇:STM32+ucosll程序跑飞问题解决办法

推荐阅读最新更新时间:2024-03-16 16:01

STM32学习笔记:FSMC详述
FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用一种新型的 存储器 扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量 静态存储器 的扩展。 使用FSMC控制器后,可以把FSMC提供的FSMC_A 作为地址线,而把FSMC提供的FSMC_D 作为数据总线。 (1)当存储数据设为8位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b) 地址各位对应FSMC_A ,数据位对应FSMC_D (2)当存储数据设为16位时,(FSM
[单片机]
<font color='red'>STM32</font>学习笔记:FSMC详述
基于STM32控制直流电机加减速正反转proteus仿真设计
本设计: 基于STM32控制直流电机加减速正反转proteus仿真设计(程序+仿真+设计报告+讲解视频) 仿真:proteus8.9 程序编译器:keil 5 编程语言:C语言 编号C0011 功能说明: 本设计由STM32F103、L298N电机驱动电路、按键电路组成。 1.通过按键可以控制电机,正转、反转、加速、减速、停止。 2.档位分4档,并且可以通过按键顺序正转、反转、加速、减速、停止。 3.档位可以代码自定义。 附赠相关论文,根据实物写的,与仿真功能基本一致。也有与仿真一致的设计报告。 仿真图(提供源文件): 源程序(提供源文件): 以下为部分程序: int main(void) { delay_init(
[单片机]
基于<font color='red'>STM32</font>控制直流电机加减速正反转proteus仿真设计
STM32使用SWD进行调试
硬件环境: stm32f103vet6,JLink_v8 软件环境: Keil_MDK 调试过程: 首先是要连接线路,使用JLink_v8 需要连接5跟线,分别是VCC,nJTRST,SWDIO,SWCLK;但是nJTRST可以不连接,但是在设置的时候会有所不同,要在设置界面里把RESET方式选择成自动,或者其他的,但是一定不能选择硬件复位,因为这个脚没有连接无法使用硬件复位,但是在仿真的时候也可以产生复位,那是因为可以模拟软件复位。所以这个脚可以不用连接。 下面是连接图: 下面是在MDK里设置的图片: ================================================
[单片机]
<font color='red'>STM32</font>使用SWD进行调试
基于STM32的数字示波器设计与实现
0 引言 随着集成电路的发展和数字信号处理技术的采用,数字示波器已成为集显示、测量、运算、分析、记录等各种功能于一体的智能化测量仪器。数字示波器在性能上也逐渐超越模拟示波器,并有取而代之的趋势。与模拟示波器相比,数字示波器不仅具有可存储波形、体积小、功耗低,使用方便等优点,而且还具有强大的信号实时处理分析功能。因此,数字示波器的使用越来越广泛。目前我国国内自主研发的高性能数字示波器还是比较少,广泛使用的仍是国外产品。因此,有必要对高性能数字示波器进行广泛和深入研究。本文通过采用高速高性能器件,设计了一实时采样率为60 Msa/s的宽带数字示波器。 1 数字示波器的性能参数设计 数字存储示波器的指标很多,包括采样率、带宽、灵敏
[测试测量]
基于<font color='red'>STM32</font>的数字示波器设计与实现
STM32 RTC时钟源LSE
一开始,所有实验都是在神舟板上去完成,根本就没有发现RTC的问题。直到我们自己画板来后调试时,才发现STM32 RTC的外部时钟源存在问题。 这也算是STM32的一个鸡肋,对于LSE外部晶振太过于苛刻,手册上要求使用6pf,这个规格的晶振市场上太少,鱼龙混杂,中招的高手菜鸟不在少数。我们自己的板也是如此,几经波折,反反复复尝试使用不同的规格的晶振,替换外部的电容,电阻都没有能让这个32.768K的LSE起振。但是又需要有RTC来提供时间,考虑的方法主要有2种,第一采用外部RTC时钟芯片,如DS1302。第二是使用内部其它的时钟源来提供RTC时钟。毫无疑问,目前板已经制好,添加时钟芯片肯定造成板上布局更改,还得重新打板,这里采用了第二
[单片机]
<font color='red'>STM32</font> RTC时钟源LSE
stm32 在IAR的第一个程序 点亮led
//使用前要建立好了工程的模板,这个可以参考我的stm32工程模板的建立一文 1:工程文件加入我们的led驱动主要是由led.h和led.c组成,再根据这个写自己的main 2: led.c的编写 #include led.h //这个 是led.h这个头文件 void led_gpio_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);//这个的配置可以查看原理图我的是 GPIOE GPIO_InitStructure.GPIO_P
[单片机]
单片机意外死机,意外复位,程序
单片机意外死机,意外复位,程序跑飞。原因有以下几种。 一、数组越界。 特别是使用指针操作的,如果有越界的情况,后果将很严重。 二、电源不稳定。 可以用示波器监测检查 三、Stack 栈溢出 Stack是为了程序运行过程中临时保存所需数据而在内存里分配的一小块空间。保存的数据类型一般情况下包括以下几种: 1. 函数中声明的局部变量以及参数 2. 函数返回值 3. 中断时CPU 寄存器值 4. 函数运行后返回的地址 因此,编译器设置里,一定要预留足够大的栈空间。 IAR里面的设置方法:
[单片机]
stm32gpio的工作模式
1、推挽输出 可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补 信号 的控制,总是在一个三极管导通的时候另一个截止。高低电平由 IC 的 电源 决定。 推挽电路是两个 参数 相同的三极管或 MOSFET ,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌 电流 ,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 2、开漏输出 输出端相当于三极管的集电极,要得到高电平状态需要上拉 电阻 才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。 3、浮空输入 对于浮空输
[单片机]
stm32gpio的工作模式
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved