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

 
 
> newlib stdio, перенаправление ввода/вывода
Spym
сообщение Nov 2 2010, 15:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348



Добрый вечер.

Разбираюсь с newlib; сейчас попытался перенаправить стандартный вывод, и столкнулся с такой проблемой:
переопределил функции:
Код
_ssize_t _read_r(struct _reent *r, int file, void *ptr, size_t len);
_ssize_t _write_r(struct _reent *r, int file, const void *ptr, size_t len);

(и прочие низкоуровневые вызовы для newlib)
и вызвал printf(), после чего обнаружил, что _write_r не вызывается.
Попробовал так же вместо указанных функций переопределять лишь
Код
int _read (int file, char *ptr, int len);
int _write(int file,char *ptr,int len);

результат тот же.

Ключи линкера:
Код
LIBS = -lstdc++ -lc -lgcc -lm
LDFLAGS = -nostartfiles -Wl,-Map=$(TARGET).map,--cref $(LIBS) -T$(TARGET).ld


В качестве референса использовал этот проект: http://www.siwawi.arubi.uni-kl.de/avr_proj...ects/#gcc_stdio
Toolchain из последней сборки yagarto.

Итак, вопрос: как переопределить стандартный ввод/вывод, и что я делаю не так?

upd: версия newlib: 1.18

Сообщение отредактировал Spym - Nov 2 2010, 19:25
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Spym
сообщение Nov 2 2010, 22:40
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348



Прикрутил вместо yagarto/arm-none-eabi сборку kgp-arm-eabi_x86_32_HALLOWEEN_EDITIION от Klen, результат тот же: stdout не перенаправляется.
Я озадачен.

Сообщение отредактировал Spym - Nov 2 2010, 22:41
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 3 2010, 19:00
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Spym @ Nov 3 2010, 01:40) *
Прикрутил вместо yagarto/arm-none-eabi сборку kgp-arm-eabi_x86_32_HALLOWEEN_EDITIION от Klen, результат тот же: stdout не перенаправляется.
Я озадачен.

давайте прикрутим вместе. но после праздникрв пролетариата - я уже пикирую.
не думаю что есть проблемы где есть исходный код smile.gif

всех форумчан с празгиком, история нашего народа однако...
Go to the top of the page
 
+Quote Post
Spym
сообщение Nov 4 2010, 11:51
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348



Цитата(r301 @ Nov 3 2010, 21:37) *
обычная буферизация. попробуйте так
Код
printf("Something string");
fflush(stdout);

Действительно.
Интересно, как я могу управлять размером буфера?
И почему использование управляющих последовательностей не приводит к буферизации вывода?

Цитата(klen @ Nov 3 2010, 22:00) *
давайте прикрутим вместе.

В прикручивании как раз проблем не возникло - достаточно указать в PATH путь к toolchain же.
Да, кстати, при -O0 ваш KGP собрал 160кБ кода против 202кБ -O0 yagarto (-lc -lm -lgcc -lstdc++) при прочих равных, на первый взгляд всё работало. Хотя это сейчас мало о чем говорит, да и полученный код я не тестировал пока толком.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 4 2010, 12:39
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Spym @ Nov 4 2010, 14:51) *
Интересно, как я могу управлять размером буфера?
Посмотрите setvbuf();



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Spym   newlib stdio   Nov 2 2010, 15:14
- - Spym   Попробую издалека: Поднимите руки, кто использует ...   Nov 2 2010, 19:24
- - AHTOXA   Цитата(Spym @ Nov 2 2010, 20:14) Ключи ли...   Nov 2 2010, 19:52
|- - Spym   Цитата(AHTOXA @ Nov 2 2010, 22:52) Покажи...   Nov 2 2010, 19:55
|- - AHTOXA   Хм. Не вижу криминала. Вспоминаю, что читал что-то...   Nov 2 2010, 20:18
- - Spym   Цитата(AHTOXA @ Nov 2 2010, 23:18) Так чт...   Nov 2 2010, 20:29
|- - Petka   Цитата(Spym @ Nov 4 2010, 14:51) ... И по...   Nov 4 2010, 13:00
- - alx2   Меня немного смущает слово "перенаправляется...   Nov 3 2010, 05:55
- - AHTOXA   Цитата(Spym @ Nov 3 2010, 01:29) ЦитатаAl...   Nov 3 2010, 10:09
- - Spym   Цитата(alx2 @ Nov 3 2010, 08:55) ...перен...   Nov 3 2010, 13:22
- - Spym   Я прозрел; как выяснилось, вывод корректно работае...   Nov 3 2010, 14:53
|- - AHTOXA   Цитата(Spym @ Nov 3 2010, 19:53) Я прозре...   Nov 3 2010, 18:01
|- - r301   Цитата(Spym @ Nov 3 2010, 17:53) Почему т...   Nov 3 2010, 18:37
|- - alx2   Цитата(Spym @ Nov 3 2010, 19:53) Из перво...   Nov 6 2010, 20:36
|- - Spym   Цитата(alx2 @ Nov 6 2010, 23:36) Вот этот...   Nov 7 2010, 04:55
|- - alx2   Цитата(Spym @ Nov 7 2010, 09:55) Как я уж...   Nov 7 2010, 20:53
|- - Spym   Цитата(alx2 @ Nov 7 2010, 23:53) Не могу ...   Nov 8 2010, 08:03
|- - alx2   А, понял. Вы говорите о __sinit из newlib/libc/mac...   Nov 9 2010, 07:14
|- - Spym   Вы не ответили, какую версию newlib используете. ...   Nov 9 2010, 09:17
|- - alx2   Цитата(Spym @ Nov 9 2010, 14:17) Вы не от...   Nov 10 2010, 06:24
|- - Spym   Цитата(alx2 @ Nov 10 2010, 09:24) А Вы не...   Nov 10 2010, 10:00
- - Spym   Цитата(Сергей Борщ @ Nov 4 2010, 15:39) П...   Nov 4 2010, 13:18


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:10
Рейтинг@Mail.ru


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