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

 
 
 
Reply to this topicStart new topic
> Отладка cortex-m3 в gdb через j-link, генерируется SIGTRAP на инструкцию SVC 0
artymen
сообщение Oct 24 2011, 09:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



Столкнулся с такой неожиданной проблемой: при отладке программы с freertos на LPC1768 (cortex m3) под gdb (yagarto toolchain) через j-link (gdb server) отладчик останавливается безо всякой на то причины на инструкции SVC 0 в коде фриртоса (в функции vPortStartFirstTask), как будто breakpoint сработал. Делаю resume, но он зацикливается на этой инструкции.
Отлаживаю во флеше. В конфигурации отладки в Eclipse прописаны команды инициализации:
Код
monitor endian little
monitor flash device = LPC1768
monitor flash download = 1
monitor flash breakpoints = 1
monitor speed 1000
monitor reg r13 = (0x00000000)
monitor reg pc = (0x00000004)

Ну и разумеется опции Reset and Delay и Halt включены. Set breakpoint at: main и Resume.
Запускается нормально, на main останавливается, продолжаю, и вскоре останавливается на vPortStartFirstTask.
Причем я забил на свой код, попробовал отладить стандартный пример CORTEX_LPC1768_GCC_RedSuite из FreeRTOS 6.1 (но не в redsuite, а yagarto опять-таки). То же самое. Однако всякие IARовские примеры отлаживаются нормально.
Кто сталкивался ? В чем тут может быть дело ?


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
podelkin
сообщение Oct 24 2011, 13:24
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 24-10-11
Пользователь №: 67 911



глюк. может стек переполнился? или только при отладке? Hook'и FreeRTOS не сработали?
Go to the top of the page
 
+Quote Post
artymen
сообщение Oct 25 2011, 03:16
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



Все, разобрался ! Как всегда, все банально - проц не сбрасывался в начале отладки. krapula.gif Опции "Reset and Delay" и "Halt", оказывается, не работают, собаки. Это баг/фича в "C/C++
GDB Hardware Debugging" (version 7.0.0.201009241320) feature в Eclipse CDT. Нужно вручную прописывать команду "monitor reset 0", что собствено и делается во всех gdbinit-скриптах. А я сдуру решил, что это избыточно (ведь в среде есть эти опции), что и привело к потере времени cranky.gif
Причем обидно, что я все время смотрел окно сообщений gdb сервера и не замечал, что привычное сообщение типа "Resetting target" нигде не мелькает.


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
podelkin
сообщение Oct 27 2011, 06:43
Сообщение #4





Группа: Участник
Сообщений: 14
Регистрация: 24-10-11
Пользователь №: 67 911



Цитата(artymen @ Oct 25 2011, 07:16) *
Опции "Reset and Delay" и "Halt", оказывается, не работают


Тоже на эти грабли наступал, но почему то сразу увидел что они не работают) повезло мне
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:45
Рейтинг@Mail.ru


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