Texte ablegen, im Ram oder im Flash?

Gast #437054
Lesenswert?
• ▲
▼
Moin, moin,

in meinem C-Program, geschrieben mit Codevision für mega64, habe ich 
jede Menge Texte. Diese habe ich bisher alle im RAM abgelegt, quasi als 
Variable.
So etwa:

char *Di176 = "Transmitt data";

Bei 200 Texten wird der RAM natürlich knapp.

Könnt ich diese Texte auch im Flasch ablegen? Welche Programänderungen 
habe ich dann zu machen?

Danke für eure Hilfe!


Dreigestirn
Gast #437112
Lesenswert?
• ▲
▼
Das ist aber mal n riesen Aufwand mit dem externen Flash.

Wenn im internen Programmspeicherflash noch genug Platz ist legs doch da 
ab. Such mal im GCC-Forum, da gibt´s einiges zum Thema.

Gruß
Markus
Gast #437163
Lesenswert?
• ▲
▼
Codevision erlaubt die Prefixe 'const' und 'flash'.

Habe jetzt mal umdeklariert:

const char *Di176 = "Transmit data";

aber ich bekomme die Fehlermeldung:

L6300:parameter #7 of type 'flash unsigned char*' is incompatible with 
type 'unsigned char*'specified in the function 'key_define' declaration

Die Deklaration der Funktion ist:

void key_define
(char x1,char y1, char x2, char y2, char dc, char uc, char *str);


Die Funktion selber ist:

key_define(2,3,30,19,'a',0,Di176);


Wie ist die Fehlermeldung zu verstehen?


Rufus, was meinst du mit:...dann waren die Strings bereits im
Flash gespeichert...

Laut Compilerinfo ist der RAM(.cseg) zu 85% vollgeschrieben.
Gast #437200
Lesenswert?
• ▲
▼
probiers mit :

key_define(2,3,30,19,'a',0,(unsigned char *) Di176);

der gcc meckert an das der typ : flash unsigned char * (den du durch 
deine texte definiert hast) nicht "kompatibel" ist mit einem normalen 
zeiger auf einen unsigned char.
ich kenne das problem vom msp. da muß ich auch explizit auf unsigned 
char * casten damit der zeiger auf konstanten im flash akzeptiert ...

gruß
rene

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.