Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR Terminal I/O
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
eXeC001er
собственно сабж.
zltigo
Цитата(eXeC001er @ May 4 2008, 08:50) *
собственно сабж.

Собственно в чем проблемы? Лично я никогда не пользовал, по причине использования реальных терминалов, но все просто - задействуется брейкпойнт на заглушку putchar() (в настройках линкера - что-то типа io emulation) и все - можете смотреть на консольку.
garlands
а можно подробнее, как-же все-таки использовать?
т.е. отладочный вывод валится потоком?
Andy Mozzhevilov
Цитата(garlands @ Jun 1 2008, 04:52) *
а можно подробнее, как-же все-таки использовать?
т.е. отладочный вывод валится потоком?

Я некоторое время назад разбирался, как оно реализовано.
Суть в том, что putchar подставляется в этом случае iar-ом из своей библиотеки.
Смысл этого putchar в том, что он выводимые символы пишет в регистр, и вызывает функцию вывода, в которой стоит брейкпоинт. Как только по этому брейкпоинту случается остановка, отладчик это видит и считывает текущее значение нужного регистра, отображает его в терминальном окне и дальше пускает программу.
Но, как следствие, получается не совсем честный риалтайм при такой отладке, поскольку при выводе каждого символа ядро тормозится на время, необходимое для действий из предыдущего абзаца.
Кроме того, постоянно под это дело занимается 1 брейкпоинт, а их всего 2.
В общем я по этой причине забил на эту функцию, дабы не получать труднообъяснимых глюков, которые могут быть вызваны терминальным выводом.
garlands
tnx.

чтобы не плодить темы, попутный вопрос: можно-ли организовать отладочный вывод в терминал по rs-232, если uart уже занят, и освободить проблематично.
---
mega32, серийный девайс... spi, jtag имеются (в смысле разведены и распаяны). из интерфейсов только светодиод и ZigBee, с которым, собственно. и не могу разобраться sad.gif
Andy Mozzhevilov
Цитата(garlands @ Jun 1 2008, 16:34) *
tnx.

чтобы не плодить темы, попутный вопрос: можно-ли организовать отладочный вывод в терминал по rs-232, если uart уже занят, и освободить проблематично.
---
mega32, серийный девайс... spi, jtag имеются (в смысле разведены и распаяны). из интерфейсов только светодиод и ZigBee, с которым, собственно. и не могу разобраться sad.gif

Задайте вопрос корректно.
RS-232 - интерфейс с определенными электрическими характеристиками. Обычно (но не обязательно) для обмена данными по нему используется UART.
У вас нет свободного UART. Его можно реализовать, например программно. Либо взять микросхему UART, работающую по SPI (опять же не понятно, SPI имеется, распаян, но куда?).
zltigo
Цитата(Andy Mozzhevilov @ Jun 1 2008, 12:44) *
Его можно реализовать, например программно.

Такая реализация займет время, по сравнению с которым отработка брейкпойнта мелочь.
Andy Mozzhevilov
Цитата(zltigo @ Jun 1 2008, 16:54) *
Такая реализация займет время, по сравнению с которым отработка брейкпойнта мелочь.

Как я понял, в последнем посте речь про AVR уже, не знаю, как оно там сейчас. Когда я активно писал для AVR у них еще на было JTAG.
garlands
Цитата(Andy Mozzhevilov @ Jun 1 2008, 13:44) *
Задайте вопрос корректно.
RS-232 - интерфейс с определенными электрическими характеристиками. Обычно (но не обязательно) для обмена данными по нему используется UART.
У вас нет свободного UART. Его можно реализовать, например программно. Либо взять микросхему UART, работающую по SPI (опять же не понятно, SPI имеется, распаян, но куда?).

-------------------------------------------------------------------------------------------------------------
rs-232 - чтение лога на компе имеется в виду... Для этого, как я понимаю, желателен uart.
spi - ISP ( blush.gif )
-------------------------------------------------------------------------------------------------------------
Cорри за действительно расплывчатость и путаницу в терминах.
-------------------------------------------------------------------------------------------------------------

А может, можно не входя в отладку через jtag, принимать отладочный вывод через этот самый jtag?

Просто ищу оптимальный по времени реализации и влиянию на скорость способ. Наверняка ведь есть отработанные решения.
Andy Mozzhevilov
Цитата(garlands @ Jun 1 2008, 18:36) *
А может, можно не входя в отладку через jtag, принимать отладочный вывод через этот самый jtag?

Просто ищу оптимальный по времени реализации и влиянию на скорость способ. Наверняка ведь есть отработанные решения.


А сам JTAG-адаптер есть? Думаю, в IAR и для AVR может присутствовать этот terminal I/O. Почитайте документацию.
Nitrotoluol
вот есть такой пример...

Код
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#include <stdio.h>

//__regvar __no_init unsigned char R15 @ 15;
__no_init unsigned char R15 @ 15;

void rw_spi();
unsigned char _FF_spi(unsigned char mydata);

unsigned char result;


__root void main( void )
{
result = _FF_spi(0x0A);

putchar ( '#' );
printf("%d",result);        
}

unsigned char _FF_spi(unsigned char mydata)
{
  R15=mydata;
  rw_spi();
  return R15;
}

void rw_spi()
{
  asm("inc r15");
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Результат увидите в окне среды "Terminal I/O".

© Caxapa
garlands
здОрово! Спасибо!
zltigo
Цитата(Nitrotoluol @ Jun 2 2008, 20:07) *
вот есть такой пример...

Вы бы хоть подумали хоть чуть-чуть, прежде чем постить всякий наикривейший код НИКАКОГО отношения к теме не имеющий.
Строчку c printf()/putchar() любой нормальный человек способен написать и самостоятельно.
defunct
Цитата(Andy Mozzhevilov @ Jun 2 2008, 05:47) *
Думаю, в IAR и для AVR может присутствовать этот terminal I/O. Почитайте документацию.

Присутсвует, но сильно тормозит. Вывод там чут ли не побитовый. Проц дубово пишет в debug регистр и ждет пока отладчик вычитает.
Тормозтся основной поток вследсвии чего нормальной работы не получится (периферия то не тормозится, e.g. пока один символ будет выводиться в Terminal I/O, UART потеряет 100 символов).

В общем я бы не рекомендовал им пользоваться в хоть сколь-нибудь серьезных проектах.
Разве только для баловства годится.
garlands
угу. опробовал. разочаровался. sad.gif
эххх... а какая идея... одним окошком меньше...
а может, можно принимать отладочный вывод с COM-порта в среде IAR? и писать его в это самое окно terminal io...
---
надо поковырять в этом направлении... wink.gif
wangan
вопрос в догонку если я переопределяю __read то значит я немогу использовать IAR Terminal I/O? я правильно понимаю
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.