Forum: FPGA, VHDL & Co. scanf in NIOS


von Holzi (Gast)


Lesenswert?

Hi,

ich versuche etwas aus NIOS in der console einzulesen und bekomme 
folgende Fehlermeldung "undefined reference to `scanf'".
1
printf("Bitte geben Sie eine Zahl ein : ");
2
scanf("%d",&state);      /* Wartet auf die Eingabe */
3
printf("Die Zahl die Sie eingegeben haben war %d\n",state);

habe auch die stdio.h eingebunden!

von Harald F. (hfl)


Lesenswert?

Hi Holzi,

stdio.h stellt nur den Compiler zufrieden, die Meldung kommt aber vom 
Linker. Welches Tools setzt Du denn überhaput ein? IDE, SBT, Version?

Grüße,
Harald

von Holzi (Gast)


Lesenswert?

Hi,

ich benutze NIOS 2 die 9er Version mit Quartus!

von Harald F. (hfl)


Lesenswert?

NIOS II 9.0 IDE? Das nehm ich auch. Und bei mir geht scanf() problemlos. 
Wie hast Du denn das Projekt aufgesetzt? Welches Template hast Du 
verwendet? Wie sind die Einstellungen der syslib? Lass Dir doch nicht 
alles aus der Nase ziehen! Schreib mal mindestens 10 Zeilen über dein 
Problem.

Grüße,
Harald

von Holzi (Gast)


Lesenswert?

ich habe soeben die Antwort gefunden. Ich habe die small Library als 
Option eingstellt und genau daran lag es. Nachdem der Hacken raus war, 
funktioniert dies jetzt einwandfrei.
Jetzt habe ich nur ein Problem, dass scanf immer beim Einlesen auf eine 
Eingabe wartet. Dies möchte ich jedoch nicht! Wie kann ich das umgehen?

von Harald F. (hfl)


Lesenswert?

Na ja, ich würde dir raten, mal etwas Literaturstudium zu den 
verfügbaren Bibliotheksfunktionen zu betreiben. Die NIOS IDE bietet die 
Newlib C Library, und da gibt es meines Wissens kein kbhit(). Vielleicht 
mit getchar() die Zeichen abholen, in einen Puffer schreiben, und dann 
sscanf auf den Puffer loslassen. Oder auch anders. Erwarte bitte nicht, 
dass ein Forum dir das Lernen erspart.

Grüße,
Harald

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.