Hi,
ich habe das Forum hoch und runter durchsucht und finde nichts was mir
weiterhilft.
Ich will das Tutorial hello_world mit Hilfe von NIOS II Eclipse 11.1 auf
der Console anzeigen lassen. Im Grunde muss man selber nichts machen
außer built und run. Jedoch wird bei mir in der NIOS-Console nichts
angezeigt.
In der anderen Console von NIOS II Eclipse steht folgendes:
Processor is already paused
Reading System ID at address 0x00081018:
ID value was not verified: value was not specified
Timestamp value was not verified: value was not specified
Initializing CPU cache (if present)
OK
Downloading 00040000 ( 0%)
Downloading 00046F4C (76%)
Downloaded 28KB in 0.4s (70.0KB/s)
Verifying 00040000 ( 0%)
Verifying 00046F4C (76%)
Verified OK
Starting processor at address 0x000401B4
Ich habe System ID und Timestamp check ausgemacht.
Zudem habe ich die richtie .sopc eingebunden und diese auch correct
erstellt, da ich mit Hilfe dieser Datei via Quartus II eine LED habe
blinken lassen.
Warum verifiziert er nicht bis 100%? Und warum zeigt er nichts in der
NIOS II Console nichts an?!
MfG
Himenek
Himenek schrieb:> Ich habe System ID und Timestamp check ausgemacht.
Warum? Wenn es hier einen Fehler gibt, solltest du den erst mal beheben.
> Zudem habe ich die richtie .sopc eingebunden und diese auch correct> erstellt,
Das heist doch jetzt .sopcinfo und nicht mehr .sopc
Bevor du irgend etwas ausführst, prüf erst mal, ob im Bildschirm "Debug
Configurations" keine Fehler angezeigt werden und dass die System ID und
Timestamp korrekt sind.
Hallo Himenek,
1. Warum verifiziert er nicht bis 100%?
2. Und warum zeigt er nichts in der NIOS II Console nichts an?!
1. "Er" verifiziert bis zu 100%, denn "er" sagt ja Verified OK
2. Ich kann dir nicht sagen, warum keine Ausgabe in der Konsole erfolgt.
Du hast offensichtlich "run as hardware" angewählt. Nimm mal "debug as
hardware" und steppe durch den Code. Da sieht man dann etwas besser,
woran es liegen könnte.
Timestamp und System ID sollten keine Auswirkung haben, die Checks
schalte ich auch oft aus. Man muss sich aber schon sicher sein, dass das
richtge sof-File in das FPGA geladen ist.
Grüße,
Harald
@Johannes
stimmt es heißt .sopcinfo
@Harald & Johannes
Habe Debug as hardware gemacht und es kam keine Fehlermeldung.
Im debug werden lediglich die drei schritte angezeigt, welche er
ausführt
zusammengefasst
start()
alt_main()
main() hello_world
es steht aber auch, terminated exit value: 0
was mich ein wenig wundert, denn es sollte ja ("Hello from Nios II!\n")
herauskommen
Hallo,
in einem ähnlichen Fall war bei mir mal der Clock zu hoch. Schau mal
nach der Synthese welche max. Clock dein FPGA schafft, und geh mit dem
Clock für den CPU-Core um 25% drunter.
Ciao, Günter
Himenek schrieb:> @Johannes>> stimmt es heißt .sopcinfo>> @Harald & Johannes>> Habe Debug as hardware gemacht und es kam keine Fehlermeldung.> Im debug werden lediglich die drei schritte angezeigt, welche er> ausführt>> zusammengefasst> start()> alt_main()> main() hello_world>> es steht aber auch, terminated exit value: 0>> was mich ein wenig wundert, denn es sollte ja ("Hello from Nios II!\n")> herauskommen
Man kann irgendwo einstellen, ob die Standard-Ausgabe per JTAG-Uart oder
auf einem normalen Uart ausgegeben werden soll. Vielleicht gibt es hier
ein Problem? Hast du überhaupt einen JTAG-Uart im System.
Kannst du das Programm im Einzelschritt-Modus debuggen?
Also im Debug stoppt er bei mir beim printf(...) Befehl, da dort
automatisch ein Brakpoint gesetzt ist (Warum auch immer). Lasse ich ihn
dann weiter laufen, stoppt er beim jtag_uart und zwar in der
WHILE-Schleife:
int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int
flags)
{
/*
* Wait for all transmit data to be emptied by the JTAG UART ISR, or
* for a host-inactivity timeout, in which case transmit data will be
lost
*/
while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout)
) {
if (flags & O_NONBLOCK) {
return -EWOULDBLOCK;
}
}
return 0;
}
will ich von diesen Punkt aus weiterlaufen lassen, verweilt er endlos in
dieser Schleife vermute ich.
@Günter: Habe den Takt auf 37MHz runtergeschraubt und alles neu
kompiliert
@Johannes: Habbe das DE2-115 mit Cyclone IV E Chip. Also ist JTAG Uart
vorhanden.
Himenek schrieb:> @Johannes: Habbe das DE2-115 mit Cyclone IV E Chip. Also ist JTAG Uart> vorhanden.
Mit meine Frage habe ich eigentlich gemeint, ob du im SOPC-Builder einen
JTAG-Uart eingefügt hast und ob die Standard-Ausgabe auch darauf
eingestellt ist.
@ Jochen:
In NIOS II fpr Eclipse in hello_world_BSP unter Properties-> BSP Editor.
Ist in STDIN und STDOUT JTAG_UART angegeben.
Ist es das was du meintest mit Standardausgang?
Wenn nein, wo finde ich den Standardausgang?
Lg
Himenek schrieb:> Ist es das was du meintest mit Standardausgang?
Ja, das ist dann so richtig.
Aufgrund deiner Fehlerbeschreibung vermute ich, dass der Nios mit printf
Zeichen in den JTAG-Uart schreibt, die Daten aus dem JTAG-Uart aber
nicht abgeholt werden. Dadurch bleibt der Nios dann in der
Endlosschleife hängen.
Hast du evtl. im Tab "Target Connection" die Checkbox "Disable Nios II
Console View" eingeschaltet?
Bist du dir wirklich sicher, dass die richtige Konfiguration auf dem
Altera läuft? Hast du System ID und Timestamp Check wieder
eingeschaltet?
@Johannes:
Habe unter "Target Connection" bei "Disable NIOS II Console" kein
Häkchen, da ich es ja nicht disabled haben möchte.
System ID und Timestamp habe ich immer noch als ignore, da unter "System
ID Properties" überall "not found" steht.
Muss ich, um System ID und Timestamp zu erhalten, in SOPC "sys id"
hinzufügen oder wie kann ich diesen Fehler umgehen?