Forum: Compiler & IDEs MSPGCC Tabellen programmieren (Festwerte)


von Weinga-Unity (Gast)


Lesenswert?

Hi!

Ich arbeite gerade mit einem Graphik-LCD und muss Bilder bzw. Bilder von 
Buchstaben in meinen C-Source einbauen (für einen MSP430F1232).

Aber:

unsigned char ASCII_A[6]={0x3F,0x44,0x84,0x84,0x44,0x4F};

legt diese Tabelle im RAM ab. D.h. ich habe 256Bytes RAM und möchte aber 
auch noch Bildchen und so reinschreiben.

Wie kann man das progn, dass die Tabelle im Flash liegt (die gute alte 
DB Funktion)?

mfg Weichinger Klaus

http://www.Weinga-Unity.de.vu

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Globale Konstanten werden automatisch im ROM abgelegt.

http://mspgcc.sourceforge.net/doc_memapi.html

von Weinga-Unity (Gast)


Lesenswert?

Hallo!

OK:
angekommen:

const unsigned char X[4]={4,3,2,1};


int main (void)
{
  sub1(&X);
}

void sub1(unsigned char *Array)
{
  unsigned char a;
  a=Array[0]    // -> a=4
}

Der Compiler scheibt main.c:35: warning: passing arg 1 of `sub1' 
discards qualifiers from pointer target type


?!?!?!?!
Wie funktioniert denn das wirklich?

mfg Weichinger Klaus

von Joerg Wunsch (Gast)


Lesenswert?

Ja klar, Dein pointer target type ist "const" deklariert, der
Parameter "Array" ist es aber nicht.  Damit wirfst Du den
const qualifier weg, und der Compiler kann innerhalb von sub1()
nicht mehr monieren, wenn Du versuchst, über *Array irgendwas
da dran zu ändern.

von Weinga-Unity (Gast)


Lesenswert?

Jo! Danke! Funktioniert jetzt!

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.