Forum: PC-Programmierung C#: Hex-Datei in Bin-Datei konvertieren


von User0815 (Gast)


Lesenswert?

Hi,

ich bin auf der Suche nach einer DLL, mit der ich eine Hex-Datei in eine 
Bin-Datei umwandeln kann. Der Grund hierfür besteht darin, dass ich via 
einer C# Applikation die Bin-Daten zum Mikrocontroller senden möchte.
Gibt es für C# sowas?

von Arc N. (arc)


Lesenswert?

Intel-Hex?
Suche genutzt?
Beitrag "Intel-Hex in .NET einlesen."

von User0815 (Gast)


Angehängte Dateien:

Lesenswert?

Danke für den Link.
Und wie kann ich nun die Bytearrays in Binärformat umwandeln

von User0815 (Gast)


Lesenswert?

Mit der Funktion "ReadHexFile" kann ich zwar die Hex-Daten in ein Array 
kopieren. Wie bekomme ich nun die Binary Daten ?

von Arc N. (arc)


Lesenswert?

User0815 schrieb:
> Mit der Funktion "ReadHexFile" kann ich zwar die Hex-Daten in ein Array
> kopieren. Wie bekomme ich nun die Binary Daten ?

??? binärer wird's nicht oder das ganze muss in irgendwas anderes 
umgewandelt werden

von User0815 (Gast)


Angehängte Dateien:

Lesenswert?

Kannst du mir sagen wie man zu diesem binären File kommt ?

von User0815 (Gast)


Lesenswert?

Es muss doch eine DLL geben, die man quasi einbinden kann.

von edgar (Gast)


Lesenswert?

[X] Ich habe keine Ahnung
[X] Ich verwende etwas, was fälschlicherweise als "Programmiersprache" 
bezeichnet wird
[X] "Probleme" löse ich per "Copy & Paste"

von Thomas E. (thomase)


Lesenswert?

edgar schrieb:
> [X] Ich habe keine Ahnung
> [X] Ich verwende etwas, was fälschlicherweise als "Programmiersprache"
> bezeichnet wird
> [X] "Probleme" löse ich per "Copy & Paste"

Dem zweiten Punkt möchte ich mal vehement widersprechen. Aber bei den 
anderen beiden: Volle Zustimmung.

User0815 schrieb:
> Es muss doch eine DLL geben, die man quasi einbinden kann.

Gibt es da mal nichts zum herunterladen? Das ist aber traurig.
Guck' dir das Hexformat an und schreib' dir eine Funktion dafür. So 
schwierig ist das nicht. Mit C# kann man auch richtig programmieren und 
nicht nur Klicki-Bunti machen und bei Pille-Palle-Kram nach Hilfe 
schreien.

mfg.

von olf79 (Gast)


Lesenswert?

Hallo zusammen,

mir fehlt da noch das Mapping der Adressen im hex-File auf den 
Adressbereich des Controllers.

Ich vermute jetzt mal, das bin-File enthaelt einfach ein Speicherabbild 
des kompletten Flash-Speichers des Controllers? Dann muesste man ja nur 
ein Array in der Groesse des Controller-Flash initialisieren (bzw. eine 
bin-Datei anlegen, dann das hex-File durchparsen und im Array (Datei) 
den entsprechenden Wert an der richtigen Stelle (hier braucht man das 
Mapping) reinschreiben.

Gruß

von Reinhard Kern (Gast)


Lesenswert?

olf79 schrieb:
> mir fehlt da noch das Mapping der Adressen im hex-File auf den
> Adressbereich des Controllers.

Im Gegensatz zu Hex sind BIN-Dateien reine Roh-Daten, da gibt es keine 
Adressangaben - wenn du eine Datei von 4 kB hast und sie soll im 
Kontroller an der Adresse 2000H bis 2FFFH gespeichert werden, musst du 
das in einer Notiz dazuschreiben. Wenn du die Datei in einen Programmer 
einliest, fragt dich der ja auch wohin damit, dann gibst du 2000H ein.

Das Mapping ist also nicht in der Datei, sondern in deinem Kopf.

Gruss Reinhard

von Thomas (Gast)


Lesenswert?

nun es gibt für solche Dinge auch profesionelle Tools. Wenn du das also 
nicht selbst lösen kannst, und das ist nun wirklich einfach, kannst du 
auch was kaufen.

http://www.hse-electronic.de/Deutsch/Produkte/dHexit/dhexit.html

Das kann das alles was du machen willst, und noch sehr viel mehr. So 
eine Toolsammlung hat allerdings ihren Preis.

Thomas

von User0815 (Gast)


Lesenswert?

Hi, das Problem ist nicht das herunterladen auf den Mikrocontroller 
sondern nur das wandeln von einer Hexdatei in eine Bindatei.

von Christian R. (supachris)


Lesenswert?


von Robert L. (lrlr)


Lesenswert?

>Datum: 20.09.2011 16:37

du hast das doch schon längst im richtigen format

dort steht, dass die Daten schon in einem Array sind
dem namen der Funktion nach, schon im korrekten format

also wo liegt jetzt dein problem?
diese daten brauchst jetzt nur noch an den Mikrocontroller "schicken"

oder halt in eine datei schreiben ...

(.hex -> bin macht übrigens auch z.B: ponyprog, damit kannst dein 
Ergebnis verifizieren..)

von User0815 (Gast)


Lesenswert?

Guten Morgen,

ich möchte in meiner C# Applikation die generierte HEX Datei in eine BIN 
Datei umwandeln. Mit einem Zusatztool kann ich das zwar tun, aber besser 
wäre es in meiner C# Applikation.

von Udo S. (urschmitt)


Lesenswert?

Wo ist das Problem:
2 hex Zeichen ergeben ein binäres Byte.
Zum Beispiel:
"3B" ergibt 3*16 + 11 = 59
"FF" ergibt 15*16 + 15 = 255
Das musst du nur noch programmieren. Und welch ein Glück C# ist eine 
PROGRAMMIERSPRACHE!

von Christian R. (supachris)


Lesenswert?

Was hindert dich daran, das zu programmieren. Einfach zeilenweise 
einlesen und dekodieren. Früher (TM) gabs dafür sscanf(), das konnte 
sogar hex-kodierte ascii Zeichen lesen. Ich bin ganz sicher, das gibts 
mit C# auch noch. Ansonsten hab ich ja schon einen Link gepostet da 
oben....

von Robert L. (lrlr)


Lesenswert?

hier steht doch FixFertig wie es geht
Beitrag "Re: Intel-Hex in .NET einlesen."

ich mein, noch mehr vorkauen geht wohl nicht mehr..

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
Noch kein Account? Hier anmelden.