|
IAR Terminal I/O, что это ? и с чем это едят? как пользовать? |
|
|
|
Jun 1 2008, 06:23
|

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

|
Цитата(garlands @ Jun 1 2008, 04:52)  а можно подробнее, как-же все-таки использовать? т.е. отладочный вывод валится потоком? Я некоторое время назад разбирался, как оно реализовано. Суть в том, что putchar подставляется в этом случае iar-ом из своей библиотеки. Смысл этого putchar в том, что он выводимые символы пишет в регистр, и вызывает функцию вывода, в которой стоит брейкпоинт. Как только по этому брейкпоинту случается остановка, отладчик это видит и считывает текущее значение нужного регистра, отображает его в терминальном окне и дальше пускает программу. Но, как следствие, получается не совсем честный риалтайм при такой отладке, поскольку при выводе каждого символа ядро тормозится на время, необходимое для действий из предыдущего абзаца. Кроме того, постоянно под это дело занимается 1 брейкпоинт, а их всего 2. В общем я по этой причине забил на эту функцию, дабы не получать труднообъяснимых глюков, которые могут быть вызваны терминальным выводом.
--------------------
Пасу котов...
|
|
|
|
|
Jun 1 2008, 10:34
|
Местный
  
Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798

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

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

|
Цитата(garlands @ Jun 1 2008, 16:34)  tnx. чтобы не плодить темы, попутный вопрос: можно-ли организовать отладочный вывод в терминал по rs-232, если uart уже занят, и освободить проблематично. --- mega32, серийный девайс... spi, jtag имеются (в смысле разведены и распаяны). из интерфейсов только светодиод и ZigBee, с которым, собственно. и не могу разобраться  Задайте вопрос корректно. RS-232 - интерфейс с определенными электрическими характеристиками. Обычно (но не обязательно) для обмена данными по нему используется UART. У вас нет свободного UART. Его можно реализовать, например программно. Либо взять микросхему UART, работающую по SPI (опять же не понятно, SPI имеется, распаян, но куда?).
--------------------
Пасу котов...
|
|
|
|
|
Jun 1 2008, 12:36
|
Местный
  
Группа: Свой
Сообщений: 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 (  ) ------------------------------------------------------------------------------------------------------------- Cорри за действительно расплывчатость и путаницу в терминах. ------------------------------------------------------------------------------------------------------------- А может, можно не входя в отладку через jtag, принимать отладочный вывод через этот самый jtag? Просто ищу оптимальный по времени реализации и влиянию на скорость способ. Наверняка ведь есть отработанные решения.
|
|
|
|
|
Jun 2 2008, 18:07
|

Участник

Группа: Свой
Сообщений: 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
|
|
|
|
|
Jun 18 2008, 23:41
|

кекс
     
Группа: Свой
Сообщений: 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 символов). В общем я бы не рекомендовал им пользоваться в хоть сколь-нибудь серьезных проектах. Разве только для баловства годится.
|
|
|
|
|
Jun 19 2008, 18:07
|
Местный
  
Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798

|
угу. опробовал. разочаровался.  эххх... а какая идея... одним окошком меньше... а может, можно принимать отладочный вывод с COM-порта в среде IAR? и писать его в это самое окно terminal io... --- надо поковырять в этом направлении...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|