Hi, ich guck mir grad ein paar Beispielprogramme an und hab ne Frage dazu: __flash unsigned int LCD_character_table[] = ...... Was bedeutet das "__flash" und was bedeutet allgemein das "__", weil ich das öfters gesehen habe. Danke
Alexander wrote: > Was bedeutet das "__flash" Der Code stammt von einem nicht-GCC-Compiler, der damit sehr wahrscheinlich das entsprechende Objekt im Flash-ROM statt im RAM ablegt. > und was bedeutet allgemein das "__", weil ich > das öfters gesehen habe. Es leitet einen Bezeichner ein, der garantiert "reserved for the implementation" ist, d.h. er ist für Zwecke des Compilers oder der Systembibliothek vorbehalten (die dann ihrerseits dokumentieren muss, wann und wie eine Applikation ggf. von diesen Symbolen zu welchem Zweck Gebrauch machen kann).
Ich könnte das aber bei einem, daran angelehnten Programm ignorieren und das entsprechende Feld einfach normal mit "unsigned int LCD_character_table[] = ......" initialisieren, oder muss ich dann noch etwas besonderes beachten? Ich denke, der erhöhte Speicherbedarf macht nichts aus. (Mega169)
Das sieht aus wie IAR Compiler. Das __flash bedeutet, dass die Daten im Flash gespeichert werden. Wenn du es "normal" initialisierst, bleiben die Daten im RAM. MW
Noch vollständigkeits halber ... das ganze würde mit GCC so aussehen:
1 | int myData[] PROGMEM = ... |
oder
1 | int myData[] __attribute__((progmem)) = ... |
Gruß Uwe
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.