www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Leon3 auf Spartan6 bekommen (Probleme)


Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

Ich versuche den freien Leon3 Prozessor auf den FPGA vom Spartan-6 SP601 
Evaluation Board von Xilinx zu bekommen.

Hier der Link zur GRLIB mit dem Leon3:
http://www.gaisler.com/cms/index.php?option=com_co...

Ich verwende Cygwin, gehe zum Ordner 
grlib-gpl-1.0.22-b4095\designs\leon3-xilinx-sp601 und führe make xconfig 
aus. Hier kann man die Einstellungen für den Processor vornehmen.
Danach kompiliere ich sie mit dem befehl make ise-map.
Dabei bekomme ich folgende Fehlermeldungen:

Error:XST:2937 - Processing TIMESPEC OFFSET: No signal name erx_clk 
found in design.

Error:XST:1489 - Constraint annotation failed.

Ich habe Ethernet deaktiviert, deswegen dürfte er die erx_clk garnicht 
erst verwenden. Er findet es nicht obwohl es sowohl beim Design, als 
auch beim Board angegeben ist.

grlib-gpl-1.0.22-b4095\designs\leon3-xilinx-sp601
grlib-gpl-1.0.22-b4095\boards\xilinx-sp601-xc6slx16\leon3mp.ucf

Hab auch schon versucht die erx_clk einfach auszukommentieren... nützt 
nichts.

Handelt es sich hierbei um einen Bug? Hat jemand einfach eine Zuweisung 
vergessen?

Gruß pod

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Schembri schrieb:
> Error:XST:2937 - Processing TIMESPEC OFFSET: No signal name erx_clk
> found in design.
>
> Error:XST:1489 - Constraint annotation failed.
>
> Ich habe Ethernet deaktiviert, deswegen dürfte er die erx_clk garnicht
> erst verwenden. Er findet es nicht obwohl es sowohl beim Design, als
> auch beim Board angegeben ist.

Da ist xst schlampig programmiert, eine Warnung hätte gereicht.
Probier mal alle "erx_clk"-Vorkommen im .ucf auszukommentieren.
(Oder wahlweise Ethernet drinzulassen.)

Duke

Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die Antwort.

Ich habs jetzt hinbekommen. Ich habe alles was mit erx_clk und etx_clk 
zu tun hatte rauskommentiert und die Variable lock.
Ich hab auch das komplette Ethernet und den DDR2 SDRAM (Der laut Gaisler 
noch nicht unterstützt wird) rauskommentieren müssen.

Jetzt konnte ich fehlerfrei mit make ise-map und make ise kompilieren.

Hab die bitfile über Impact auf den FPGA geschrieben bekommen =)


Aber jetzt das nächste Problem:

Ich möchte das nun mit GRMON hardwaredebuggen. Er erkennt den FPGA.

Aber ich bekommen immer die Fehlermeldung:

"AMBA Plug and Play not found"

Was hat es mit diesem AMBA (Ein Bus?) auf sich?

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir hat GRLIB mit CYGWIN nie richtig funktioniert. Laut Jiri Gaisler 
kann er die Software nicht den laufenden Softwareupdates von Windows und 
Cygwin anpassen. Ich habe deshalb LINUX installiert und konnte dann 
relativ problemlos damit arbeiten.
Allerdings hatte mein Boarddesign auch einige kleinere Bugs. Die Boards 
sind meist selbst von Usern bereitgestellt und deshalb nicht immer ganz 
fehlerfrei.
Ich kann dir unbedingt empfehlen, dich der Mailingliste bei Yahoo 
anzuschließen.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Schembri schrieb:
> Ich möchte das nun mit GRMON hardwaredebuggen. Er erkennt den FPGA.
Gut. Welche Schnittstelle verwendest Du für GRMON?


> Aber ich bekommen immer die Fehlermeldung:
> "AMBA Plug and Play not found"
>
> Was hat es mit diesem AMBA (Ein Bus?) auf sich?
Ja. AMBA ist ein Bus-System (AHB, APB, AXI, etc.), welches von ARM 
entworfen wurde. Die grlib macht intensiven Gebrauch davon.

