无行源代码被发现在当前的PC为0x0

问题描述 投票:0回答:4

我在使用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
embedded pic mplab
4个回答
1
投票

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

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

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


1
投票

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

#pragma config   WDTE=OFF, LVP=OFF

但是它仍然给了我同样的问题,围绕抓我的头后一个偶然的机会加入FOSC=XT,即有在板晶顿时就解决了这个问题,因此对我来说,这个配置工作

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

希望这可以帮助别人:)


0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.