www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC Binärfile einlesen


Autor: ... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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

Autor: usuru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :) )

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: -GastXIV (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch einen Pic simulator

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: usuru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm notepad++ (www.portableapps.com) und mach Dir ein Makro ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.