Hallo zusammen, wie kann man FPGA-bitfile interpretieren dann anschließend über Mikrocontroller in SPI-Seriell Flash programmieren? (danach kann FPGA selbst mit Master SPI-Mode programmiert werden) Ich hab den xillinx spartan 3A, und SST25v-seriellFlash. So ein Vorgehen kann ich mir vorstellen: 1. bitgen : --> *.bit file 2. promgen: *.bit file --> *.bin file oder *.msc file 3. bin2hex: *.bin --> *.hex (intel Hex) was muss ich mit diesen msc oder hex file machen? Wie die Daten in hexfile, mcs-file in dem seriell Flash abgespeichert werden? danke im vorraus! Tequila
Bin2Hex brauchst du nicht, das mcs File ist im Intel Hex Format. Das Format ist überall genauestens erklärt, musst du nur auslesen und in den Flash schreiben. Kannst natürlich auch hex2bin nehmen, dann kannst du das bin File 1:1 in den Flash bringen. Ansonsten ist erst bitgen und dann promgen schon richtig. Bitgen ist ja Teil des ISE Design Flows, Promgen ist bei Impact dabei. Kann promgen denn überhaupt bin? Hab ich noch gar nicht gesehn.
danke Christian für die antwort!^^ Christian R. schrieb: > Kann promgen denn überhaupt bin? Ja kann er, bei impact findet man nur Hex output-file. Wenn mann über Befehl-promt, Befehl fenster ihn aufruft, gibt option für BIN-outputfile. http://www.xilinx.com/itp/xilinx6/books/data/docs/dev/dev0131_19.html Wie kann man mit µC den hex(oder bit)- file in Flash bringen? Ich hab schon den flash-driver, er kann den flash byteweise programmieren. Meine Vorstellung: 1. Weil in intel-hexfile gibt noch Intelhex-Datensatzformat(also nicht nur die echte Data sondern auch information, Datensatzanfang mit ":" .....). Muss ich nur die echte Daten-bytes in flash programmieren? 2. Wie kann ich den Hexfile vom PC über UART zum µC? Normal Terminal program kann nur ein string über Eingabenfenster schicken, oder`?
Servus, ich weiss von anderen Herstellern wie Lattice, dass die schon komplette C-Sourcen für die Programmierung der FPGAs vom uC anbieten. Vielleicht gibts ja so etwas von Xilinx auch? Gruss Lupi
Lupinus Digitalus schrieb: > Vielleicht gibts ja so etwas von Xilinx auch? XAPP056, XAPP098 und ähnliche...
Tequila schrieb: > Muss ich nur die echte Daten-bytes in flash programmieren? Ja, nur die Nutzinformation.
Christian R. schrieb: > Ja, nur die Nutzinformation. danke euch alle! in *.BIN - file sehe ich : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff aa 99 30 a1 00 07 20 00 31 61 09 ee 33 21 3c 0f 31 a1.... .............. 30 a1 00 0d 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 Soll ich ab "aa"-Byte bis zum Ende-Byte "00" in SPI-Flash ablegen? Und ab SPI-Address 0? Habt ihr docu, indem beschrieben wird, wie der FPGA die Konfigdaten von SPI-Flash holt?
Tequila schrieb: > Soll ich ab "aa"-Byte bis zum Ende-Byte "00" in SPI-Flash ablegen? Und > ab SPI-Address 0? Die vielen FFs sind das sog. Dummy Word, das vor dem Synchronization Word (AA99..) im Bitstream kommt. Siehe dazu S. 332 in UG332 ;) Ich würde die FFs also mit ins SPI-Flash packen. > Habt ihr docu, indem beschrieben wird, wie der FPGA die Konfigdaten von > SPI-Flash holt? Hast Du den UG332 schon durchgeschaut? Grüße, Anguel
Tequila schrieb: > Christian R. schrieb: >> Kann promgen denn überhaupt bin? > > Ja kann er, bei impact findet man nur Hex output-file. Wenn mann über > Befehl-promt, Befehl fenster ihn aufruft, gibt option für > BIN-outputfile. Übrigens habe ich jetzt festgestellt, dass auch Bitgen anscheinend direkt BIN Dateien erzeugen kann (siehe Optionen in der IDE), so dass man gar kein Promgen braucht. Siehe auch hier: http://www.xilinx.com/support/answers/14468.htm Grüße, Anguel
Kleiner Tipp: In einem Design habe ich folgendes getan: Der SPI des µCs wird mit 2 CSs an den FPGA gelegt. Im Flash befindet dich über JTAG programmiert eine Art Bootloader-Image ab Adresse 0. Über das eine CS erfolgt der Datenaustausch mit dem FPGA, über das andere CS erfolgt der direkte zugriff durch den FPGA auf den Flash. Die eigentliche Anwendungs-Image (oder auch mehrere) liegt (liegen) dann in höheren Speicherbereichen des Flashs. Über die SPI löse ich dann ein ReBoot des FPGAs an der gewünschten Flashadresse aus. Der ReBoot ist recht einfach mit dem im Anhang befindlichen picoboot zu realisieren.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.