当前PC 0x0没有找到源代码行

时间:2013-03-19 01:37:05

标签: embedded pic mplab

我在使用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

4 个答案:

答案 0 :(得分:0)

这是由初始化指针错误导致的运行时问题。

您的代码执行正在尝试执行地址0x00处的代码。当您调用指向未初始化的函数的指针时会发生这种情况,这意味着它保持值0.如果不是,您可能正在尝试将数据读取或写入未初始化的指针。

或者,微控制器上的地址0x00通常是代码的开头。必须存在从地址0x00运行的启动代码,以执行C代码所需的初始化。因此,您尚未将启动文件添加到项目中。

答案 1 :(得分:0)

它似乎是某种MPLAB X漏洞。为了使调试器工作,您必须首先关闭PIC内存视图,以防您以前查看变量。这是我的answer's source

答案 2 :(得分:0)

我通过选择错误的振荡器类型遇到了这种情况。例如,在我的电路中连接了外部20MHz晶体,我无意中选择了XT作为FOSC。因此我应该使用HS:

frame.origin.y

这修复了我的“在当前PC 0x0找不到源代码行”错误的实例。

答案 3 :(得分:0)

我使用pickit2和MPLABx在Eb006 v9上进行调试。最初,消息是关闭低电压编程和看门狗。因此我添加了这些行

#pragma config   WDTE=OFF, LVP=OFF

然而它仍然给了我同样的问题,在我挠头后偶然添加FOSC=XT,即板上有一个水晶突然它解决了问题,因此对我来说,这个配置工作< / p>

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

希望这有助于某人:)