1

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

4 回答 4

2

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

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

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

于 2013-03-19T01:56:41.063 回答
1

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

#pragma config   WDTE=OFF, LVP=OFF

但是它仍然给我同样的问题,在我挠头并偶然添加FOSC=XT之后,即板上有一个水晶突然它解决了问题,因此对我来说,这个配置有效

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

希望这可以帮助某人:)

于 2018-04-15T11:32:09.203 回答
0

这似乎是某种 MPLAB X 错误。为了使调试器工作,您必须先关闭 PIC 内存视图,以防您之前查看变量。这是我的答案的来源

于 2014-07-09T10:54:52.840 回答
0

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

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

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

于 2015-07-04T21:41:38.587 回答