|
|
  |
Как заставить в GCC printf выдавать в UART |
|
|
|
Dec 14 2007, 07:45
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 10-04-06
Пользователь №: 15 981

|
Хочу сделать чтобы функции, выводящие в стандартный вывод, выдавали например в UART. Но пока не могу найти какие функции в GCC нужно определить или переопределить.
|
|
|
|
|
Dec 14 2007, 07:58
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(Alexey75 @ Dec 14 2007, 10:45)  Хочу сделать чтобы функции, выводящие в стандартный вывод, выдавали например в UART. Но пока не могу найти какие функции в GCC нужно определить или переопределить. А причем здесь GCC? Printf выводит в стандартный поток вывода, а куда он назначен - зависит от системы, командной строки и т.д. Дистанция может быть большой.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Dec 14 2007, 08:16
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 10-04-06
Пользователь №: 15 981

|
Цитата(v_shamaev @ Dec 14 2007, 10:58)  А причем здесь GCC? Printf выводит в стандартный поток вывода, а куда он назначен - зависит от системы, командной строки и т.д. Дистанция может быть большой. Системы нет, программа пишется для контроллера, хочу для отладки через printf выводить сообщения в UART
|
|
|
|
|
Dec 14 2007, 09:10
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(Alexey75 @ Dec 14 2007, 11:16)  Системы нет, программа пишется для контроллера, хочу для отладки через printf выводить сообщения в UART Понятно. Тогда библиотеки и sturtup править надо - в т.ч. и сам printf - убрать избыточность. Насколько помню, выводом занимается putc().
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Dec 14 2007, 10:26
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 10-04-06
Пользователь №: 15 981

|
Определяю putchar, но при использовании printf, новая putchar не вызывается
|
|
|
|
|
Dec 14 2007, 10:47
|

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

|
Цитата(Alexey75 @ Dec 14 2007, 13:26)  Определяю putchar, но при использовании printf, новая putchar не вызывается попрообуй определить _putchar или или как __putchar странненько. пройдись по выходному файлу arm-elf-objdump -D -S image.elf > image.lss посмотри куда реально уходит printf
|
|
|
|
|
Dec 14 2007, 11:21
|
Частый гость
 
Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167

|
Цитата(Alexey75 @ Dec 14 2007, 16:26)  Определяю putchar, но при использовании printf, новая putchar не вызывается Не надо никаких putchar. Есть специальные функции "system calls". Они должны быть портированы под твою платформу. Все зависит от того, с какой библиотекой собран gcc. Если с newlib, то делать надо так: http://www.siwawi.arubi.uni-kl.de/avr_proj...ects/#gcc_stdioПосмотри также документацию на newlib: http://sourceware.org/newlib/P.S. В newlib функция printf жрет память и ресурсы безбожно, советую по возможности не пользоваться. Если все таки будешь не забудь выделить стек побольше. Для printf надо что-то около 500 байт.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|