mikrocontroller.net

Forum: Compiler & IDEs Frage zum Code


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Uwe M. (lifthrasil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch vollständigkeits halber ... das ganze würde mit GCC so aussehen:
int myData[] PROGMEM = ...
oder
int myData[] __attribute__((progmem)) = ...

Gruß Uwe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.