|
бесплатные средства отладки: миф или реальность? |
|
|
|
Jan 29 2007, 15:52
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 29-01-07
Из: Саратов
Пользователь №: 24 841

|
Проблема вот в чем: нужен отладчик для процессоров с ARM-м ядром, который бы распостранялся бесполатно..... Сам работаю в IAR, крякнутой как вы понимаете версии. И просто ради интереса: а чем вы сами-то пользуетесь???
|
|
|
|
|
Jan 30 2007, 07:50
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 5-10-06
Пользователь №: 20 997

|
Цитата(etoja @ Jan 29 2007, 16:45)  Используй отладочную печать через RS232 - не придётся бороться с драйверами JTAG. Будьте любезны извините! Пользуюсь JTAG, а этот метод мне незнаком. Где можно найти инфу по этому? С уважением PARAMON!
|
|
|
|
|
Jan 30 2007, 11:03
|
Частый гость
 
Группа: Новичок
Сообщений: 79
Регистрация: 1-11-06
Пользователь №: 21 868

|
Цитата(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(...) и все эти задержки на вывод отладочной инфы пропадают.
|
|
|
|
|
Jan 30 2007, 11:26
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 29-01-07
Из: Саратов
Пользователь №: 24 841

|
Цитата Это разновидность 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(...) и все эти задержки на вывод отладочной инфы пропадают. спасибо, принцип понят.....
|
|
|
|
|
Jan 30 2007, 11:37
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 29-01-07
Из: Саратов
Пользователь №: 24 841

|
Цитата(KRS @ Jan 30 2007, 11:27)  А мне нравится Wigler + H-JTAG и под ИАРом эта связка отлично работает Да мне тоже нравится, сам под ним работаю, вернее учусь пока работать.... Дело в том, что официально его не распостраняют бесплатно
|
|
|
|
|
Jan 30 2007, 16:24
|
Частый гость
 
Группа: Новичок
Сообщений: 79
Регистрация: 1-11-06
Пользователь №: 21 868

|
А не проще 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 приятнее.
Сообщение отредактировал boez - Jan 30 2007, 16:31
|
|
|
|
|
Jan 31 2007, 13:00
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 29-01-07
Из: Саратов
Пользователь №: 24 841

|
а кто-нибудь из вас этим самым YAGARTO пользовался??? Какие ощущения??? читаю сейчас Using Open Source Tools for AT91SAM7S Cross Development, что-то в этом есть.....
|
|
|
|
|
Feb 1 2007, 16:04
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 29-01-07
Из: Саратов
Пользователь №: 24 841

|
то же самое, вылезают такие вот веселые ссобщения.... это если пытаешся искать через С/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'"
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|