Bin mir gerade dabei am überlegen wie auf den Ram schreiben und wie ich etwas aus dem RAM lesen. Finde jedoch leider keine anschauliche Erklärung wie das mit NC30 und dem M16C funktionieren soll. Weiss jemand was?
@ Gerd (Gast) >Bin mir gerade dabei am überlegen wie auf den Ram schreiben und wie ich >etwas aus dem RAM lesen. Indem man einfach Variablen bzw. Arrays anlegt und darauf zugreift? > Finde jedoch leider keine anschauliche >Erklärung wie das mit NC30 und dem M16C funktionieren soll. So wie auf jedem C-Compiler! MfG Falk
So geht das:
1 | unsigned char test; |
2 | |
3 | test = *((unsigned char*)0x0400); |
Damit wird das Byte an der Adresse 400h in die Variable test eingelesen. Schreiben funktioniert vom Prinzip her genauso. Gruß Judge
Der Renesas-Compiler hat schon einige Unterschiede zu anderen Compilern ...
1 | #pragma ADDRESS Buffer 060000H;
|
2 | unsigned char far Buffer[SIZE]; |
definiert z.B. ein Array mit der Größe SIZE, das ab Adresse 60000H im externen RAM liegt. In diesem Zusammenhang ist das Schlüsselwort "far" wichtig, das den Adressraum auf 20 Bit (anstelle 16 Bit) ausweitet. Zugriffe auf das interne RAM (unterhalb 0FFFFH) brauchen das nicht:
1 | #pragma ADDRESS InternalRAM 01000H;
|
2 | unsigned char InternalRAM[SIZE]; |
Natürlich kann man sich auch einen Pointer definieren und hinterher entsprechende Adressen zuweisen (hier das "far" in den oberen Speicherseiten nicht vergessen!)
wenn ich das richtigt verstanden habe laut Manual geht es bei Pragma und per Zeiger. Bräuchte mal ein Beispiel ... danke
@Gerd: Wenn Du mein Beispiel von oben verwendest, kannst Du direkt, auch ohne Zeiger zugreifen.
1 | value = Buffer[0]; |
liest dann den Inhalt der Speicherstelle an Adresse 060000H,
1 | value = Buffer[10]; |
entspricht 06000AH, usw.
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.