На текущем ПК 0x0 не найдено строк исходного кода.

У меня проблемы с использованием 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

person Michael    schedule 19.03.2013    source источник
comment
Пожалуйста, выложите свой файл .map.   -  person Felipe Lavratti    schedule 19.03.2013
comment
Привет, Фанл, файл .map можно увидеть по адресу pastebin.com/bUeXqV6S.   -  person Michael    schedule 19.03.2013
comment
Ваша карта кажется в порядке. У вас есть reset_vec по адресу 0x0. Так что похоже проблема в отладчике. Вы пытались добавить точки останова в main? У вас есть доступ к reset_vec в исходном дереве?   -  person Felipe Lavratti    schedule 19.03.2013


Ответы (4)


Это проблема времени выполнения, вызванная неправильными инициализированными указателями.

Выполнение вашего кода пытается выполнить код по адресу 0x00. Это происходит, когда вы вызываете указатель на функцию, которая не была инициализирована, что означает, что он содержит значение 0. Если нет, возможно, вы пытаетесь прочитать или записать данные в указатель, который также не был инициализирован.

Или, как правило, адрес 0x00 на микроконтроллерах является началом кода. Должен быть код запуска, который запускается с адреса 0x00 для выполнения инициализации, требуемой кодом C. Итак, вы не добавили файл запуска в проект.

person Felipe Lavratti    schedule 19.03.2013

Отлаживал на Eb006 v9 с помощью pickit2 и на MPLABx. Первоначально сообщение заключалось в том, чтобы отключить программирование низкого напряжения и сторожевой таймер. Поэтому я добавил эти строки

#pragma config   WDTE=OFF, LVP=OFF

Однако он по-прежнему вызывал у меня ту же проблему, после того как я почесал голову и случайно добавил FOSC=XT, то есть на плате есть кристалл, внезапно он решил проблему, поэтому для меня эта конфигурация сработала.

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

Надеюсь, это поможет кому-то :)

person user3013430    schedule 15.04.2018

Я столкнулся с этим, выбрав неправильный тип осциллятора. Например, при подключении к моей схеме внешнего кварцевого резонатора 20 МГц я непреднамеренно выбрал XT в качестве FOSC. Я должен был использовать HS таким образом:

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

Это исправило мой случай ошибки «На текущем ПК 0x0 не найдено строк исходного кода».

person KDM    schedule 04.07.2015

Похоже, это какая-то ошибка MPLAB X. Чтобы отладчик заработал, вам нужно сначала закрыть представление PIC Memory, если вы ранее просматривали переменные. Вот мой источник ответа.

person oriol    schedule 09.07.2014