2013-03-19 388 views
0

我在使用MPLAB X IDE時遇到了問題。我有一個主要部分的main.c。在當前PC上未找到源代碼行0x0

當我嘗試調試時,我不能。它說沒有找到源代碼行。我編譯了該軟件並在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 
+0

請發佈您的.map文件。 – 2013-03-19 02:01:20

+0

你好fanl,.map文件可以在http://pastebin.com/bUeXqV6S看到 – Mike 2013-03-19 02:18:24

+0

你的地圖似乎沒問題。你有地址0x0的reset_vec。所以看起來調試器是問題所在。你有沒有嘗試在主要添加斷點?您是否有權訪問源代碼樹中的reset_vec? – 2013-03-19 10:40:52

回答

0

這是不好造成的初始化指針運行時間問題。

您的代碼執行嘗試在地址0x00處執行代碼。當你調用一個指向未初始化的函數的指針時,就會發生這種情況,也就是說,它的值爲0.如果不是,你可能會嘗試讀取或寫入數據到未初始化的指針。

或者,微控制器上的地址0x00通常是代碼的開始。必須有從地址0x00運行的啓動代碼才能執行C代碼所需的初始化。所以,你還沒有將啓動文件添加到項目中。

0

看來這是某種MPLAB X的錯誤。爲了使調試器工作,您必須先關閉PIC Memory視圖,以防先前查看變量。這是我的answer's source

0

我遇到了這種情況,選擇了錯誤的振盪器類型。例如,在我的電路中連接一個外部20MHz晶體,我無意中選擇了XT作爲FOSC。我應該使用HS這樣的:

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

這種固定我對實例「沒有行源代碼被發現在當前的PC爲0x0」的錯誤。

相關問題