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


von Emp (Gast)


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

von nimbus4 (Gast)


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.

von FPGAküchle (Gast)


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 ?!

von nimbus4 (Gast)


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.

von FPGAküchle (Gast)


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

von nimbus4 (Gast)


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

von Emp (Gast)


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

von Emp (Gast)


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

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.