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


von W.W. (Gast)


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...
1
const unsigned char z_code[] PROGMEM = {
2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
3
0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x00,    
4
0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,      
5
0x0a,0x0a,0x1f,0x0a,0x1f,0x0a,0x0a,0x00,
6
0x04,0x0f,0x14,0x0e,0x05,0x1e,0x04,0x00,
7
0x18,0x19,0x02,0x04,0x08,0x13,0x03,0x00,
8
0x0c,0x12,0x14,0x08,0x15,0x12,0x0d,0x00,
9
0x0C,0x04,0x08,0x00,0x00,0x00,0x00,0x00,
10
0x02,0x04,0x08,0x08,0x08,0x04,0x02,0x00,
11
0x08,0x04,0x02,0x02,0x02,0x04,0x08,0x00,
12
0x00,0x04,0x15,0x0E,0x15,0x04,0x00,0x00,
13
0x00,0x04,0x04,0x1F,0x04,0x04,0x00,0x00,
14
0x00,0x00,0x00,0x00,0x0C,0x04,0x08,0x00,
15
0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00, usw.
16
.....
und irgendwo im C-file wird dann auf eine Stelle zugegriffen mit
1
pgm_read_byte(&z_code[index]....
Wie sieht so ein Befehl für einen ARM Cortex aus? Reicht einfach 
folgende Zuweisung:
1
 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.

von Tim S. (maxxie)


Lesenswert?

es reicht einfach auch
1
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.

von Hc Z. (mizch)


Lesenswert?

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

von W. W. (dt_rocky)


Lesenswert?

Hallo!

OK, vielen Dank für die Hilfe!

MfG
W.W.

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.