Intel HEX format

Gast #1569908
Lesenswert?

hallo,


gibt es eine möglichkeit daten aus excel in intelhex format zu 
konvertieren? Gibt es da ein Programm, oder ein Weg wie ich mir Daten 
die Hexadezimal in Excel sind in intelhex format konvertiere???


Ich habe paar Programme gefunden aber die erkennnen mir die Daten aus 
Excel als ascii Code und nicht als hexadezimal an.


Danke
Moderator (Firma: Titel) Persönliche Seite #1570250
Lesenswert?

> daten aus excel in intelhex format zu konvertieren?
Sind das in Excel einfach Standard-Zahlen im Bereich von 0-255?
Wie sieht die Tabelle aus?

Ich würde die Zahlen einfach in ein Textfile exportieren und dann kurz 
ein C-Programm schreiben, das mir das Zeug in ein Binärfile konvertiert. 
Und von Binär nach IHex gibt es Konverter wie Sand am Meer...
Gast #1570274
Lesenswert?

Waoooo super danke für die Tipps!

Zu den Werten nochmal, ich muss 8400 Werte die 12bit breite sind im 
Flash ablegen. Dann hat sich herausgestellt das mein Flash zwar 16bit 
Datenbusbreite hat aber nur 8 bit am Eval board angelötet sind. Somit 
habe ich die Werte gesplittet und lese zwei Byte aus und gebe sie 
"verklebt" aus. Was dann von 8400 Werten zu 16800 Werten geführt hat.


Also so die zahl 4095 = 0FFF. Im intelhex muss das erste Daten byte 0F 
und das zweite FF sein. Ich lese das 0F aus dann das FF aus und dann 
gebe ich 0FFF aus. Was auch klappt. Mein problem ist das ich ich ca. 800 
Kurven und diese ins intelhex format bringen muss. Ich habe auch 
geschafft Kurven von Excel über Intelhex zu bin2hex im Flash 
abzuspeichern. Das Problem ist aber das er nach 16 bit Adressen wieder 
von vorne anfängt, wo quasi er eignlicht den Code bringen müsste die 
erweiterte Adresseleitung zu machen (Intelhex Type 04) glaub ich. Aber 
da scheitert es, zum einem am Programm zum anderem an meinem Verständiss 
wie ich quasi nach 65535 weiter addressiere.....




Wenn noch paar Tipps kommen wäre ich sehr Dankbar.




gruß
Gast #1570460
Lesenswert?

@Igor:

Für solche Konvertierungsaufgaben (und ähnliches) lohnt es sich, sich 
eine Skriptsprache anzueignen. Ich empfehle Python, aber auch mit Perl 
oder Matlab läßt sich so eine Aufgabe lösen; notfalls auch mit C.

Duke
Gast #1570968
Lesenswert?

Jepp das hatt ich schon verwendet, lediglich gab es zwei versionen, die 
eine die nur 16 bit addresse unterstüzt, und die andere die auch die 
erweiterung auf 32 hat. hab die zweite dann gefunden und hat soweit 
geklappt.


Gruß und Danke
Persönliche Seite #1570994
Lesenswert?

@Igor
Weiss nicht wie du drauf kommst, warum mein Code nur bis 10 Bit 
funktionieren soll. Falls ich dich richtig verstehe und du 24 Bit 
adressieren willst, also 4 MegaByte bezweifle ich eher, dass du das mit 
Excel hinkrigst, nach 65k Zeilen ist da nämlich Schluss.

Wenn du im hexGenerator.c die folgende Zeile so anpasst, dann kommst du 
auf 65 MegaByte (ca. 26Bit), das sollte Reichen.
1
#define MemorySize (65 * 1024 * 1024)

P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien, 
da die Nutzdaten im Hex-File nur knapp die Hälfte sind.
Gast #1571112
Lesenswert?

Hi,


>P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien,
>da die Nutzdaten im Hex-File nur knapp die Hälfte sind.


Verstehe ich nicht so ganz. Wie gesagt ich muss 800 Kurven mal 16800 
Byte ablegen.

Mein Weg:


EXCEL EXCEL => in HEX EDITOR KOPIEREN       => als file.bin abspeichern
4095  0FFF     0000  0F FF 0F FE 0D DD . . .
4094  0FFE
4093  0DDD
.
.
.

 => BIN2HEX file.bin file.hex


Fertig!
#1571597
Lesenswert?

Igor schrieb:
>>P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien,
>>da die Nutzdaten im Hex-File nur knapp die Hälfte sind.
>
>
> Verstehe ich nicht so ganz.
ist doch nicht so schwer.

> Wie gesagt ich muss 800 Kurven mal 16800 Byte ablegen.
hat damit gar nix zu tun

1 Byte (0-255) wird im Intel-Hex-Format durch 2 Bytes (0-F) codiert.
das heißt, dass der Nutzdatenanteil 50% beträgt.
dazu kommen dann noch die Prä- und Postfixe vor/hinter jeder Zeile 
(Startbyte, Coount, Adresse, Typ, Prüfsumme), was je nach länge der 
Datensätze auch noch einen ordentlichen Anteil dazubringt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren