Der Mide51 bzw. Asem51 erzeugt das Hex-File im Intel-Format. Wie kann ich auf das "richtige", wo außer dem Maschinensprachecode nichts anderes enthalten ist, kommen? Gibt es dafür ein Programm, oder müßte ich das selber programmieren? Gruß Hans
@ Johann D. (khs) >Der Mide51 bzw. Asem51 erzeugt das Hex-File im Intel-Format. Und wo ist das Problem? Intel Hexfiles sind reiner Maschinencode, nur halt ASCII kodiert. Jedes Brennprogramm schreibt die Daten direkt in den EEPROM/Flash. Fertig. >Wie kann ich auf das "richtige", wo außer >dem Maschinensprachecode nichts anderes enthalten ist, kommen? Hast du schon. >Gibt es dafür ein Programm, oder müßte ich das selber programmieren? Nö. MFG Falk
Danke für die Antworten. Der Grund für die Anfrage ist, daß es Geräte gab und immer noch gibt, die mit einem 80C31, bzw. 80C32 bestückt sind und die Software im separaten Eprom ist. Unter anderem habe ich von einem Nachbarn ein älteres Fax-Speichergerät erhalten, mit dem man Faxe über den Drucker oder PC empfing. Das liese sich auch ev. für andere Vorhaben verwenden, ohne daran löten zu müssen, nur indem man das gesockelte Rom austauscht. Es hat schon mal 2 serielle Eingänge, einen paralellen Ein- und Ausgang. Außerdem ein LCD-Display und noch 4 MB Ram. Dazu braucht man natürlich einen Eprommer, und den habe ich vor über 20 Jahren speziell für einen Casio Taschenrechner zusammengebaut. Die Software mußte ich dazu natürlich auch selbst programmieren, ebenso den Assembler für die 8048er, und da wäre bei 40 KB Ram schon aus Platzgründen kein Intel Format angebracht gewesen. Habe keine Ahnung, ob es das damals auch schon gab. Nachdem ich auf das Hterm aufmerksam wurde, kann ich jetzt auch PC und Taschenrechner miteinander verbinden, doch um über das Intel Format ein Eprom zu programmieren, müßte ich mich erst wieder hinsetzen und eine Umwandlungssoftware schreiben. Darum danke nochmal an Marcus und Holger für die Hinweise. Habe schon mal auf die SRecord-Seite geschaut, wenn es für Win Me auch nichts gibt, so wie ich verstanden habe gibt es das auch für Linux, das ich auch habe. Bei mehr Zeit werde ich auch noch mal nach hex2bin suchen. Gruß Hans
Die GNU binutils (speziell: objcopy) können auch Intel-Hex-Dateien einlesen und Binärdateien ausgeben.
Habe gleich das hex2bin.exe runtergeladen und versucht es zu testen. Nachdem ich das hex2bin in den Ordner Windows kopiert hatte, konnte ich es nach dem C:/WINDOWS> schon starten, es kam aber die Fehlermeldung, CAN NOT OPEN INPUT FILE test.hex Kenne mich mit MS-DOS wenig aus. Das test.hex File war im Ordner Eigene Dateien, spielt Groß- Klein- schreibung eine Rolle, oder wie müßte der richtige Befehl aussehen? Auf dem Linux-PC habe ich zur Zeit ein Knoppix zum testen, warte noch auf das neue Debian. Auf dem Knoppix fand ich zwar binutils, konnte es aber nicht ausführen. Gruß Hans
Johann D. schrieb: > Auf dem Knoppix fand ich zwar binutils, konnte es > aber nicht ausführen. "binutils" ist auch ein Paket, kein Programm. Das zugehörige Programm heißt "objcopy", und dafür sollte es ein Manual geben, das man mit "man objcopy" aufrufen kann. Der Aufruf ist denkbar einfach (in deinem Fall):
1 | objcopy -I ihex -O binary <inputfile> <outputfile> |
Johann D. schrieb: > Das test.hex File war im Ordner Eigene Dateien, spielt Groß- Klein- > schreibung eine Rolle, oder wie müßte der richtige Befehl aussehen? Wenn man mit etwas älteren Utilities, speziell Command Line Utilities arbeitet, ist es immer unklug * in Dateinamen Leerzeichen zu haben. Auf einer Command Line ist ein Leerzeichen normalerweise ein Trenner von Argumenten. * in Dateinamen Sonderzeichen oder Umlaute zu haben Am einfachsten und besten fährt man immer mit der Regel "Der 7-Bit ASCII Code wurde uns von Gott gegeben, alles andere ist fehlerhaftes Menschenwerk" Sprich: Die Buchstaben 'a' bis 'z' ('A' bis 'Z'), Ziffern ('0' bis '9'), ein paar Sonderzeichen (wie '_' '-' '+' '#' ) sind erlaubt, alles andere ist eine Ausgeburt des Teufels. Oh. Und wenn es sich um ein wirklich altes DOS-Programm handelt, dann ist ein Dateiname länger als 8 Zeichen (+3 Zeichen Extension) ein NoNo. Aber diese Programme sind schon lange am aussterbenden Ast. > nach dem C:/WINDOWS> schon starten Der Prompt zeigt dir an, dass dein aktives Verzeichnis zur Zeit auf c:\windows liegt. Mit cd (change directory) musst du erst mal auf das Verzeichnis navigieren, auf dem dein Hex-File liegt, oder den kompletten Verzeichnisnamen des Hex-Files angeben C:\WINDOWS> cd .. (eine Verzeichnis hierarchie hinaufmanövrieren) C:\> cd temp (in das temp Verzeichnis hinein gehen) C:\TEMP> dir (dort mal ein Inhaltsverzeichnis anfordern um nachzusehen, ob das File test.hex auch wirklich da ist) C:\TEMP> hex2bin test.hex (hex2bin auf test.hex loslassen) Oft haben diese Utilities auch eine Hilfe eingebaut. Die kriegt man meistens, wenn man * das Utility ohne Argumente aufruft * oder /? oder /h oder -h oder -? oder Variationen davon benutzt C:\TEMP hex2bin /h (keine Ahnung ob /h richtig ist, aber wenn ja, dann wird dir hier hex2bin ausgeben, was es alles kann)
Mit Srecord ist es aber auch ganz einfach: srec_cat hexfile.hex -Intel -o binfile.bin -Binary
Johann D. schrieb: > nach dem C:/WINDOWS> schon starten, es kam aber die Fehlermeldung, > CAN NOT OPEN INPUT FILE test.hex > Kenne mich mit MS-DOS wenig aus. > Das test.hex File war im Ordner Eigene Dateien Und woher soll das hex2bin das wissen? Soll es etwa die ganze Festplatte und alle CDs, DVDs, USB-Sticks durchsuchen? Das könnte ja Stunden dauern. Du mußt Programme entweder in dem Verzeichnis ausführen, wo die Datei liegt oder den Pfad zu dieser Datei mit angeben. Auch Windows-Programme finden keine Dateien, die irgendwo anders rumliegen. Und oftmals gibt es auch mehrere Dateien gleichen Namens. Peter
Danke für die ausführlichen Antworten. Nachdem ich das test.hex ebenfalls in den WINDOWS-Ordner kopiert hatte, hat es schon mal geklappt. Das mit den Leerstellen und Sonderzeichen im Dateinamen war mir schon klar. Inzwischen habe ich auch schon mit cd in den Ordner MyWorks wechseln können, weil die Dateien-Suche da schneller geht. Daß Groß- Kleinschreibung bei MS-DOS keine Rolle spielt habe ich jetzt auch bemerkt, ebenso, daß der Dateiname nicht länger als 8 Zeichen sein darf. Habe den Ordner MyWorks gewählt, weil ich mir nicht vorstellen kann, wie der Ordner Eigene Dateien wegen der Leerstelle und der Länge mit MS-DOS bedient werden könnte. Das hex2bin dürfte damit für mich ausreichend sein, den passenden Download vom SRecord für Win Me, bzw. Win 98 habe ich nicht gleich gefunden. Da ich das Knoppix 6.1 nicht weiter einrichte, habe ich die Linuxmöglichkeiten noch nicht ausprobiert, da wäre das SRecord für Debian ebenfalls möglich. Das man objcopy habe ich schon gefunden, so daß es auch laufen müßte. So oder so, solange der Assembler nur auf dem Windows ist, müßte ich zum Umwandeln jedes mal in den anderen PC wechseln, was doch wieder umständlicher ist. Gruß Hans
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.