GCC: Daten in Programmdatei integrieren

Gast #2596062
Lesenswert?

Hallo,

ich müsste ein paar Daten auf meinem ATMega8 speichern. Die einfachste 
Methode wäre wahrscheinlich den EEPROM zu benutzen, allerdings ist der 
Speicher zu klein. Ich habe herausgefunden, dass ich die Daten auch 
einfach in den Flash also in den Programmspeicher schreiben könnte. Ich 
weiss allerdings nicht wie man das am besten anstellt und dann auch die 
Speicheradresse dieser Daten bekommt. Im Internet finde ich nur wie man 
den Flash zur Laufzeit beschreiben könnte, also mit einem Bootloader. 
Das nützt mir aber nicht viel. Von Assembler kenne ich die .Data 
section. Das müsste es doch für C auch geben oder? Man müsste dem 
Compiler einfach sagen können, welche dateien er anhängen möchte.

Vielen Dank für Eure Hilfe.

mfg
Gast #2596075
Lesenswert?

Erstmal vielen Dank für die schnelle Antwort.
Das kommt dann praktisch in eine Header Datei, oder? Geht das nicht 
bequemer, wenn ich die Daten als rohe Binärdateien habe?
Gut, ein Programm wäre schnell geschrieben, dass mir die Arbeit abnimmt.
#2596076
Lesenswert?

Christopher ich denke dein Ansatz ist der falsche, keine Aussage welche 
Daten das sind.

Read Only
Read/Write
in welchem Zeitraster wird gelesn, geschrieben ?
wie viele Gbyte, MByte oder kByte beötigt werden.

Es gibt auch grössere Atmel mit mehr Speicher.

Vielleicht reicht Dir der Hinweis auf das Attribut PROGMEM.
1
const char pgmText[] PROGMEM = "what's up?";
Gast #2596088
Lesenswert?

Die Daten müssen nur gelesen werden. Ich benutzte ich eine PWM um einen 
Motor zu regulieren. Die Daten sagen wie der Motor zu regeln ist.
Ich weiss zwar nicht genau wie groß die Daten werden, aber der EEPROM 
mit seinen 512 Byte wird da nicht ausreichen. Selbst wenn ich meinen 
ATMega32 benutzten würde, reicht es wahrscheinlich nicht aus. Der Flash 
dagegen ist ja sehr viel größer, mit dem lässt sich etwas anfangen. Die 
Geschwindigkeit müsste nach meiner Einschätzung völlig reichen.
Gast #2596276
Lesenswert?

Johann L. schrieb:
> Ist aber nur die halbe Miete. Man will ja auch angeben, in welcher
> Section das Zug landen soll.

muss man das? Programmcode landet doch standardmäßig im Flash, und das 
obj wird als Programmcode gerwerted,

Aber zur not kann man ja immer noch den parameter angeben.

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