This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS 6.2.0 程序编译通过,但是debug后出问题。

如下图所示,正常情况下,编译通过后,点击debug按钮会进入该界面,1,2,3应该都是亮的,程序没有运行,会停在main开始处,点击1(run)后程序才会跑起来。

但是现在的情况是编译通过,点击debug后出现下图的现象,1是暗的,不能点击,而且下面显示程序已经在running了。

然后我点击3先断开连接,再连上,那么1会亮,可以点击,但是点击后就会出现下图

出现了:No source available for "0x3ff7bf" 。最上面也显示source not found。不知道这是什么问题。

最奇怪的是,这个程序前天测试的时候是能正常运行的,没有出现过该问题(但更早的时候也出现过同样的问题,只是莫名其妙地解决了就没管它),今天测试的时候就出现了该问题,用的是28027芯片,XDS100V2仿真器,ccxml文件也检查过没问题。

网上也没找到类似问题的帖子,故来向TI工程师求助。非常感谢

  • Serenity_pjb 说:
    然后我点击3先断开连接,再连上,那么1会亮,可以点击,但是点击后就会出现下图

    您重新点击Run-->load-->Load program 加载下程序就可以了

  • 还是无法运行。
    如果需要这样操作也是不正常吧,之前从编写完程序到程序跑起来只要按3次按钮:1. build 2. debug 3. run
  • 我现在重新点击Run-->load-->Load program 加载下程序就可以的

    因为您程序之前是在Running的时候去disconnect板子的,所以程序不知道跑到了哪里。您重新connect板子的时候,就不会在main函数处执行了。所以需要重新去load程序。

    在Running的时候去disconnect板子,这本身就是一个不正常的操作。您现在为何要这样操作?

    附上我的截图

    这是正常操作下的图示

    下图是运行时直接disconnect板子后,no symbols,也没有如上图找到mian函数的位置。所以需要重新加载程序

  • 您是一按debug后就直接进入running状态的吗?正常情况下,编译完按debug,程序不会运行啊,需要按run才会运行,之前都是这样。

    我之所以在running的时候去disconnect,就是因为以前正常跑是debug后需要按run才会跑,但是现在是debug后它直接跑,这个run按钮是暗的,但是从我板子上看,程序又没有跑(有控制一个灯亮,无现象)。当我disconnect后,那个run按钮才会变亮。

    所以我的最主要问题是为什么一按debug后程序就会进入running状态(之前几个月跑程序从来没出现过这样,必须是点击run后程序才开始运行),然后才是后续的问题。
  • 了解了。您看一下下面的设置Auto Run Options

    processors.wiki.ti.com/.../Debug_Handbook_for_CCS
  • 好像并不是这个设置的问题,我导入一个例程编译debug是不会出现前述问题的。
    然后我比较了这两个project的debug配置中的auto run options,两者没有差别。
    还有比较奇怪的点就是前两天这个程序运行是不会出现这个问题的,这两天我也没有修改过程序。
    早上测试时就出现了该问题。
    现在蛮郁闷的,网上找了好久也没找到解决方法。
  • 例程不会直接auto run ?那您重启CCS,复位板子还是这种情况?

    还是建议升级到新版本的CCS吧
  • 是的。例程是不会直接auto run的。点run以后才会跑,暂停也不会报No source available for "0x3ff7bf"。
    重启后也还是会有这种问题。
    而且运行我的程序时,处于running状态下我在main函数的for循环中设置断点也不会暂停,然后我点了restart,在刚进main函数处设置了一个断点,再点run,也照样会显示running。而实际板子并没有在跑程序。
    您说的最新版本CCS是直接用9.x的版本么?
  • 若是可以的话,请您上传或者私信给我您的工程。我来测试一下
  • 已私信给您。麻烦测试一下。谢谢!
  • 好的 我测试后给您回复
  • 今天测试了一下,并不会debug后直接就running,如下图

  • 感谢测试,这样的话确实没法明白问题出在哪了。

    说说我这两天测试以及发现的问题吧。
    一开始我怀疑是不是工程出问题了,于是我新建了工程,然后一步一步添加c文件。
    当我添加了4个c文件后(main,io,adc,pwm),build和debug都没有问题,功能是产生spwm和方波,以及灯闪,现象如预期。

    当我添加了第5个c文件(elecpara)后,并且在main.c调用了elecpara.c的两个函数后,就会出现debug后直接run的问题。
    而只添加该c文件不调用这两个函数,点击debug后确实会停在main开始的地方。
    但是一点击run后程序就跳到ILLEGAL_ISR()。
    单步调试发现是在很奇怪的地方跳入非法中断的。

    网上查了一些资料后我怀疑可能是ram分配的问题,于是我把程序烧录到flash后再运行,就不会再出现上述问题了。
    一切正常。

    不过还是有点奇怪。是不是需要修改与ram对应的cmd文件?以及如果是直接在ram里运行的话,怎么知道自己的程序编译后占用了多少ram呢?