Forum: FPGA, VHDL & Co. Microblaze Boot Memory


von Newbie_Weko (Gast)


Lesenswert?

Hallo zusammen,

vorab, bin absoluter Newbie in dem Thema. Habe mir gerade mit XPS ein 
System zusammengebaut, indem zwei Microblaze miteinander kommunizieren 
können sollen. Habe vor, die beiden über FSL zu verbinden.
Habe im BSB Wizard für einen MB den BRAM (32K) als Boot Memory 
ausgewählt.
Nun will ich nen Bootloader schreiben, häng aber noch ziemlich in der 
Luft. Stundenlanges googeln, hat mich nicht arg viel weiter gebracht. 
Kennt einer dazu ein gutes HowTo, oder kann mir nen Tip geben wie da 
rangehe (SDK?) und wie ich es testen kann, ohne ein Evaluationsboard.

I/O Geräte hängen alle am anderen MB.

Falls mein Eintrag schon irgendwo existiert bitte um url.

PS: Gedacht für ein Xilinx-Evaluationsboard

Gruss weko

von Uwe Bonnes (Gast)


Lesenswert?

Warum willst Du selbst schreiben, wass es als U-Boot wahrscheinlich 
schon gibt?

von Denis (Gast)


Lesenswert?

Um einen Bootloader zu benutzen benötigst du einen nicht flüchtigen 
Speicher.Wenn du mit dem BSB ein Projekt erstellst bindest du einen 
Speicher deiner Wahl ein (meistens gibt es ein parallel Flash und ein 
seriellen Flash auf den Xilinxboards.Dein Bootloader lässt du aus dem 
Blockram starten und compilierst das ganze.Raus kommt ein MCS File. Dein 
MCS File wandelst du mit Hilfe der Impact Software in ein bin File (PROM 
File Formatter).Dabei musst du aufpassen ob du ein Parallelflash 
benutzt,falls ja dann musst du beim Beschreiben des Flashs darauf achten 
das du das Häckchen für Parallmode setzt. Um dein C-Code mit dem 
Bootloader zu laden musst du nun dein musst du das erzeugte elf File in 
ein srec File umwandeln dazu gehst du in der EDK Umgebung unter Device 
Configuration und wählst Program Flash Memory dort kannst du dein elf 
File auswählen.Danach wählst du den Flashspeicher aus wo dein C Code in 
Form des srec Files hingeschrieben werden soll und erzeugst einen 
Bootloader.Zum Abschluss wird das srec File automatisch in den Flash 
geschrieben.

Fertig ist das Ganze

MFG
Denis

von Newbie_Weko (Gast)


Lesenswert?

Hallo zusammen,

zunächst mal Danke für die Antworten.

Hab mir das UBoot Projekt mal angeschaut, aber steige da noch nicht so 
richtig durch. Jedoch denke ich, dass mein sogenannter Bootloader viel 
einfacher zu realisieren sein muss.
Das Problem ist, dass ich in dem kompletten Themengebiet ein Newbie bin.
Also was ich mir zu dem Bootloader gedacht habe:
Ich will den Microblaze programmieren, dass er sich entsprechend meiner 
Programmierung verhält. Sozusagen mit Firmware füttern. Als Werkzeuge 
habe ich das XPS. Wie oben erwähnt habe ich den BlockRam als BootMemory 
im BSB angegeben.
Der Bootloader soll beim starten des Microblaze, dem Microblaze sagen, 
wo er hinspringen soll (bzw. wo er das entsprechenede Programm findet 
zum abarbeiten findet). Hierbei geht es in erster Linie nicht um das 
Booten, sondern darum, dass ich das Verhalten meiner MB-Programmierung 
testen kann.
Oder weiß der MB, durch die Angabe im BSB schon, wo er starten muss? 
Also wenn ich ein C-Projekt (elf-datei) in den BlockRam initialisieren 
lasse, dann arbeitet er das ab?

Gruss weko

von Denis (Gast)


Lesenswert?

Hallo Weko,

ok also wenn du nur deinen C Code überprüfen willst dann ist es am 
einfachsten ihn im BlockMemory zu initialisieren. Damit weiß der MB 
automatisch was er abarbeiten muss.

Hierzu ist es hilfreich wenn du mit der XMD Console arbeitest dadurch 
musst du nicht ständig alles neu runterladen. Diese findest du unter 
Debug unter Launch XMD damit verbindest du das JTAG Interface mit dem 
MB. Wenn du nun deinen C Code als Elf File compilierst kannst du einfach 
den MB mit dem Befehl stop anhalten. mit dem Befehl dow 
executable.elf(aber vorsicht du musst vorher noch in das Verzeichniss 
gehen wo dein executable.elf liegt)kannst du es in den BlockMemory laden 
und mit dem befehl run das File einmal ausführen oder mit dem Befehl con 
in einer Schleife ausführen.

Den Bootloader benötigst du erst wenn du ein Programm aus dem Flash 
laden möchtest. zum erstellen von Software ist es besser mit der Console 
zu arbeiten erst wenn diese fertig ist lässt du dir automatisch einen 
Bootloader erzeugen der dann das fertige Programm aus dem Flash holt 
falls dieses zu groß für den Block Memory sein sollte.

von Newbie_Weko (Gast)


Lesenswert?

Hallo,

Danke Denis, du hast mir schon sehr weitergeholfen. So langsam beginne 
ich die Sache besser zu verstehen. Was natürlich weitere Fragen 
aufwirft. Würde es dir was ausmachen, wenn du mir per EMail noch die 
eine oder andere Frage beantworten würdest?
Zum Beipsiel würde ich gerne wissen, wie mächtig die Debug-Module sind. 
Würde gern eines als Master am PLB betreiben, um Informationen, die es 
durch die Debug Schnittstelle am Microblaze erhalten soll anhand einer 
seriellen Schnittstelle (UART) auslesen kann.

Gruss weko

von Denis (Gast)


Lesenswert?

Hallo weko,

wenn ich dir weiterhelfen kann sollte es kein problem sein. Dazu 
bräuchte ich nur mal deine Emailadresse. Meine kann ich hier leider 
nicht posten(hab nur ne offizielle Firmenadresse),aber ich würde mich 
dann bei dir melden.

Gruß Denis

von Newbie_Weko (Gast)


Lesenswert?

Hallo Denis,

meine Emailadresse ist platinu@gmx.de.

Danke.

gruss weko

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.