Duke

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Xilinx USB (USB JTAG) verwendet.

Das Amba Problem hab ich gelöst. Ich hab die bereits vorgegebenen 
Einstellungen im Xconfig genommen. Habs nochmal neu Compiliert.

Jetzt meckert er aber im GRMON wegen eines fehlenden Stack Pointers. Da 
bin ich grad am rumprobieren. Debuggen kann ich. Ich sehe die 
Speicherbereich in Hex.
Aber ich kann z.B. kein HelloWorld Programm ausführen...

Ich glaub das liegt an den Xconfig Einstellungen. Das ist wohl ein 
gewisses feingefühl gefordert.

Bei der Mailingliste hab ich mich jetzt angemeldet.

Danke für die zahlreiche Unterstütztung =)

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok das problem mit dem stackpointer hab ich auch gelöst, lag an ner 
Einstellung.

Jetzt kann ich aber immer noch kein hello world ausführen...

Er bringt immer diese Meldung: IU in error mode (tt = 0x02)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel schrieb:
> Jetzt kann ich aber immer noch kein hello world ausführen...
>
> Er bringt immer diese Meldung: IU in error mode (tt = 0x02)

Ist Dein Programm richtig im Speicher abgelegt? (verify?)
tt = 0x02 heißt doch illegal instruction, oder?!

Duke

Autor: Daniel Schembri (pod)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Er legt das Programm immer bei 0x40000000 ab

die befehle "run" und go 0x40000000 bringen immer diese fehlermeldung.

Verify c:/helloworld/release/helloworld bringt auch Fehlermeldungen...

Ich hab hier mal ein paar Screenshots gemacht:

Der erste zeigt das Initialisieren und das runterladen des Programms an.
Das zweite die info sys
und das dritte den verify error

Kann es sein das ich überhaupt keinen Speicher habe? oder keinen 
Zugriff?


Ich steh irgendwie auf der Leitung...

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Schembri schrieb:
> Kann es sein das ich überhaupt keinen Speicher habe?

Doch Du hast welchen, den "AHB static RAM". Aber der liegt bei 0xA000..
Bei 0x4000.... liegt laut Deiner memory map nichts. (Üblicherweise packt 
man dort den DDR-Ram hin.)

Duke

Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Doch Du hast welchen, den "AHB static RAM". Aber der liegt bei 0xA000..
> Bei 0x4000.... liegt laut Deiner memory map nichts. (Üblicherweise packt
> man dort den DDR-Ram hin.)

Und wie lad ich mein Programm in den "AHB static RAM"?

Ich find den Befehl nicht. Das wäre ja die Addresse 0xA000.

Wie komm ich dahin?

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal ins Linkerskript. Da müssten die Adressen angegeben sein.

Duke

Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt die addressen manuell geändert mit dem Compiler.
Aber ich glaube der Platz reicht nicht für eine HelloWorld Anwendung aus

Ich bekomme beim debuggen mit GRMONRCP einen Speicherbereich von 0x00 - 
0xfc angezeigt.

Für das Helloworld braucht er aber mindestens vierstellig.

Bekomme deshalb immernoch denselben fehler. Obwohl der Adressbereich von 
data und text anders ist.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest auch den AHB static RAM an die Adresse 0x4000.... legen.
Laut Deinem debug-Log sollte der RAM 4kB groß sein.

Duke

Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, hab ich jetzt auch mal probiert. hat sich nichts geändert.

illegal_instruction: UNIMP or other un-implemented instruction.

Hab schon einiges Probiert. Ich glaub nicht das es an der 
Hardwarekonfiguration liegt.

Vielleicht ist es ja ein Fehler von Softwareseite , ein 
Programmierfehler?
Aber der Compiler bringt mir keine Fehlermeldungen...

Naja mal schauen^^

Danke für deine Hilfe. Schönes Wochenende wünsche ich euch =)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.