Hallo zusammen, ich habe vor einiger Zeit hier, mit Hilfe einiger anderer hier aus dem Form, erfolgreich Einen Zugriff von meinem AVR XMega auf de SPI Flash (von meinem Altera EP4CE6) einrichten und testen können. (siehe Beitrag "SPI multimaster mit EP4CE6C22C8N, XMega 192A3 und M25P16") Aktuell kann ich mir nun über eine USART Schnittstelle, vom AVR aus, die Daten aus dem Flash ausgeben lassen. Der AVR übernimmt dabei das auslesen aus dem Flash und überträgt die Daten Page für Page per USART. Das funktioniert auch bestens. Leider aber wohl nicht vollständig. Zum testen schreibe das Design des FPGAs, als jic file(komprimierte Daten), in den Flash. Das Design funktioniert und der FPGA-Chip tut korrekt seinen Dienst. Aus dem SOF-Image habe ich zusätzlich ein Raw-Binary-File (auch komprimiert) erzeugen lassen. Wenn ich nun die Daten aus dem Flash zurück lese, erhalte ich ein nur fast identisches Image, im Vergleich zu dem im RBF Format. Im Anhang habe ich die Unterschiede als diff (Unterschiede er hexdumps) angehängt. Es scheint so als ob alle 2 Pages das letzte Byte der Page 0x05 enthält und sporadisch zwischendurch auch weitere Bytes unterschiedlich sind. Ich frage mich nun, gehört das so? Oder liegt hier an irgend einer Stelle ein Fehler vor? Vielen Dank Kai
:
Bearbeitet durch User
Ich kann dir nicht sagen was es mit den Unterschieden genau auf sich hat. Jedoch ist das RBF nur fuer die passiven Konfigurations Modi gedacht. Ich nutze sof2flash und objcopy um einen AS 'bootfaehigen' Bitstream zu generieren:
1 | sof2flash --input=design.sof --output=design.flash --epcs --compress |
2 | objcopy -I srec -O binary design.flash image.bin |
Cheers, Roger
Roger Steiner schrieb: > Jedoch ist das RBF nur fuer die passiven Konfigurations Modi gedacht. > > Ich nutze sof2flash und objcopy um einen AS 'bootfaehigen' Bitstream zu > generieren: Vielen Dank für die Info, ich bin davon ausgegangen das der Inhalt im Flash in jedem Fall identisch ist und nur die Art des auslesens verschieden. Ich verwende Quartus II 13.1 auf Win8, und das sof2flash Tool ist bei meiner Installation nur ein Shell-Script das sh_jar.sh aufruft (welches nicht existiert). Das im gleichen Verzeichnis liegende sof2flash.jar scheint (per
1 | java - jar sof2flash.jar |
aufgerufen) nicht alle Tools zu finden damit es lauffähig ist. Ich habe die Tools auf der Kommandozeile von Windows und unter Cygwin versucht zu testen... Wo und wie rufst du denn diese tools auf, und was hast du konfiguriert damit es funktioniert? Danke!!!
Ich nutze dazu die NiosII Command Shell, out-of-the-box. Cheers, Roger
Dabke für den Tipp! Mit der Konsole hat es dann funktioniert... Das fehlerhafte Byte am Ende jeder zweiten Page entstanden durch einen Implementierungs - Fehler von meiner Seite. Den habe ich korrigiert. Ich habe mir nun mit sof2flash und objcopy ein Image erzeugen lassen und das Dann, Byte für Byte, bitweise umgekehrt. Darauf hin habe ich den Inhalt des Images mit dem Inhalt von meinem Flash ab Adresse 0x000000 verglichen. Das ist soweit auch soweit übereinstimmend, bis auf etwa 3 Byte am Anfang der Images (siehe Diff im Anhang). Das Design des FPGA sowie die Einstellungen in Quartus II sind dabei nicht verändert worden. Das aktuelle Flashimage, einem Image gegenüber gestellt das im rbf-Format vorliegt, enthält mehr Unterschiede im "Kopf" als bei dem per sof2flash erzeugten. Hat hier jemand nich eine Idee warum die Unterschiede zwischen dem Inhalt meines Flashs und dem per sof2flash/objcopy erzeugtem Image minimal verschieden ist? Mich würde interessieren wie das zu stande kommt und ob das Auswirkungen auf die Funktionalität des Designs besitzt. Aktuell konnte ich noch nicht verifizieren/testen ob das per sof2flash erzeugte Image lauffähig ist. Danke!
:
Bearbeitet durch User
Wichtig ist der epcs Parameter beim sof2flash. Da braucht man keine Bits zu drehen, das geht 1:1 ins Flash. Die Konfiguration ist pass or fail, nichts dazwischen. Entweder dein Design läuft an oder das FPGA bleibt unkonfiguriert. Cheers, Roger
Vielen vielen Dank für die Hilfe, jetzt funktioniert es einwandfrei!!! Leider funktioniert die nios2 command Shell bei mir, unter win8.1 mit Quartus II 13.1, nicht wirklich. Bzw. Sof2flash beendet ohne Fehlermeldung und ohne seinen Dienst geleistet zu haben. Auf einem zweiten Rechner läuft es jedoch problemlos! Vielen Dank nochmal!
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.