mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx ISE und EDK: Frage zu *.elf und *.bit Files


Autor: Emp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich benutze das ML403 von Xilinx(Virtex4) und habe über das EDK zum
einen die Hardware .bit und zum anderen die Software .elf erzeugt.
Bis jetzt habe ich nur die Möglichkeit die Software über den Debuger zu
starten.
Mit Impact konnte ich bis jetzt nur das bit File ins Flash laden, die
Software jedoch nicht.
Ist jetzt alles etwas kurz gefasst, hab aber im Moment nicht viel
Zeit.
Deshalb meine Frage: Wie kann ich die Hardware zusammen mit der
Software in das Flash schreiben, so das sich das ganze System im Flash
befindet und von dort gestartet werden kann?

Viele Grüße
Emp

Autor: nimbus4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach meinen Unterlagen markiert man beim entsprechenden Softwareprojekt
im EDK die Option "Mark to Initialize BRAMs". Danach compiliert man
mit entsprechenden Linker-Informationen und beim Aktivieren von
Tools->Download werden bit-stream und Programmcode automatisch zu einem
neuen bit-file verknüpft, daß dann in den FPGA geladen wird.
Alternativ kann man wohl in Impact auch bit-stream + programmcode
auswählen, die dann erst hier kombiniert werden.

Vielleicht ne kurze Gegenfrage: Nutzt du das EDK mit einer ISE Voll bzw
Evaluation Version oder dem ISE Webpack. Bin im Moment etwas darüber
irritiert, daß man  zum Nutzen des EDK offensichtlich eine
Voll/Evaluation-Version des ISE benötigt.

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#Vielleicht ne kurze Gegenfrage: Nutzt du das EDK mit einer ISE Voll
bzw
#Evaluation Version oder dem ISE Webpack. Bin im Moment etwas darüber
#irritiert, daß man  zum Nutzen des EDK offensichtlich eine
#Voll/Evaluation-Version des ISE benötigt.

Hm, ich glaub ich hab ein 6.3 Webpack mit einem 6.3 Voll-EDK verwendet.
Das man die Voll-ISE braucht wäre neu. Voll-ISE macht doch das selbe
wie's Webpack und unterstützt zusätzlich die ganz dicken FPGA's ?!

Autor: nimbus4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vom Gefühl her würde ich das gleiche sagen. Es macht meines Erachtens
keinen Sinn, für das EDK eine ISE Vollversion zu verlangen. Habe
allerdings im Moment einmal ISE Webpack 8.1, einmal ISE Weppack 8.2 und
EDK 8.1 installiert und das EDK weigert sich zu starten mit der Meldung
eine gültige ISE Version könnte nicht gefunden werden.
Vielleicht beißen sich die beiden Webpack Versionen. Werde mal
versuchen, daß herauszufinden bzw. mal bei Xilinx nachfragen.

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schätze letzteres. Mir ist (nach halbherzigen) Versuchen nicht gelungen
ein EDK Vers x mit ISE-Webpack Vers y ans laufen zu kriegen wenn x /=
y. Zumindest das EDK 6.3 läuft nur mit ISE 6.3

Autor: nimbus4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich genauso herausgestellt: EDK 8.1 benötigt ganz offensichtlich
nicht eine ISE-Version sondern eine 8.1 ISE-Version egal ob
Webpack/Voll/Evaluation. Da ich ISE 8.2 nach 8.1 installiert hatte hat
es wohl in der Registry einige Werte auf 8.2 gesetzt die das EDK
irritiert haben, obwohl die Umgebungsvariablen auf das ISE81
Verzeichnis gezeigt haben. Jetzt läuft es auf jeden Fall nachdem ich
einfach noch einmal ISE8.1 installiert hab.

Auf jeden Fall vielen Dank für die Tipps: Hatte gefürchtet, das Geld
für das EDK in die Tonne gehauen zu haben

Autor: Emp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Nach meinen Unterlagen markiert man beim entsprechenden
Softwareprojekt
>im EDK die Option "Mark to Initialize BRAMs". Danach compiliert man
>mit entsprechenden Linker-Informationen und beim Aktivieren von
>Tools->Download werden bit-stream und Programmcode automatisch zu
einem
>neuen bit-file verknüpft, daß dann in den FPGA geladen wird.

Ja das is richtig. Da ich in meinem Projekt ein RTOS und einen TCP/IP
Stack verwende ist der BRAM natürlich zu klein.Im EDK gibt es ja die
Option die Software (*.elf) in das linear Flash zu laden.
Tools>Program Flash Memory
Dort wird auch ein entsprechnder Bootloader erzeugt der dann ja in das

*.bit File integriert wird.

Also hier nochmal meine Vorgehensweise:

EDK:
Hardware generiert (system.bit)
Sofware compiliert (*.elf)
Program Flash Memory (Software ins lin. Flash geschrieben,Bootloader)
Update Bitstream (Bootloader dem Bitstream hinzugefügt)

Impact:
Aus dem *.bit File ein *.exo File erzeugt und das ganze ins
Platformflash geschrieben.

Die Hardware wird aus dem Platformflash wird korrekt geladen (über XMD
übeprüft), allerdings wird die Software nicht gestartet.
Ich dachte erst es liegt daran das ich Hardware und Software in
unterschiedliche Flashspeicher geladen hab aber im Bootloader wird die
absolute Adresse verwendet. Ich dachte erst, dass der Bootloader nur
mit einem Offset arbeitet und quasi im Platform Flash nachguckt.


>Alternativ kann man wohl in Impact auch bit-stream + programmcode
>auswählen, die dann erst hier kombiniert werden.

Hab ich bis jetzt noch nicht gesehen wo man das machen kann.
Ich muss meine Software ja auch ins DDR kriegen.

>Vielleicht ne kurze Gegenfrage: Nutzt du das EDK mit einer ISE Voll
>bzw. Evaluation Version oder dem ISE Webpack.

Ist die Vollversion, bin Student bei Siemens. Das Problem ist das ich
hier der erste bin der mit dem EDK arbeitet und mir hier auch keiner so
wirklich helfen kann. Ist immer blöd wenn man mit dem eigentlichen
Projekt nicht weiter kommt.

cu

Emp

Autor: Emp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
So es funktioniert jetzt,war alles soweit richtig ;-).
Der Bootloader versucht auf den Uart zuzugreifen und hängt dann in
einer while-Schleife fest.

Ich hab aber noch ein viel größeres Problem und das laden aus dem Flash
sollte dieses Problem eingrenzen. Jetzt kann ich zwar einige Sachen
ausschließen aber das Problem bleibt.
Ich mach morgen mal einen neuen Thread auf, vielleicht guckt ihr da ja
auch mal rein ;-).

Besten dank

Emp

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.