Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: бесплатные средства отладки: миф или реальность?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Alex_rav(зеленинький я есть)
Проблема вот в чем: нужен отладчик для процессоров с ARM-м ядром, который бы распостранялся бесполатно.....
Сам работаю в IAR, крякнутой как вы понимаете версии.
help.gif help.gif
И просто ради интереса: а чем вы сами-то пользуетесь???
etoja
Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG.
boez
Теоретически это Insight + gdb + openocd + адаптер на FT2232. Практически я такое не пробовал еще (пользуюсь исцеленным CrossWorks). Но по причине большей любви к USB, чем к LPT - самому интересно было бы эту связку попробовать. Жаль, пока нет времени. Может кто пробовал - поделитесь опытом? Почти или все упомянутые проги под винду есть в дистрибутиве WinARM. Ну а под линух они конечно тоже есть.
AlexBoy
Цитата(boez @ Jan 29 2007, 17:01) *
Теоретически это Insight + gdb + openocd + адаптер на FT2232. Практически я такое не пробовал еще (пользуюсь исцеленным CrossWorks). Но по причине большей любви к USB, чем к LPT - самому интересно было бы эту связку попробовать. Жаль, пока нет времени. Может кто пробовал - поделитесь опытом? Почти или все упомянутые проги под винду есть в дистрибутиве WinARM. Ну а под линух они конечно тоже есть.


Работаю со связкой Insight + gdb + ocdremote + wiggler для Xscale, а вобще ocdremote настраивается для очень многих arm-ов.
beer_warrior
Цитата
Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG.

+1, позволит отследить любую ситуацию, абсолютно без геморроя.
Andy Great
OpenOCD не пробовали? Сейчас динамично развивается.
Alex03
Цитата(boez @ Jan 29 2007, 20:01) *
Практически я такое не пробовал еще (пользуюсь исцеленным CrossWorks). Но по причине большей любви к USB, чем к LPT - самому интересно было бы эту связку попробовать.

А MT-Link прикупить и под CW дальше жить? Т.е. я причину не разумел. smile.gif
Paramon
Цитата(etoja @ Jan 29 2007, 16:45) *
Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG.




Будьте любезны извините! Пользуюсь JTAG, а этот метод мне незнаком. Где можно найти инфу по этому?
С уважением PARAMON!
Alex_rav(зеленинький я есть)
спасибо всем.....сейчас полезу разбираться и качать a14.gif a14.gif a14.gif a14.gif a14.gif

Цитата(etoja @ Jan 29 2007, 16:45) *
Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG.

объясните пожалуйста что ето такое???
boez
Цитата(Alex_rav(зеленинький я есть) @ Jan 30 2007, 09:43) *
Цитата(etoja @ Jan 29 2007, 16:45) *

Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG.

объясните пожалуйста что ето такое???


Это разновидность brute force debugging - то есть отладки с модификацией своей программы.

Обычно пишется своя функция putchar (или putc, не помню, читайте доку по вашей libc) и подключается к библиотечной функции printf. Эта putchar выводит в уарт контроллера заданый символ. Потом пишется макрос #define DEBUG_PRINTF(...) printf(__VA_ARGS__) и вставляется в некий serialdebug.h, который подключается как #include везде где только можно. И после этого в вашей программе в любом месте (ну желательно не в обработчике прерывания и подобных критичных по времени местах) пишется например DEBUG_PRINTF("Елки, оно ж сюда вообще заходить не должно!!! x=%p, y=%d",x,y). И при выполнении этого участка программы на экране вашего компьютера, подключенного COM-портом через MAX232 или аналогичный конвертор к упомянутому уарту МК вы увидите надпись. Преимущество метода в том что программа ваша не останавливается при отладке (иногда это лучший метод понять что происходит), недостаток - в том что если нужно посмотреть другую переменную или что-то поменять - нужно пересобирать и заново заливать в контроллер программу. В общем - каждому свое.
Да, после того как ваша программа достаточно приблизилась к идеалу - заменяете дефайн на пустой #define DEBUG_PRINTF(...) и все эти задержки на вывод отладочной инфы пропадают.
Alex_rav(зеленинький я есть)
Цитата
Это разновидность brute force debugging - то есть отладки с модификацией своей программы.

Обычно пишется своя функция putchar (или putc, не помню, читайте доку по вашей libc) и подключается к библиотечной функции printf. Эта putchar выводит в уарт контроллера заданый символ. Потом пишется макрос #define DEBUG_PRINTF(...) printf(__VA_ARGS__) и вставляется в некий serialdebug.h, который подключается как #include везде где только можно. И после этого в вашей программе в любом месте (ну желательно не в обработчике прерывания и подобных критичных по времени местах) пишется например DEBUG_PRINTF("Елки, оно ж сюда вообще заходить не должно!!! x=%p, y=%d",x,y). И при выполнении этого участка программы на экране вашего компьютера, подключенного COM-портом через MAX232 или аналогичный конвертор к упомянутому уарту МК вы увидите надпись. Преимущество метода в том что программа ваша не останавливается при отладке (иногда это лучший метод понять что происходит), недостаток - в том что если нужно посмотреть другую переменную или что-то поменять - нужно пересобирать и заново заливать в контроллер программу. В общем - каждому свое.
Да, после того как ваша программа достаточно приблизилась к идеалу - заменяете дефайн на пустой #define DEBUG_PRINTF(...) и все эти задержки на вывод отладочной инфы пропадают.




