Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MPLAB + C30: проблема срабатывания брэкпоинтов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Sminder
У меня такой вопрос. Среда разработки - MPLAB 7.62. Компилятор языка Си MPLAB С30 v3.02. Проблема в установке точек прерывания. Если точка прерывания устанавливается на вызов функции, то при срабатывании ее отладчик ЗАХОДИТ в саму функцию, хотя мне этого не требуется. Нужно чтобы просто останавливался на функции и все, как можно было бы логично и предположить. Подскажите пожалуйста, как решить проблему.
DL36
Цитата(Sminder @ Oct 15 2008, 11:06) *
У меня такой вопрос. Среда разработки - MPLAB 7.62. Компилятор языка Си MPLAB С30 v3.02. Проблема в установке точек прерывания. Если точка прерывания устанавливается на вызов функции, то при срабатывании ее отладчик ЗАХОДИТ в саму функцию, хотя мне этого не требуется. Нужно чтобы просто останавливался на функции и все, как можно было бы логично и предположить. Подскажите пожалуйста, как решить проблему.
NOP(); поставь, перед функцией. Привыкнешь.
Sminder
Пишу так:

Код
breakpoint->          Nop();
                      Func1();

а в функцию все равно заходит.
И вообще мне хотелось бы радикальное решение проблемы, без добавления лишнего кода.
DL36
Цитата(Sminder @ Oct 15 2008, 16:31) *
Пишу так:

Код
breakpoint->          Nop();
                      Func1();

а в функцию все равно заходит.
И вообще мне хотелось бы радикальное решение проблемы, без добавления лишнего кода.

Нет. бывает два помогает.
Harvester
Это стандартная фича ICD - останавливаться через 1...2 команды после точки останова. Решение - ставить брейкпоинт раньше или, как уже советовали, вставлять пару nop-ов
AndrewGT
Попробуйте точку останова поставить в окне дизассемблирования ( а не в С исходнике).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.