☆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 下调试异常的更多相关文章

  1. ST Link 调试问题总结

    用过ST Link调试工具的同事都应该知道,ST Link是一个很不错的调试工具,它具有小并且功能齐全,价格便宜等特点,现在市场上普遍是下面这两种ST Link, 但如果用的比较多,会发现有时候会存在 ...

  2. 【译】使用 Source Link 提高调试效率

    有多少次你在调试器中追踪一个缺陷,通过代码,观察局部变量的值改变,当你碰壁--不是你所期待的值和你不能进入的方法,因为它来自类库或 .NET 框架本身:或者您设置了一个条件断点,等待检查某个值是如何设 ...

  3. 编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]

    前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过.迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题.其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题, ...

  4. Effective Java 第三版——69. 仅在发生异常的条件下使用异常

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  5. OneOS下调试支持的几种方式

    方法论 当我们遇到问题,应该怎么办?这不仅应用于程序开发,也是我们在生活中遇到问题的时候,应该想的事儿,怎么办!趁着此次机会,我好好想了七秒钟. 先问是不是问题,如果不是就不用解决了 如果确实是问题, ...

  6. sqlserver下调试sql语句

    现在版本的sqlServer已经支持调试功能了,但是在使用的时候用到的却很少(毕竟print习惯了..) 这里做一个笔记,简单的说明一下在sqlserver下调试的方法: declare @i int ...

  7. javascripy的innerHTML在IE8下的异常

    使用jQuery的datatable插件的时候发现,IE8下显示异常,仔细调查一番,发现是浏览器对innerHTML的差异导致的. 实例代码: var nTd = document.createEle ...

  8. VS2005--设置Release模式下调试

    今天初略看了下,所谓Release和Debug只是大家和编译器约定的一些生成规则而已,所以调试是无所谓Release和Debug的,只是由于生成的规则不同,可能Release的一些调试结果没Debug ...

  9. ArrayList的ConcurrentModificationException异常和多线程下的异常

    一.ConcurrentModificationException ArrayList源码看为什么出现异常: public class ArrayList<e> extends Abstr ...

随机推荐

  1. java语言规范,main方法必须声明为public

    注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...

  2. day 01 python基础

    1.计算机历史 2.python历史 宏观: python2和python3的区别: python2  源码不标准,混乱,重复代码过多 python3  统一标准,去除重复代码 3.python环境 ...

  3. centos6升级python

    CentOS 6中,默认安装了Python 2.6.而pip,jupyter这样的常用工具是不支持Python 2.6的.为了使用这些工具,就必须将Python 2.6升级到Python 2.7以上的 ...

  4. E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决

    在用apt-get安装软件时出现了类似于install-info: No dir file specified; try --help for more information.dpkg:处理 get ...

  5. 2.4 利用FTP服务器下载和上传目录

    利用FTP服务器下载目录 import os,sys from ftplib import FTP from mimetypes import guess_type nonpassive = Fals ...

  6. go web framework gin 路由表的设计

    在上一篇go web framework gin 启动流程分析这一篇文章中,我分析了go gin启动的过程,在这一篇文章中我将继续上面的分析,讨论gin 中路由表是如何设计的? 首先查看engine. ...

  7. 在Fiddler中添加自己所需的显示列

    有时候我们想了解请求响应的时间.服务器IP等相关信息,Fiddler默认是没有显示的,这个时候就需要我们借助高级用法---自定义显示列, 其实主要就是操作这个文件Fiddler2\Scripts\Cu ...

  8. mpvue 转小程序实践总结

    介绍 Mpvue 是一个使用 Vue.js 开发小程序的前端框架.  基础介绍 框架基于 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序 ...

  9. Markup解析XML——文档,说明

    链接:http://pan.baidu.com/s/1slMwEc9 密码:slz7 上面是网盘的地址,因为来源已经找不到了,在这里给这个作者说声谢谢. 轻量级的XML解析器使用比较简单,下载Mark ...

  10. query