☆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. vue.config.js初始化配置

    let path = require('path')function resolve (dir) { return path.join(__dirname, dir)} module.exports ...

  2. eclipse添加js智能代码提示

    安装重启之后,在项目名上右键 结束

  3. makefile中 = := += 的区别

    = 是最基本的赋值 := 是覆盖之前的值 ?= 是如果没有被赋值过就赋予等号后面的值 += 是添加等号后面的值 1.“=” make会将整个makefile展开后,再决定变量的值.也就是说,变量的值将 ...

  4. angularjs 下滑线滑动

    css: .detail_row { width: 410px; height: 34px; clear: both; border-bottom: 1px solid #eaeeef; font-s ...

  5. jQuery-----隔行换色/全选全不选/

    隔行换色:              全选全不选:        分析:               1.页面加载   $(function(){})               2.获取所有奇数行数 ...

  6. 一个神奇的???whatever~~

    一个神奇的类,用来封装消息数据,统一数据传递接口,从unity引擎源码拷贝而来. #include <iostream> #include <assert.h> #includ ...

  7. mysql group_concat(column) 函数替换成 oracle wm_concat(colum)

    11gr2和12C上已经摒弃了wm_concat函数,所以只能手动创建该函数 解决办法: 一.解锁sys用户 alter user sys account unlock; 二.创建包.包体和函数 以s ...

  8. GoogLeNet 改进之 Inception-v2/v3 解读

    博主在前一篇博客中介绍了GoogLeNet 之 Inception-v1 解读中的结构和思想.Inception的计算成本也远低于VGGNet.然而,Inception架构的复杂性使得更难以对网络进行 ...

  9. Kafka 术语

    什么是Kafka? Apache Kafka是一个分布式流媒体平台,允许你发布和订阅记录流,允许你以容错方式存储记录流,允许你处理数据流.或是说Kafka是一个分布式.支持分区.多副本的,基于zook ...

  10. mac出现zsh: command not found: ping解决方法

    Step1:终端输入以下命令: /sbin/ping 若出现如下信息,说明包含ping命令,是zsh的 PATH有问题,表示没有加载sbin下的命令,需要编辑.zshrc文件. Step2:终端打开. ...