www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik pgm_read_byte für ARM Cortex


Autor: W.W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte gerne einen Source-Code für eine Grafik-Library(auf 
AVR-Basis) auf einen ARM Cortex-M3 adaptieren. Nun findet sich folgendes 
im Source-File:
Array für die Display Zeichen...
const unsigned char z_code[] PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x00,    
0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,      
0x0a,0x0a,0x1f,0x0a,0x1f,0x0a,0x0a,0x00,
0x04,0x0f,0x14,0x0e,0x05,0x1e,0x04,0x00,
0x18,0x19,0x02,0x04,0x08,0x13,0x03,0x00,
0x0c,0x12,0x14,0x08,0x15,0x12,0x0d,0x00,
0x0C,0x04,0x08,0x00,0x00,0x00,0x00,0x00,
0x02,0x04,0x08,0x08,0x08,0x04,0x02,0x00,
0x08,0x04,0x02,0x02,0x02,0x04,0x08,0x00,
0x00,0x04,0x15,0x0E,0x15,0x04,0x00,0x00,
0x00,0x04,0x04,0x1F,0x04,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x04,0x08,0x00,
0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00, usw.
.....
und irgendwo im C-file wird dann auf eine Stelle zugegriffen mit
pgm_read_byte(&z_code[index]....
Wie sieht so ein Befehl für einen ARM Cortex aus? Reicht einfach 
folgende Zuweisung:
 x=*(&z_code[index] ??? 
Mein ganzes Programm befindet sich im Flash und für dieses Array ist 
genug Platz und es wird an eine ordentliche Adresse gemappt.
Verwende gcc(CodeSourcery) und mir ist der section-Befehl schon bekannt, 
aber das brauche ich doch gar nicht oder?? Irgendwie blicke ich hier 
nicht mehr durch.
Vielleicht kann mir bitte jemand von Euch helfen.

MfG
W.W.

Autor: Tim Seidel (maxxie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es reicht einfach auch
x = z_code[index] 
 ohne indirection.

Der ARM teil Daten und Programmspeicher [von Neumann] und trennt sie 
nicht, wie der ARM [Harvard]. Deswegen gibt es keine seperaten 
Instruktionen um auf den Programm oder Datenspeicher zuzugreifen.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist so schon richtig.  Das "*" und das "&" kannst Du weglassen, die 
heben sich gegenseitig auf.

Autor: W. W. (dt_rocky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

OK, vielen Dank für die Hilfe!

MfG
W.W.

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.