Forum: FPGA, VHDL & Co. NiosII mit stdin steuern


von Dustin F. (nudeleisen)


Lesenswert?

Hi!

Ich habe für mein Studienprojekt einen NiosII in der Sparvariante auf 
meinen Cyclone4 geklatscht. Den NiosII hab ich erstmal sehr einfach  via 
PIO an den FPGA angebunden. Damit der Nios jetzt Befehle annehmen, 
verarbeiten und wieder an den FPGA schicken kann, wollte ich nicht die 
0815 Lösung nehmen, indem man im C-Programm auf Taster vom FPGA Board 
wartet (Quasi auch PIO), sondern das via cli/shell machen.

Ich finde leider über das Themea fast gar nichts.

Mittels nios2-terminal.exe oder der Eclipse Hardwareconsole kann ich 
"Hello from NiosII" lesen. Beide geben aber nur stdout und stderr aus 
oder?

Nun hab ich gelesen, dass man im Eclipse mit der "Altera 
Bytestreamconsole" Strings an stdin weiter geben kann. Ist das soweit 
richtig? Gibts da ein Gegenstück für die NiosII EDS/shell?

Ich bin da ein wenig verwirrt und schwanke zwischen "Das stimmt" und 
"Das ist eigentlich was ganz anderes und ich brauch ein OS"

Der nächste Schritt wäre dann im C-Programm das stdin abzufragen. Hat 
das schon mal jemand so gemacht/gebraucht?


Schon mal vielen Dank für eure immer kompetente Hilfe!
lg Dustin

von Duke Scarring (Gast)


Lesenswert?

Dustin F. schrieb:
> Der nächste Schritt wäre dann im C-Programm das stdin abzufragen. Hat
> das schon mal jemand so gemacht/gebraucht?
Ja. Täglich. Und ganz ohne großartiges Betriebssystem.

Aber erstmal brauchst Du eine bidirektionale Schnittstelle. Ich verwende 
da gerne die UART (auch über USB). Braucht wenige Leitungen und ist auch 
einfach in Betrieb zunehmen.

Duke

von Dustin F. (nudeleisen)


Lesenswert?

Duke Scarring schrieb:
> Dustin F. schrieb:
>> hat das schon mal jemand so gemacht/gebraucht?
> Ja. Täglich. Und ganz ohne großartiges Betriebssystem.

Ah sehr gut. D.h. ich bin nicht ganz auf dem Holzweg.


> Aber erst mal brauchst Du eine bidirektionale Schnittstelle. Ich verwende
> da gerne die UART (auch über USB). Braucht wenige Leitungen und ist auch
> einfach in Betrieb zunehmen.

Die JTAG-UART hab ich im sopc-builder schon mit drin. Ich hab in dessen 
Optionen mal bei PREPARE INTERAVTIVE WINDOW "INTERACTIVE_INPUT_OUTPUT" 
eingestellt. Nun kann ich in der Hardware-Console im Eclipse auch was 
rein schreiben.

Durch die JTAG-UART Schnittstelle werden input und output FIFOs 
erstellt. Schätze mal auf die muss ich zugreifen, bzw. die muss ich 
lesen?!

Kann ich mich darauf verlassen, dass wenn ich jetzt im Eclipse in der 
Hardware-Console was rein tippe das auch im Nios ankommt? Meine 
JTAG-LEDs aufm eval-Board müssten da eigentlich blinken, wenn über JTAG 
was kommuniziert wird - machen sie aber nicht (oder tun sie nicht, weil 
die Daten so klein sind und blinken sich nicht lohnt^^).
Wie gesagt - stdout: "Hello from NiosII" geht schon.


Da gibts nich zufällig n cooles Paper oder How-To drüber?

Was nimmst du für eine Applikation, um dem NiosII mit Befehlen zu 
füttern? Mit nios2-terminal.exe gehts glaube nich und jedes mal eclipse 
starten ist auch blöd.

lg Dustin

von Duke Scarring (Gast)


Lesenswert?

Dustin F. schrieb:
> Die JTAG-UART hab ich im sopc-builder schon mit drin.
Ok.

> Durch die JTAG-UART Schnittstelle werden input und output FIFOs
> erstellt. Schätze mal auf die muss ich zugreifen, bzw. die muss ich
> lesen?!
Scheint so. Für erste Tests kannst Du den RX-FIFO mit dem TX-FIFO 
verbinden.

> Kann ich mich darauf verlassen, dass wenn ich jetzt im Eclipse in der
> Hardware-Console was rein tippe das auch im Nios ankommt?
Lass doch ein kleines Echo-Programm im NIOS laufen.

> Meine
> JTAG-LEDs aufm eval-Board müssten da eigentlich blinken, wenn über JTAG
> was kommuniziert wird - machen sie aber nicht (oder tun sie nicht, weil
> die Daten so klein sind und blinken sich nicht lohnt^^).
LED-Debugging mach ich nur noch mit wirklich langsamen Signalen. Ein 
Scope oder Logic-Analyzer ist da hilfreicher.

> Was nimmst du für eine Applikation, um dem NiosII mit Befehlen zu
> füttern? Mit nios2-terminal.exe gehts glaube nich und jedes mal eclipse
> starten ist auch blöd.
Ich 'abe gar kein Auto (äh, NIOS). Ich haben einen Softcore (ZPU), auf 
dem läuft ein kleines Monitorprogramm. Und da ich zur Kommunikation die 
USB-UART verwende, nehme ich auf PC-Seite ein einfaches Terminalprogramm 
(hterm).

Aber im Prinzip ist es das Gleiche, was Du umsetzen möchtest. (Wenn ich 
Dich richtig verstanden habe.)

Duke

von Dustin F. (nudeleisen)


Lesenswert?

So,

cool... wenn mans verstanden hat, ists doch einfacher als ich dachte. 
Zugriff auf den UART-FIFO ist analog zum stink normalen UART (fopen, 
etc.). Übertragen wird dann direkt der String.
IM SOPC-Builder gabs dann noch die erwähnte "INTERACTIVE_INPUT_OUTPUT" 
Option und schon kann man mittels der NiosII Console in der Nios IDE 
Dinge schicken und empfangen.

Für ein schnelles Beispiel sowie die UART Erklärung hab ich noch ein 
Altera Paper [1] gefunden :)

okchen, damit kann man bisschen rum spielen.

THX for help!

lg Dustin


[1] http://www.altera.com.[cn]/literature/hb/nios2/n2cpu_nii51009.pdf

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.