|
printf в IAR 5.5, увидеть выводимое printf с отладчиком JetLink |
|
|
|
May 14 2010, 07:20
|
Участник

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

|
Для удобства хочется видеть под отладчиком что печатается с помощью printf. Среда IAR 5.5, контроллер ARM7S, отладчик JetLink 5.
Нашел что вроде как нужно включить C-Spy в опциях проекта, Linker, вкладка Output и смотреть в IO Terminal. Но на этой вкладке у меня почему-то только 1 флаг и 1 текстовое поле: "Output file" и "Include debug information in output" соответственно. Никаких других элементов там нет. В IO Terminal пусто -- никакой информации не выводится вообще. Скачал полную версию -- то же самое.
Собственно, что делать? Как увидеть что выводится с помощью printf? Уже 2 дня бьюсь...
|
|
|
|
|
 |
Ответов
(1 - 10)
|
May 14 2010, 09:10
|
Участник

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

|
Цитата(Dog Pawlowa @ May 14 2010, 12:08)  Напишите свою пустышку putchar, поставьте там точку останова и смотрите побайтно глазками. Ага. Особенно удобно текст сообщения по 1-й букве читать. То что читалось бы за минуту -- нужно будет целый день по букве читать. Это же все для удобства и экономии времени делается. Должно же быть решение?
|
|
|
|
|
May 14 2010, 09:24
|
Участник

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

|
Цитата(prottoss @ May 14 2010, 12:14)  Код ... volatile char g_print_buffer[HOW_MACH_NEED_BYTES] = {0, }; volatile int idx = 0; ... int putchar(int c) { g_print_buffer[g_idx] = c; g_idx++; if(g_idx >= HOW_MACH_NEED_BYTES) g_idx = 0; } Это все так делают? Или существует человеческое решение видеть все на экране IO Terminal?
|
|
|
|
|
May 14 2010, 18:01
|
Участник

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

|
У меня почему-то отладка JetLink 5 работает очень плохо, через 2 раза.
Переменные часто не доступны. Когда пытаюсь идти по шагам -- перескакивает, пишет fail и перескакивает точку.
Когда пытаюсь просмотреть массив из 1-го совета -- там ничего не показывает -- пишет undefinite.
Зачем убрали возможность использовать printf -- не понятно.
|
|
|
|
|
May 15 2010, 10:51
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(dkukushkin @ May 14 2010, 21:01)  У меня почему-то отладка JetLink 5 работает очень плохо, через 2 раза. ... Зачем убрали возможность использовать printf -- не понятно. Не понимаю .... В симуляторе нужен printf - один раз использовал, могу понять. В реальном устройстве под отладкой нужен printf? Ну так направьте вывод на другое реальное устройство - дисплей, терминал, светодиод, в конце концов. Да, JTAG в ARM7 часто и в самом деле танцы с бубном, но реальное устройство обычно какие-то интерфейсы имеет, почему туда чего-нить не подключить?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
May 18 2010, 17:45
|
Участник

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

|
Цитата(MALLOY2 @ May 15 2010, 16:13)  В опциях general options -> library Configuration поставить Semihosted, в опциях С/C++ Compiler -> Preprocessor в дефайнах если прописано NDEBUG то стереть этот дефайн и должно все заработать через prinf, только имхо это тормоз редкий да и размер кода сразу возрастет  , лучше такую фичу самому прикрутить к уарту и смотереть тоже самое в терминалке. Странно, Semihosted и NDEBUG нет, но не работает. А смотреть нужно в IO Terminal? Или куда оно должно выводить?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|