Forum: Mikrocontroller und Digitale Elektronik Lookup-Tabelle in fertige Intel Hex-Datei wandeln?


von Third E. (third-eye)


Lesenswert?

Hallo,

ich habe für ein µC-Projekt eine Lookup-Tabelle mit 1024 Werten 
erstellt.
Die Tabelle ist momentan in einer Excel-Datei. Bisher habe ich das immer 
mit kopieren und in den Quellcode einfügen realisiert. Das ist mir aber 
zu umständlich, da ich viele Controller programmieren muss und jeder 
"seine" Tabelle bekommt.

Ich könnte die Tabelle auch als .txt mit 1024 Zeilen speichern. In jeder 
Zeile steht dann ein Wert.

Gibt es eine einfache Möglichkeit, daraus ein fertiges Hex-File zu 
generieren?

Da gibt es doch bestimmt irgendein Progrämmchen, dem ich z.B. 
tabelle.txt übergebe, definiere, mit welcher Adresse die Hex-Datei 
beginnen soll und es mir dann tabelle.hex erstellt, also inkl. Kopf, 
Prüfsummen usw.?

Mit der Suche hier habe ich nichts derartiges gefunden.

VG
Third-eYe

von Thomas (Gast)


Lesenswert?

Bist du dir sicher, dass die Lookup-Tabelle in eine eigene Hex kommt und 
nicht in den Programmcode?
Um welchen µC geht es hier eigentlich?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich bin kein Excel Spezi, aber wenn du in der Lage bit, Excel die 
Ausgabe von Zahlen durch Komma getrennt beizubringen, musst du nur noch 
ein z.B. DB davor stellen. Also eine Zeile sähe so aus
1
<TAB oder Leerzeichen>DB<TAB oder Leerzeichen>12,43,56,45,76,32,89,57
Es hängt also davon ab, ob du Excel dazu bringen kannst, solche Strings 
zuammenzubauen und zu exportieren.

Das ganze passt du so an, das es mit dem Assembler für deinen MC 
assembliert.

von Hodenklemme (Gast)


Lesenswert?

Datei mit HxD öffnen, File->Export->Intel Hex.

von Falk B. (falk)


Lesenswert?

Ein kleines Makro schreiben und die Tabelle als C-Code formatieren und 
als .c ausgeben.

von Hodenklemme (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ein kleines Makro schreiben und die Tabelle als C-Code formatieren
> und
> als .c ausgeben.

Das kann man machen, wenn man seine Zeit verschwenden will. Oder man 
öffnet halt die Datei in HxD, File->Export->C.

von holger (Gast)


Lesenswert?

>Ein kleines Makro schreiben und die Tabelle als C-Code formatieren und
>als .c ausgeben.

Da reicht auch mit Komma getrennte CSV.

uint8_t table[] = {
#include "table.csv"
};

von c-hater (Gast)


Lesenswert?

Third Eye schrieb:

> ich habe für ein µC-Projekt eine Lookup-Tabelle mit 1024 Werten
> erstellt.
> Die Tabelle ist momentan in einer Excel-Datei.

Mein Gott, Excel hat eine eingebaute Pogrammiersprache, die 
Turing-vollständig ist. Damit kannst du alles, was du willst, direkt aus 
einer Tabelle basteln. Auch IntelHex natürlich.

Einfachere Formate, z.B. Quelltext-Defines für alle im µC-Bereich 
üblichen Sprachen, kann man sogar ohne Rückgriff auf VBA basteln, allein 
durch Nutzung der Tabellenfunktionen, die Excel direkt auf seiner 
Oberfläche bereitstellt.

Bei nochmaliger Betrachtung: auch IntelHex ist ohne VBA noch 
einigermaßen beherschbar. Die Prüfsumme macht es aber schon wirklich 
anstrengend, für sowas wurde die Formeleingabe nicht wirklich 
geschaffen...

So oder so: Lerne einfach den Umgang mit dem überaus mächtigen Werkzeug 
Excel.

von Falk B. (falk)


Lesenswert?

@ holger (Gast)

>Da reicht auch mit Komma getrennte CSV.

>uint8_t table[] = {
>#include "table.csv"
>};

Hey, cleverer Trick! Super!

von Thomas (Gast)


Lesenswert?

Hodenklemme schrieb:
> Das kann man machen, wenn man seine Zeit verschwenden will. Oder man
> öffnet halt die Datei in HxD, File->Export->C.

Weil das immer gleiche Rumgeklicke viel schneller geht als eine Tabelle 
in einem .c-File, die von 'make program' automatisch eingebaut wird.
Kommt euch Mausschubsern das nicht selbst irgendwann blöd vor, 9000 mal 
die gleichen Mausbewegungen in irgendwelchen überflüssigen bunten T00lz 
zu machen?

von Hodenklemme (Gast)


Lesenswert?

Thomas schrieb:
> Hodenklemme schrieb:
>> Das kann man machen, wenn man seine Zeit verschwenden will. Oder man
>> öffnet halt die Datei in HxD, File->Export->C.
>
> Weil das immer gleiche Rumgeklicke viel schneller geht als eine Tabelle
> in einem .c-File, die von 'make program' automatisch eingebaut wird.
> Kommt euch Mausschubsern das nicht selbst irgendwann blöd vor, 9000 mal
> die gleichen Mausbewegungen in irgendwelchen überflüssigen bunten T00lz
> zu machen?

Hör mal, ist ja schön, dass ihr auf der Sonderschule jetzt auch Internet 
habt, aber versuch doch mal die geschriebenen Worte zu verstehen.

Was glaubst du wohl, was für eine Datei rauskommt, wenn ich Export->C 
mache? Genau, ein .c-File! Das man dann im Projekt mitkompiliert!

Wenn du dir jetzt total dumm vorkommst, mach dir nichts draus, du hast 
recht.

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.