6.ST LINK 下调试异常
☆1.无法进入main函数
(printf的影响)
***为什么有时候可以进入main函数,有什么进入不了main函数?
    <1> 因为C语言默认使用显示器作为标准输出的设备,所以如果想利用printf必须进行函数的输出重映射到串口。MDK下使用printf函数会导致程序无法进入main函数
 ,防止其进入半主机模式。使用特定代码,或者使用微库。但是依旧没用。      在清除所有断点后好用!!
☆2.调试过程中程序依然执行:
<1> 独立看门狗对调试的影响: 调试时关闭IWDG时,调试能正常进行。103芯片对看门狗的支持并不好,所以当进行调试时,最好关闭看门狗。
☆3.BOOT0 BOOT1对程序运行以及调试时的影响
      BOOT0 = 0 ,BOOT1 = X,程序从Flash进行启动,一般程序的要求都是从Flash(主闪存存储器进行启动)。  
      BOOT0 = 1 ,BOOT1 = 0 / 1  会使程序从 系统存储器或SRAM进行启动,可以用ST - LINK进行下载,但因为程序是下载到Flash中,所以无法正常运行!
    在DEBUG模式下,会直接全速运行而无法停止。
☆4. 使用ST-LINK V2下载 提示internal command error
(1).一般是因为STM32的SWDIO /SWCLK引脚虚焊。芯片引脚的虚焊可能会导致相关功能无法使用。
  (2).当操作stm32的内部Flash出现错误时,非正常退出调试模式也会出现 Internal command error.
    
☆5.程序单步执行正常,全速执行无法得到正确的结果:
        (1).软件延时时间不够,时序有问题。因为单步执行时,软件有足够的时间来完成相关操作。但是全速执行则不然,因为时序原因。
☆6.通过SWD方式下载出现 flash timeout,程序无法正常进行下载。
    
    一般出现此种情况的原因去除硬件-VDD引脚虚焊(..),可能是由于flash被锁。可以通过ISP方式清除flash解除。
    ☆但是程序无法正常通过ST LINK进行调试。
☆7.通过SWD方式下载,提示Flash Download failed!-cortex-M3
☆8.当使用IAP进行程序升级或者一般APP程序中,如若使能中断,一定要书写串口中断服务,否则会导致程序异常。跳转至启动文件 B . 指令处。
*********************************************************************************************************************************
**STM32--DBG调试支持**
*********************************************************************************************************************************
    1.概念:Cortex-M3内核的调制机制:内含硬件调试模块。支持两种调试机制:串行接口SWD(SWCLK/SWDIO)和JTAG接口(标准五针式)默认的调试接口,需切换。
  当内核停止时,内核的内部状态和系统的外部状态都是可以查询的。 当调试结束时,内核可以恢复运行状态,外设也可以恢复工作。
    (使用PB3/PB4引脚,需要进行释放!!)
    
    2.ITM 指令跟踪微单元 :支持类printf的调试手段来跟踪操作系统OS和应用事件。
    (可以根据不同的调试模块配置,实现复杂的调试功能,例如数据跟踪,系统调试)
    
    3.MCU调试模块
        <1>低功耗模式的调试支持,因为低功耗模式会关闭MCU时钟系统,如果想要进行硬件调试,需要特殊的操作支持。详见中文参考手册。
        
        <2>通过在主程序中加入断点,来实现对定时器、看门狗、bxCAN、I2C调试。对于定时器和看门狗,在产生断点时,计数器停止计数。
6.ST LINK 下调试异常的更多相关文章
- ST Link 调试问题总结
		
用过ST Link调试工具的同事都应该知道,ST Link是一个很不错的调试工具,它具有小并且功能齐全,价格便宜等特点,现在市场上普遍是下面这两种ST Link, 但如果用的比较多,会发现有时候会存在 ...
 - 【译】使用 Source Link 提高调试效率
		