спасибо, принцип понят..... a14.gif
KRS
А мне нравится Wigler + H-JTAG
и под ИАРом эта связка отлично работает
Alex_rav(зеленинький я есть)
Цитата(KRS @ Jan 30 2007, 11:27) *
А мне нравится Wigler + H-JTAG
и под ИАРом эта связка отлично работает


Да мне тоже нравится, сам под ним работаю, вернее учусь пока работать....

Дело в том, что официально его не распостраняют бесплатно sad.gif sad.gif sad.gif
Alex_rav(зеленинький я есть)
Скачал insight-6.5, gdb-6.5, hwsupport-2.19........... Только сильно не ругайтесь....но что с этим со всем делать???? help.gif help.gif help.gif
AlexBoy
Цитата(Alex_rav(зеленинький я есть) @ Jan 30 2007, 12:44) *
Скачал insight-6.5, gdb-6.5, hwsupport-2.19........... Только сильно не ругайтесь....но что с этим со всем делать???? help.gif help.gif help.gif

К этому еще нужно скачать cygwin и поставить первым. Затем gdb и insight. А вообще почитайте www.macraigor.com/gnu_faq.htm тут все подробно.
Andy Great
GNUARM скачайте, там комплект подобран. Или Yagarto, там OpenOCD в комплекте.
boez
А не проще WinARM скачать - 47 метров всего и там есть все сразу, вместе с компилятором и тремя видами интерфейса к виглеру (ocdemon/openocd/h-jtag)... Хотя я не понял идет ли последний к gdb. Но по любому не нужен Cygwin.

http://www.siwawi.arubi.uni-kl.de/avr_proj...rojects/#winarm

Это было ответом на предложение качать цыгвин, а не на последний пост. Gnuarm основан на cygwin. Yagarto не качал, не знаю, но cygwin не требует.

Собственно в cygwin ничего плохого нету, а есть много удобного и хорошего - но когда ставишь себе pre-compiled комплекты программ с ним - то разные версии цыгвина начинают мешать друг другу... Native win32 приятнее.
Alex_rav(зеленинький я есть)
а кто-нибудь из вас этим самым YAGARTO пользовался??? Какие ощущения??? читаю сейчас Using Open Source Tools for AT91SAM7S Cross Development, что-то в этом есть.....
IgorKossak
Цитата(Alex_rav(зеленинький я есть) @ Jan 31 2007, 12:00) *
а кто-нибудь из вас этим самым YAGARTO пользовался??? Какие ощущения??? читаю сейчас Using Open Source Tools for AT91SAM7S Cross Development, что-то в этом есть.....

Джим Линч, автор этого самого документа пробовал и потому и написал это руководство, чтобы и другие без геморроя пробовали.
Я тоже в своё время попробовал. И в самом деле - оказалось без геморроя (по крайней мере на тестовых примерах).
boez
А у меня не получилось. Попробовал стянуть последний yagarto. Выглядит как полностью нерабочий продукт. Не стартует мастер создания проекта никакой, кроме пустого. Если создать пустой проект и добавить туда файлы - они не открываются редактором - вместо редактора выпадает ошибка что он не стартанул, класс не нашло... Похоже я что-то не так делаю с самого начала.
Вот openocd из этого ягарты через вигглер законнектился, даже insight что-то увидел (в отличие от WinARM, где openocd не увидел моего железа вообще).

В общем мрачновато пока. Помнится пару лет назад я качал винарм, тогда он у меня работал как компилятор, думаю и щас заработает, но мне нужен отладчик...
Alex_rav(зеленинький я есть)
то же самое, вылезают такие вот веселые ссобщения....

это если пытаешся искать через С/C++ search:

"An error occurred while creating the search 'C/C++ search'
reason:
Plug-in org.eclipse.cdt.ui was unable to load class
org.eclipse.cdt.internal.ui.search.PDOMSearchPage."

это если пытаешься открыть С/C++ perspective:

"Problems opening perspective 'org.eclipse.cdt.ui.CPerspective'"

help.gif help.gif help.gif help.gif help.gif help.gif
sergvks
Пользую самодельный ulink + keil.
evg123
Поделись ULINK - ом, смысле схемой, печатной платой, прошивкой и комментариями типа работает, отлично работает, или .... smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.