www.mikrocontroller.net

Forum: Compiler & IDEs avr-gcc und der Flash


Autor: Sven Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche grade den Atmel Beispiel Code für das PS2 Keyboard nach
avr-gcc zu portieren, es ist eigendlich schon fertig aber in einem der
Files wird der Type flash benutzt:

flash unsigned char unshifted[][2] = { ............ }

der Soll das arry direkt in den flash legen, das macht doch der gcc
generell oder gibt es einen ähnlichen Befehl?

Gruss Sven.
PS: Kann es im Moment nur Compiler testen ...

Autor: Wolfgang Niegsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sven,
im avr-libc Manual ist es beschrieben, unter:
Modules --> Program Space String Utilities
Aber beim zugriff die Macros nutzen. Beschreibung an gleicher Stellt.

Mfg
Wolfgang

Autor: Sven Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Wolfgang,

eigentlich müste doch meine Frage hinfällig sein, denn das array wird
doch nicht in den RAM kopiert, oder?

so sieht das Original aus.
flash unsigned char unshifted[][2] = { ............ }

ich würde jetzt folgendes Schreiben
unsigned PGM_P unshifted[][2] = { ............ }

dabei habe ich aber das Problem es jetzt ein Pointer ist.

so sieht z.B. der Zugriff aus:
for(i = 0; unshifted[i][0]!=sc && unshifted[i][0]; i++);

Gruss Sven

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst das so machen:

Deklaration/Definiton:
  static const unsigned char unshifted[][] PROGMEM = { ... };
  PGM_VOID_P index= unshifted;

Zugriff mit:
  pgm_read_byte( unshifted++ );

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.