有多少次你在调试器中追踪一个缺陷,通过代码,观察局部变量的值改变,当你碰壁--不是你所期待的值和你不能进入的方法,因为它来自类库或 .NET 框架本身:或者您设置了一个条件断点,等待检查某个值是如何设 ...
 - 编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]
		
前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过.迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题.其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题, ...
 - Effective Java 第三版——69. 仅在发生异常的条件下使用异常
		
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
 - OneOS下调试支持的几种方式
		
方法论 当我们遇到问题,应该怎么办?这不仅应用于程序开发,也是我们在生活中遇到问题的时候,应该想的事儿,怎么办!趁着此次机会,我好好想了七秒钟. 先问是不是问题,如果不是就不用解决了 如果确实是问题, ...
 - sqlserver下调试sql语句
		
现在版本的sqlServer已经支持调试功能了,但是在使用的时候用到的却很少(毕竟print习惯了..) 这里做一个笔记,简单的说明一下在sqlserver下调试的方法: declare @i int ...
 - javascripy的innerHTML在IE8下的异常
		
使用jQuery的datatable插件的时候发现,IE8下显示异常,仔细调查一番,发现是浏览器对innerHTML的差异导致的. 实例代码: var nTd = document.createEle ...
 - VS2005--设置Release模式下调试
		
今天初略看了下,所谓Release和Debug只是大家和编译器约定的一些生成规则而已,所以调试是无所谓Release和Debug的,只是由于生成的规则不同,可能Release的一些调试结果没Debug ...
 - ArrayList的ConcurrentModificationException异常和多线程下的异常
		
一.ConcurrentModificationException ArrayList源码看为什么出现异常: public class ArrayList<e> extends Abstr ...
 
随机推荐
- 兼容 Spring Boot 1.x 和 2.x 配置类参数绑定的工具类 SpringBootBindUtil
			
为了让我提供的通用 Mapper 的 boot-starter 同时兼容 Spring Boot 1.x 和 2.x,增加了这么一个工具类. 在 Spring Boot 中,能够直接注入 XXProp ...
 - 演示stop暴力停止线程导致数据不一致的问题,但是有些有趣的发现 (2017-07-03 21:25)
			
如注释所言 /** * Created by weiwei22 on 17/7/3. * * 这里主要是为了演示stop导致的数据不一致的问题.stop会暴力的结束线程并释放锁,所以有可能在恰好写了一 ...
 - Maximum Average Subarray
			
Given an array with positive and negative numbers, find the maximum average subarray which length sh ...
 - 2.5 定义FTP工具的各种方法
			
用class定义ftp工具的各种方法 import os,sys from ftplib import FTP from mimetypes import guess_type,add_type fr ...
 - 获取进程ID,父进程ID,进程完整路径
			
准备写一个进程管理的功能模块,今天下午先写了扫描获取本机各个进程路径,获取各个进程映像名称,进程完整路径. 要获取进程信息,第一步想到的就是提权,提权代码用过多次了,今天也小结了一下(http://w ...
 - wed
			
先有一个无后缀的flag 文件 第一次改成 TXT 收索FLAG 得到了一段 flag.txt f返回到第一次修改后缀 改成RAR 打开RAR 发现一个 flag.txt 的文件 打开,即得到 fla ...
 - yum 的 group的信息
			
查找 yum源中有哪些group及其详细信息 1:yum groupinfo '*' | less 2:yum groupinfo '*' | less +/sendmail-cf 将 sendmai ...
 - Apache Hive处理数据示例
			
继上一篇文章介绍如何使用Pig处理HDFS上的数据,本文将介绍使用Apache Hive进行数据查询和处理. Apache Hive简介 首先Hive是一款数据仓库软件 使用HiveQL来结构化和查询 ...
 - es6 Array数组方法
			
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
 - Centos6.5搭建Elasticsearch
			
ElasticSearch是基于Lucene的搜索服务.支持分布式多用户能力的全文搜索引擎,提供RESTful web接口.Elasticsearch是用Java开发的,Apache旗下开源项目,支持 ...