M16C NC30 wie lese ich den RAM aus

#648399
@  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
Gast #648401
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
Gast #648437
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!)
Gast #648670
@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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.