Hallo Zusammen, ich möchte Daten, welche ich in Libre-Office Calc (Excel) generiert habe, auf ein EPROM brennen. Mein Kollege hat ein Prog-Express von Batronix, welches div. Fileformate unterstütze. Ausser die Datei-Extensions habe ich allerdings nichts gefunden, wie die Daten auf dem File sein müssen, z.B. "Straight Hex". Kompliziertere Formate habe ich auf Google gefunden. Kann mir für einfach zu generierende Fileformate jemand helfen?
Am einfachsten in ein S-RECORD File konvertieren.
1 | $ srec_cat text.hex -binary -o - -motorola |
2 | S0220000687474703A2F2F737265636F72642E736F75726365666F7267652E6E65742F1D |
3 | S108000048616C6C6F07 |
4 | S5030001FB |
5 | $ srec_cat text.hex -binary -o - -intel |
6 | :020000040000FA |
7 | :0500000048616C6C6F0B |
8 | :00000001FF |
wobei man auch noch die spezielle Ausgabe konfigurieren kann.
Die universellen Standardformate sind Intel-Hex oder Motorola-S19. Beide zeichnen sich dadurch aus, daß nicht der komplette Inhalt des EPROMs gespeichert werden muss, sondern nur die genutzten Stellen, und daß sie zur Fehlersicherung auch noch eine Prüfsumme für jeden Block enthalten. Ein Gegenentwurf ist eine Binärdatei, die einfach für jede Speicherzelle des EPROMs genau ein Byte enthält, und damit immer exakt so groß ist wie der Adressraum des EPROMS. Für ein 2764 sind das 8192 Bytes. So eine Binärdatei aber kann mit einem normalen Texteditor nicht betrachtet und erst recht nicht bearbeitet werden. Intel-Hex und Motorola-S19 hingegen sind Textdateien, in der jede Zeile einen sogenannten "Record" enthält - letztlich ein Datenhäppchen. Neben den Daten des Häppchens wird auch eine Adresse angegeben, die als Offset zum Beginn des EPROMs betrachtet werden kann (aber nicht zwingend muss; eine gute Eprom-Programmiersoftware sollte hier Korrekturmöglichkeiten vorsehen). Zum Häppchen gehört noch eine Nutzlängenangabe und eben eine Prüfsumme. Wenn zum Beispiel bei einem EPROM aus irgendeinem Grund nur das erste und das letzte Byte programmiert werden soll, besteht die Binärdatei unverändert aus allen Bytes, die das EPROM enthält (beim 2764 also 8192 Bytes). Bei Intel-Hex oder Motorola-S19 aber besteht die Datei aus nur zwei Records - einem mit der Adresse 0 und einem Nutzbyte, und einem mit der Adress 8191 und einem Nutzbyte. Dazu noch eine Prüfsumme ... und fertig ist der Salat. Hier mal als Beispiel mit dem Werten AA und BB Bei S19 sieht das so aus: S1 01 0000 AA cs S1 01 1FFF BB cs Und bei Intel-Hex sieht das so aus: :01 0000 00 AA cs :01 1FFF 00 BB cs (der Übersichtlichkeit halber habe ich zwischen die Feldelemente Leerzeichen eingefügt und auf die Berechnung der Prüfsumme 'cs' verzichtet) Direkt lassen sich solche Dateien mit einem Tabellenkalkulationsprogramm eher nicht erzeugen, aber Du kannst ein "Metaformat" nutzen: CSV, in der ersten Spalte steht die Adresse, und in den folgenden Spalten die Datenbytes, die ab dieser Adresse gespeichert werden sollen. Nach z.B. 32 Bytes beginnst Du eine neue Zeile, wieder mit einer Adresse (diesmal um 32 gegenüber der vorhergehenden Zeile erhöht) und gefolgt von den Nutzbytes. Ein Programm zu schreiben, was daraus wiederum Intel-Hex oder Motorola-S19 erzeugt, ist dann eine leichte Übung. https://de.wikipedia.org/wiki/S-Record https://de.wikipedia.org/wiki/Intel_HEX
Beitrag #8056014 wurde vom Autor gelöscht.
Intel-Hex und Motorola-S19 habe ich bei Wicki gesehen, schienen mir abeer zu kompliziert zum Erzeugen. Ich würde sowieso nicht mit einem Texteditor arbeiten, sondern ein kleines Programm schreiben. Wenn ich einfach die Hex-Zahlen oder ev. Binäre Bytes auf das File schreiben könnte, ohne noch Adressen und Checksummen zu generieren, dachte ich, dass das einfacher währe. Wobei ich mit dem Programm natürlich das auch noch generieren könnte. Habe schon einen Fileconverter geschrieben, welcher das CBM-Format in das "Paper Tape Format" von KIM-1 umwandelt, das hat auch checksummen und so.
von Harald K. schrieb: >Für ein 2764 sind das 8192 Bytes. So eine Binärdatei aber kann mit einem >normalen Texteditor nicht betrachtet und erst recht nicht bearbeitet >werden. In Linux geht das so. Betrachten: xxd -u -g1 Datei.bin In Text wandeln um mit einen Texteditor betrachten und bearbeiten zu können: xxd -u -g1 Datei.bin > Datei_bin.txt In echte Binärdatei zurückwandeln: xxd -r Datei_bin.txt > Datei.bin
Sind denn die Daten, die Du da ins EPROM schreiben willst, kontinuierlich, d.h. von Anfang an und ohne Lücken?
Es ist eine relativ kleine Datei von ca. 200 Bytes mit nur kleinen Lücken. Es handelt sich um eine Look Up Table für die Hardware. Das EPROM wird dann mit einem Hardware-Zähler an der Adresse angesteuert und steuert Magnete in einem zeitlichen Ablauf.
Rolf E. schrieb: > Wenn ich einfach die Hex-Zahlen oder ev. Binäre Bytes auf das File > schreiben könnte, ohne noch Adressen und Checksummen zu generieren, > dachte ich, dass das einfacher währe. "Checksummen" beim Intel-Hex Format hört sich wilder an, als es ist. Auf deutsch ist das einfach eine Prüfsumme. Die Bytes eines Records (=Zeile) aufzuaddieren und zu negieren, ist wirklich kein Hexenwerk und die Adresse ergibt sich bis auf einen Offset aus dem Zähler deiner Ausgabeschleife.
:
Bearbeitet durch User
von Rolf E. schrieb: >Es ist eine relativ kleine Datei von ca. 200 Bytes mit nur kleinen >Lücken. In eine Binärdatei gibt es aber keine Lücken. Etwas muß da immer stehen, entweder 00 oder vielleicht FF.
Rolf E. schrieb: > Es ist eine relativ kleine Datei von ca. 200 Bytes mit nur kleinen > Lücken. Wenn es Lücken gibt, musst Du Dich drum kümmern, sie zu füllen -- oder Du verwendest ein Dateiformat, das Lücken zulässt. Der Aufwand, Intel-Hex oder Motorola-S19 zu erzeugen, ist sehr überschaubar.
Der Prog-Express nimmt auch Binärdateien. Also Tabelle als *.csv speichern und in *.bin wandeln. Am einfachsten online. https://www.filesmonkey.com/csv-bin
Günter L. schrieb: > von Rolf E. schrieb: >>Es ist eine relativ kleine Datei von ca. 200 Bytes mit nur kleinen >>Lücken. > > In eine Binärdatei gibt es aber keine Lücken. > Etwas muß da immer stehen, entweder 00 oder vielleicht FF. Bei EPROM FF das beschleunigt das programmieren.
Rolf E. schrieb: > Intel-Hex und Motorola-S19 habe ich bei Wicki gesehen, schienen mir > abeer zu kompliziert zum Erzeugen Vielleicht hättest du nicht nur Wickie fragen sollen, sondern auch die starken Männer? > Ich würde sowieso nicht mit einem > Texteditor arbeiten, sondern ein kleines Programm schreiben. Wozu? Du hast doch Rolf E. schrieb: > Daten, welche ich in Libre-Office Calc (Excel) generiert habe Also liegen die ja schon in irgendeinem Format vor. Welches? Ich rate mal: Binärdateien. Dann laß sie so. Zu jedem EPROM-Programmiergerät gehört eine Programmiersoftware. Die kann Binärdateien lesen. Alternativ kannst du die Binärdateien auch umwandeln. Es gibt gefühlt 1000 Programme, die Binär nach Intel HEX oder Motorola S19 umwandeln können. Und zurück. Du mußt dieses Rad nicht neu erfinden.
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.