реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> IAR Terminal I/O, что это ? и с чем это едят? как пользовать?
eXeC001er
сообщение May 4 2008, 06:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 23-02-05
Из: Краснодар
Пользователь №: 2 848



собственно сабж.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 4 2008, 07:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(eXeC001er @ May 4 2008, 08:50) *
собственно сабж.

Собственно в чем проблемы? Лично я никогда не пользовал, по причине использования реальных терминалов, но все просто - задействуется брейкпойнт на заглушку putchar() (в настройках линкера - что-то типа io emulation) и все - можете смотреть на консольку.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
garlands
сообщение May 31 2008, 22:52
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



а можно подробнее, как-же все-таки использовать?
т.е. отладочный вывод валится потоком?
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 1 2008, 06:23
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(garlands @ Jun 1 2008, 04:52) *
а можно подробнее, как-же все-таки использовать?
т.е. отладочный вывод валится потоком?

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


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
garlands
сообщение Jun 1 2008, 10:34
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



tnx.

чтобы не плодить темы, попутный вопрос: можно-ли организовать отладочный вывод в терминал по rs-232, если uart уже занят, и освободить проблематично.
---
mega32, серийный девайс... spi, jtag имеются (в смысле разведены и распаяны). из интерфейсов только светодиод и ZigBee, с которым, собственно. и не могу разобраться sad.gif
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 1 2008, 10:44
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(garlands @ Jun 1 2008, 16:34) *
tnx.

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

Задайте вопрос корректно.
RS-232 - интерфейс с определенными электрическими характеристиками. Обычно (но не обязательно) для обмена данными по нему используется UART.
У вас нет свободного UART. Его можно реализовать, например программно. Либо взять микросхему UART, работающую по SPI (опять же не понятно, SPI имеется, распаян, но куда?).


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 1 2008, 10:54
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Andy Mozzhevilov @ Jun 1 2008, 12:44) *
Его можно реализовать, например программно.

Такая реализация займет время, по сравнению с которым отработка брейкпойнта мелочь.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 1 2008, 10:59
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



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

Как я понял, в последнем посте речь про AVR уже, не знаю, как оно там сейчас. Когда я активно писал для AVR у них еще на было JTAG.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
garlands
сообщение Jun 1 2008, 12:36
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



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

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

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

Просто ищу оптимальный по времени реализации и влиянию на скорость способ. Наверняка ведь есть отработанные решения.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 2 2008, 02:47
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



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

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


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


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Nitrotoluol
сообщение Jun 2 2008, 18:07
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 20-05-08
Из: Украина
Пользователь №: 37 661



вот есть такой пример...

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

#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
Go to the top of the page
 
+Quote Post
garlands
сообщение Jun 3 2008, 21:02
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



здОрово! Спасибо!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 4 2008, 05:38
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Nitrotoluol @ Jun 2 2008, 20:07) *
вот есть такой пример...

Вы бы хоть подумали хоть чуть-чуть, прежде чем постить всякий наикривейший код НИКАКОГО отношения к теме не имеющий.
Строчку c printf()/putchar() любой нормальный человек способен написать и самостоятельно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 18 2008, 23:41
Сообщение #14


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Andy Mozzhevilov @ Jun 2 2008, 05:47) *
Думаю, в IAR и для AVR может присутствовать этот terminal I/O. Почитайте документацию.

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

В общем я бы не рекомендовал им пользоваться в хоть сколь-нибудь серьезных проектах.
Разве только для баловства годится.
Go to the top of the page
 
+Quote Post
garlands
сообщение Jun 19 2008, 18:07
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



угу. опробовал. разочаровался. sad.gif
эххх... а какая идея... одним окошком меньше...
а может, можно принимать отладочный вывод с COM-порта в среде IAR? и писать его в это самое окно terminal io...
---
надо поковырять в этом направлении... wink.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 14:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016