zoukankan      html  css  js  c++  java
  • Keil使用Debug调试模式时出现的几种错误总结

    Keil版本:keil4V4.60      

    调试器:j_link

    1.在使用j-link下载程序时,target options中的debug选项中选择了j-link选项后,出现了J-LINK the connected emulator is a j-link clone问题,然后keil软件自行关闭。

    解决方式:用SEGGER安装目录下的JLinkARM.dll替换掉MDK安装目录下的./ARM/Segger/JLinkARM.dll就可以了

    2.出现了TCK (pin 9) low, but should be high. Please check target。。。的错误
    解决方式:首先先检查原理图中是不是接错线了(就我而言,错的实在是太离谱,电源和地接反,而且BOOT0引脚完全没有接地),当我将这些个问题解决掉了之后,设置target options->Debug->右上角Use->Setting->Debug->Port选择SW选项。

    3.在解决第二个问题之后,出现了未发现CPU的错误。
    解决方式:这个问题的解决方式是在target options中的Utilities选项中点击Settings在Programming Algorithm选择框内添加芯片的类型(就我而言是STM32F10x 128K的)就行。

    4.在debug模式下进行调试时,发现程序没有从main函数进行运行,而是一直在汇编代码BKPT那里停下,当点复位时,到了systemInit那里
    解决方式:我在网上查找资料,一般的解决方式有以下的几种:
    1).工程所在目录存在汉字目录或目录路径过深(由于所用软件绝大部分为外国软件且可能都是破解版,导致对汉字支持较差);
    实测工程汉字目录较长(大概30个汉字)且目录路径较深(7级),导致进入调试模式单步执行了 2 步,就出现了 IDE 已停止工作,KEIL 崩溃
    2).KEIL 软件本身一些必要的配置,即Target Options Configure的Dubug选项下面选择Run to main()
    3).程序中存在的问题,就好比上述使用了未实现 printf() 函数或未实现的函数、条件宏等;
    4).硬件问题,当然做个最简单的流水灯便能排除。
    我的问题就出在第三点,函数中使用了printf函数,但是没有在Target Options Configure的Target那栏里把Use MicroLIB这个选项选择上。之后将其选择上编译下载程序,就能在debug下进入到main函数。

    5).在Debug模式下进行调试时,出现了BP could not be set!
    ......
    Probably too many Breakpoints defined?的错误,原因是因为定义了太多的断点。
    解决方法: <1>、调试时减少断点的个数。
          <2>、设置如下:Target Options->debug->Settings(右上角,Use)->不选择Cache Code和Cache Memory选项然后保存退出。如果按照这种设置,在各个断点之间进行运行时,需先运行,所以稍微有点慢。
    具体参考:http://www.openedv.com/thread-23050-1-1.html

  • 相关阅读:
    shell 基础进阶 *金字塔
    shell,awk两种方法写9*9乘法表
    shell脚本判断一个用户是否登录成功
    shell 冒泡算法 解决数组排序问题
    shell 石头剪刀布
    应用shell (ssh)远程链接主机
    nmcli命令使用
    光盘yum源autofs按需挂载
    LVM扩容,删除
    LVM创建
  • 原文地址:https://www.cnblogs.com/lucky-3/p/11176515.html
Copyright © 2011-2022 走看看