artymen 0 24 октября, 2011 Опубликовано 24 октября, 2011 · Жалоба Столкнулся с такой неожиданной проблемой: при отладке программы с 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овские примеры отлаживаются нормально. Кто сталкивался ? В чем тут может быть дело ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
podelkin 0 24 октября, 2011 Опубликовано 24 октября, 2011 · Жалоба глюк. может стек переполнился? или только при отладке? Hook'и FreeRTOS не сработали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artymen 0 25 октября, 2011 Опубликовано 25 октября, 2011 · Жалоба Все, разобрался ! Как всегда, все банально - проц не сбрасывался в начале отладки. :krapula: Опции "Reset and Delay" и "Halt", оказывается, не работают, собаки. Это баг/фича в "C/C++ GDB Hardware Debugging" (version 7.0.0.201009241320) feature в Eclipse CDT. Нужно вручную прописывать команду "monitor reset 0", что собствено и делается во всех gdbinit-скриптах. А я сдуру решил, что это избыточно (ведь в среде есть эти опции), что и привело к потере времени :cranky: Причем обидно, что я все время смотрел окно сообщений gdb сервера и не замечал, что привычное сообщение типа "Resetting target" нигде не мелькает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
podelkin 0 27 октября, 2011 Опубликовано 27 октября, 2011 · Жалоба Опции "Reset and Delay" и "Halt", оказывается, не работают Тоже на эти грабли наступал, но почему то сразу увидел что они не работают) повезло мне Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться