Daten aus dem Programmspeicher lesen Mega8

OP #2339132
Lesenswert?

Hallo,

ich möchte Daten fest mit dem C-Programm im Flash eines Mega8 speichern.
Diese Daten (Bitmuster für ein Display) soll das Programm dann zur 
Laufzeit aus dem Speicher lesen.

In Basic (VC20/C64) gab es imho mal so eine Art "Data" und "Read" 
Befehl.

Es handelt sich um ca 2KB an Bitmustern, welche ich Byteweise auslesen 
und verarbeiten möchte.

Wie löse ich so etwas in C ?

Gruß

Günter
#2339148
Lesenswert?

> Ist es sinnvoll die Daten in Feldvariablen zu speichern ?

> Nein, denn dazu brauchst Du RAM. Und dein µC hat bloß 1kB davon, deshalb
> passen Deine Daten da gar nicht rein. ".db" (oder so) ist dein Freund.
>

> Wie löse ich so etwas in C ?

Array anlegen und dieses ins Flash verbannen passt wunderbar.
AVR-GCC-Tutorial
Im Abschnitt über "Flash" nachlesen.
#2339195
Lesenswert?

Kenne mich leider nicht mit Atmel uC aus, aber meist reicht es, das 
Array mit den Daten einfach als "const" zu deklarieren. Die 
Compiler/Linker sollten dann automatisch erkennen, dass die Daten in 
diesem Array nur gelesen werden und daher im Flash bleiben können.

Auf Nummer sicher geht man mit den anderen, oben beschriebenen Methoden 
(Array einer Section zuweisen und im Linker Script definieren, dass 
diese Section im Flash ist).
Aber wenns mit "const" alleine auch geht, kann man sich die Mühe ja 
sparen. ;-)

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