Forum: Mikrocontroller und Digitale Elektronik 10% vom Ram reservieren?


von Marco Blum (Gast)


Lesenswert?

Hi,
ich möchte eine Testroutine schreiben die ein Muster (0xAA/0x55) 
abwechselnd erst in die oberen 5% des ramspreichers schreibt und 
anschließend diesen bereich an die unteren 5% des ramspeichers kopiert.
Jetzt meine Frage: Wie lege ich fest das diese 10% des Ram freigehalten 
werden? Also ich kenne  "malloc" in C, aber damit kann ich ja nicht 
entscheiden wo der Speicherbereich reserviert wird.

Gruß
Marco

von nop(); (Gast)


Lesenswert?

Mit ASM kannst du iregndwohin schreiben. Ohne ASM wird's kaum gehen

von fnah (Gast)


Lesenswert?

>Ohne ASM wird's kaum gehen
klar geht das:

einmal unschoen:
uint8_t pointer = 0x0000;
*pointer = 0xaa;

schoener:
eigene .sections anlegen:
http://www.roboternetz.de/wissen/index.php/Avr-gcc/Interna#Speicherverwaltung
http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

von Philipp B. (philipp_burch)


Lesenswert?

An's RAM-Ende würde ich keine Daten schreiben, da wächst der Stack. Auch 
in ASM, wenn du den Stackpointer nicht anderweitig initialisierst.

von nop(); (Gast)


Lesenswert?

Adressieren ist Eines und dabei keinen Mist bauen was Anderes. Bei 
statischem RAM macht der Test eh nur Sinn wenn man damit die Belastung 
an ionisierender Stahlung, wie zB im Flugzeug messen will.

von Marco Blum (Gast)


Lesenswert?

Hi,
danke für die Hilfe, ich werde es mit sections machen und dem Linker 
mitteilen was Sache ist.

marco

@ nop()
Dein Verdacht ist schon ganz richtig, nur eben nicht fürs Flugzeug 
sondern fürs Auto

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.