无行源代码被发现在当前的PC为0x0(No source code lines were found

2019-10-17 20:39发布

我在使用MPLAB X IDE问题。 我有一个主要部分的main.c中。

当我尝试调试,我不能。 它说没有行源代码被发现。 我编写软件并没有问题MPLAB IDE调试。 我觉得好像有在MPLAB X或别的东西,基本是我缺少的设置。

虽然我不知道它是有用的,信息的缘故,我使用的是PICKIT2进行调试,MPLAB X IDE V1.51,PIC16F876的uC。

主代码main.c中:

int main(int argc, char** argv) {

    busyDelay(10000);
    port_init(); //Initialize GPIO, Timers & Interrupts

    TUBE_ON = 0x1;
    while (1) {
            asm("nop");
    }
    return (EXIT_SUCCESS);
}

当我尝试调试,我得到的调试器控制台如下:

Launching
Programming target
No source code lines were found at current PC 0x0
User program stopped
User program finished

Answer 1:

这是由不良初始化指针运行时间问题。

你的代码执行试图地址0x00处执行代码。 当你调用一个指针没有初始化,这意味着,它拥有的价值为0。如果没有,你可能会试图读取或写入数据到没有初始化,以及一个指针的函数它发生。

或者,通常是地址为0x00,微控制器,是代码的开始。 必须有和从地址为0x00运行启动代码执行的C代码所需的初始化。 所以,你还没有添加启动文件到项目中。



Answer 2:

我调试的Eb006 V9采用PICKIT2和MPLABx。 最初,该消息被关闭低电压编程和看门狗。 因此,我加入这些行

#pragma config   WDTE=OFF, LVP=OFF

但是它仍然给了我同样的问题,抓我的头周围,一个偶然的机会加入后FOSC=XT ,也就是说,在董事会中晶突然就解决了这个问题,因此对我来说,这个配置工作

#pragma config  FOSC=XT, WDTE=OFF, LVP=OFF

希望这可以帮助别人:)



Answer 3:

我选择了错误的振荡器类型遇到了这个。 例如,在我的电路布线的外部20MHz晶体,我无意中选择XT作为FOSC。 我应该使用HS这样的:

#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator (HS))

这个固定我的了的情况下“没有行源代码被发现在当前的PC为0x0”的错误。



Answer 4:

看来,这是某种形式的MPLAB X的bug。 为了使你不得不关闭第一PIC的内存视图的调试工作,如果你以前看的变量。 这里是我的答案的来源 。



文章来源: No source code lines were found at current PC 0x0