Hallo Leute, einer meiner Kollegen ist Geocacher und hatte dieses Rätsel zu lösen(s. pdf). Das Rätsel hatten wir gestern erfolgreich gelöst und zwar hatte ich nach langem hin und her die Hex-Daten unter MPLAB in das Program Memory-Fenster eingetippt und sofort die Lösung des Problems erkannt (Zahlen-Tabelle mit Koordinaten), d.h. es geht mir nicht mehr um die Lösung sondern um einen anderen Weg dorthin. Weiss jemand, wie ich das Problem anders (cleverer) lösen kann? Dazu habe ich mir zwei Möglichkeiten vorgestellt, den Code disassemblieren oder gleich in ein PIC einspielen. Und hier habe ich die erste Schwierigkeit. Ich habe den Code in einen Hex-Editor eingetippt. Dann hatt ich zwar ein Bin-File aber konnte das Bin-File weder disassemlieren noch in ein PIC einprogrammieren, weil alle Tools, die ich kenne oder gefunden habe, ein Hex-File wollen. Weiss jemand, wie ich ein Bin-File disasseblieren bzw. in ein PIC einproggen kann?
... schrieb: > Schwierigkeit. Ich habe den Code in einen Hex-Editor eingetippt. Dann > hatt ich zwar ein Bin-File aber konnte das Bin-File weder disassemlieren > noch in ein PIC einprogrammieren, weil alle Tools, die ich kenne oder > gefunden habe, ein Hex-File wollen. > > Weiss jemand, wie ich ein Bin-File disasseblieren bzw. in ein PIC > einproggen kann? Man könnte sicherlich händisch daraus ein Intel-Hex-File erzeugen. Ist zwar nicht elegant aber bei der 'Codegröße' noch vertretbar. Intel-Hex-Files sind einfach aufgebaut: vorne kommt noch die Adresse drann, ein Byte für die Satzkennung und hinten nach eine Prüfsumme. Wenn du das Zeugs aber sowieso schon in einem Hex-Editor eigetippt hast, speichere es als Bin-File ab und jag ein Bin2Hex Tool drüber. Dann hast du ein Intel-Hex-File, mit dem du weiter arbeiten kannst.
ich war(bin) mir nicht ganz sicher, ob ich mit einem "gewöhlichen" bin2hex-Converter ein Hex-File erzeugen kann, was auch ein Pic schlucken würde.
ich habe jetzt mit einem bin2hex ein Hex-File erzeugen können. So weit so gut, aber wenn ich nach dem Disassemblieren das Listingfile anschaue, stelle ich fest, dass alle Opcodes "geswapt" wurden, d.h. aus 0903 wurde auf einmal 0309 usw., und demensprechend ist auch der disassemblierte Code falsch, obwohl im Hexfile 0903 zu lesen ist. Wie lasst sich denn dieses Problemchen lösen?
... schrieb: > ich habe jetzt mit einem bin2hex ein Hex-File erzeugen können. So weit > so gut, aber wenn ich nach dem Disassemblieren das Listingfile anschaue, > stelle ich fest, dass alle Opcodes "geswapt" wurden, d.h. aus 0903 wurde > auf einmal 0309 usw., und demensprechend ist auch der disassemblierte > Code falsch, obwohl im Hexfile 0903 zu lesen ist. Wie lasst sich denn > dieses Problemchen lösen? welches bin2hex hast du benutzt? Ein Commandline Tool? wenn ja dann rufe es mal mit -? oder /? oder -h oder ?h oder überhaupt ohne Argumente auf. Mit ein bischen Glück hat es eine Hilfe mit, in der ein Command Line Switch beschrieben ist, mit dem man diesen ByteSwap abdrehen kann Ein GUI-Tool? Klappere alle Menüs nach einem Optionen Dialog ab, und sieh nach ob es dort eine Checkbox gibt, mit der man den Swap abdrehen kann
Das Programm usburn von sprut (www.sprut.de) hat auch einen Disassembler eingebaut. Die Programm-Worte der PICs sind immer 14 Byte gross, d.h. eine 4-er ASCII-Gruppe ist ein Programm-Word. Möglicherweise ist der o.g. Programnm-Code bereits die HEX-Datei, bei der noch die Anfangs-Adressen fehlen. BTW: der 16F84 ist so was von "out", schrecklich (das war der allerste Flash-PIC von Microchip. Oldie -> Gruftie -> Kompostie :) )
ich habe mehrere gefunden und bei allen konnte man das gleiche einstellen, Offset, Segment ... Ich habe schon nach bin2hex mit Byteswap gesucht, aber erstmal vergeblich. Mal sehen, ob ich was unter Linux-Werkzeugen finde
was habe ich von einem Simulator, wenn in dem convertierten "bin2hex"-File die Bytes jedes Words "verdreht" sind. Der Converter müsste beim konvertieren von bin nach hex die Bytes in jedem Word umdrehen. Ich suche erstmal einen bin2hex-Converter, mit dem ich auch einzelne Bytes drehen kann.
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.