Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: работа с getchar()
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
_Anatoliy
Коллеги,а какой хедер нужно подключить для работы с этой функцией? <stdio.h> не помогает,компилятор пишет что функция не определена.
doom13
Цитата(_Anatoliy @ May 12 2014, 17:26) *
Коллеги,а какой хедер нужно подключить для работы с этой функцией? <stdio.h> не помогает,компилятор пишет что функция не определена.


Если хотите для Nios II её использовать, то она не поддерживается NiosII Small newlib C Library.
_Anatoliy
Цитата(doom13 @ May 12 2014, 17:47) *
Если хотите для Nios II её использовать, то она не поддерживается NiosII Small newlib C Library.

Спасибо.Очень жаль что не поддерживается.
Попробую без Small,но памяти не очень много,боюсь может не хватить.
Kuzmi4
2 _Anatoliy
Используйте alt_getchar + #include "sys/alt_stdio.h" для Small C Library.
laughing.gif
_Anatoliy
Цитата(Kuzmi4 @ May 12 2014, 18:56) *
2 _Anatoliy
Используйте alt_getchar + #include "sys/alt_stdio.h" для Small C Library.
laughing.gif

О,спасибо,я так и сделаю.
doom13
Цитата(Kuzmi4 @ May 12 2014, 18:56) *
2 _Anatoliy
Используйте alt_getchar + #include "sys/alt_stdio.h" для Small C Library.
laughing.gif


Можно ли что-то подобное применить для scanf?
Kuzmi4
2 doom13
На сколько я знаю - нет.
Вот список "легковесных" ф-ций из alt_stdio.h:
Код
int alt_getchar();
int alt_putchar(int c);
int alt_putstr(const char* str);
void alt_printf(const char *fmt, ...);

Больше "легковесных" ф-ций такого плана я не встречал у альтеры.
_Anatoliy
Коллеги,ну достал уже этот Eclipse со своими глюками.На макетной плате отладил периферию, начал собирать новый проект для штатной платы с теми же настройками,для этого файл *.qsys скопировал из отладочного проекта в новый проект Квартуса(конечно скопировал и исходники на С). Откомпилировал новый проект Квартуса. После этого новый проект Eclipse не собрался , ругня идёт на библиотечный файл "altera_avalon_spi.с", дескать отсутствует определение SYSTEM_BUS_WIDTH. Поиск по файлам библиотеки ничего не дал,кто знает что это за макрос и где он должен быть объявлен - подскажите,плз,времени совсем нет,горю.Как решить эту проблему?
Kuzmi4
Цитата(_Anatoliy @ May 21 2014, 19:02) *
...отсутствует определение SYSTEM_BUS_WIDTH....

Находится оно в BSP(public.mk):
Код
..\sw_bsp\public.mk

строчка:
Код
# Default C pre-processor flags for a BSP:
ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \
                -pipe

С этим флагом потом компилится исходник в котором используется этот дефайн.


Но это странно, у вас должна была так же вывалится ошибка для io.h: SYSTEM_BUS_WIDTH undefined
Смотрите логи - как оно весь проект собирает..
_Anatoliy
Цитата(Kuzmi4 @ May 21 2014, 20:21) *
Находится оно в BSP(public.mk):
Код
..\sw_bsp\public.mk

строчка:
Код
# Default C pre-processor flags for a BSP:
ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \
                -pipe

С этим флагом потом компилится исходник в котором используется этот дефайн.


Но это странно, у вас должна была так же вывалится ошибка для io.h: SYSTEM_BUS_WIDTH undefined
Смотрите логи - как оно весь проект собирает..

Спасибо!
В том то и дело что компилируется проект без ошибок,заливаю в чип - программа зависает. Пошаговой отладкой дошёл что зависает в spi, и когда открыл файл altera_avalon_spi.с увидел что там весь исходник в ошибках.
Где этот макрос объявляется теперь понятно,но как теперь с этим бороться?Пересобирал несколько раз bsp и qsys , никакого толка.
У меня вообще вся система работает как-то странно,о том что запущенную программу невозможно остановить я вам уже писал,часто ещё не видятся в проекте некоторые дефайны из файла system.h,приходится их дублировать в теле сишного файла.Где бы бубен взять... А не может это быть от малости оперативки(у меня всего 2Гб)?
doom13
Цитата(_Anatoliy @ May 21 2014, 21:42) *
Спасибо!
Коллеги,ну достал уже этот Eclipse со своими глюками.На макетной плате отладил периферию, начал собирать новый проект для штатной платы с теми же настройками,для этого файл *.qsys скопировал из отладочного проекта в новый проект Квартуса(конечно скопировал и исходники на С). Откомпилировал новый проект Квартуса. После этого новый проект Eclipse не собрался , ругня идёт на библиотечный файл "altera_avalon_spi.с", дескать отсутствует определение SYSTEM_BUS_WIDTH. Поиск по файлам библиотеки ничего не дал,кто знает что это за макрос и где он должен быть объявлен - подскажите,плз,времени совсем нет,горю.Как решить эту проблему?

Такая же ошибка тоже неоднократно возникала при анологичных манипуляциях, обычно проблема решается созданием нового проекта для NiosII + нового BSP (на основе старой Qsys системы), потом копируем в папку проекта си исходники и всё работает.
Ещё, может и очевидная штука, но при копировании BSP он ссылается на директорию в которой был изначально создан, через BSP Editor можно выбрать New BSP и перетереть все файлы BSP в рабочей директории, если не ошибаюсь, тоже помогало.
_Anatoliy
Цитата(doom13 @ May 21 2014, 22:48) *

Спасибо!Сделаю как Вы сказали.
_Anatoliy
Всё заработало,убил старый ниосовский проект,создал новый с нуля,выполнил импорт исходников и вуаля. Свят-свят.
Kuzmi4
2 _Anatoliy
я вам там кажется архивчик пересылал недавно, посомтрите как там ниосовская система скриптами собирается с нуля. У меня когда гуй юзал те же проблемы были, потом вот перелез на скрипты - всё нормально собирается и работает laughing.gif
(ну кроме как когда надо в гуе отладку делать - тогда ессно глюки гуя во всей красе)
_Anatoliy
Цитата(Kuzmi4 @ May 22 2014, 09:39) *

Спасибо! Обязательно посмотрю.Эх,прощай гуй в новых проектах crying.gif
Kuzmi4
2 _Anatoliy
поверьте, гуй не стоит тех нервов, что на него тратятся cool.gif
_Anatoliy
Цитата(Kuzmi4 @ May 22 2014, 12:06) *

Это да,я вчера был на грани срыва.А такой смайлик я в шутку поставил,жалеть не о чем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.