реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> пошаговая отладка в Eclipse
winniethepooh
сообщение Apr 8 2016, 08:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Здравствуйте.
Имеется проектик типа “hello world” под Eclipce (Mars.2 Release (4.5.2)) . Используется Sourcery CodeBench Lite Edition 4.8.3 и JLinkGDBServer для cortex m3.
В течении пары дней гуглинга не удалось найти решения проблемы связанной с пошаговой отладкой Eclipse. Хотя проект загружается и даже в отладке в случае Run все хорошо, НО
При пошаговой отладке сразу же попадает в обработчик Default_Handler(или HardFault_Handler)
Код обработчика выглядит так:
Код
static void HardFault_Handler( void ) __attribute__( ( naked ) );
static void HardFault_Handler(void)
{
    __asm volatile
    (
        " tst lr, #4                                                \n"
        " ite eq                                                    \n"
        " mrseq r0, msp                                             \n"
        " mrsne r0, psp                                             \n"
        " ldr r1, [r0, #24]                                         \n"
        " ldr r2, handler2_address_const                            \n"
        " bx r2                                                     \n"
        " handler2_address_const: .word prvGetRegistersFromStack    \n"
    );
}
Команды стартапа выглядят так:
Код
target remote localhost:2331
monitor speed 1000
# monitor flash device = MB9BF506N
monitor flash device = MB9BF618T
monitor flash download = 1
# Set gdb server to little endian
monitor endian little
# Set JTAG speed to 30 kHz
monitor speed 30
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10
# Set JTAG speed in khz
monitor speed auto
load
monitor sleep 100
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10
подскажите пожалуйста, что может вызывать этот обработчик?

Сообщение отредактировал IgorKossak - Apr 8 2016, 17:43
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
Aaron
сообщение Apr 8 2016, 08:44
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Мб взведён IWDT, WDT или что-то типа такого? Как только останавливается выполнение кода при отладке, у вас сторожевой таймер генерирует прерывание ненастроенное?
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение Apr 8 2016, 12:11
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Спасибо Аарон за быстрый ответ.

Ошибку в отладчике появилась из за неверно указанного пути к elf файлу (для файлов отлаживаемого проекта я использовал предыдущий проект и скопировав его файлы в папку с новым проектом настройки debug configuration\main\c/c++ Application указывали на elf файл предыдущего проекта)
Интересно то, что различий между этими проектами в момент начала отладки не было (кроме того что добавился обработчик HardFault_Handler)
Причины по которым при (только) пошаговой отладке происходит вызов HardFault_Handler мне не понятны.

Сообщение отредактировал winniethepooh - Apr 8 2016, 12:12
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 23:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016