Hallo Leute, kann mir jemand kurz erklären, wie ich einen bestimmten Speicherbreich in C reservieren kann. Ich will an der Speicherposition 0xA0000000 64 words speichern (also ein uint16_t Array mit 64 Feldern). Mit malloc kann ich mir ja nicht aussuchen wo der Speicher reserviert wird bzw. ich weiß nicht wie das gehen soll.
Viele Wege führen nach Rom. Einer davon wäre eine Variable in einer section (die man vorher im richtigen Speicherbreich definiert) anzulegen. __attribute__((section(".RamSection"))) const const unsigned char variable[64];
Danke für die Antwort. Dann werde ich mal sehen was ich so über die Befehlszeile rausfinden kann, die du angegeben hast.
Die einzige Frage die ich noch hab ist, dass ich nicht weiß wie ich die "Section" also den Speicherbereich richtig definiere. Kann ich nicht einfach die Adresse in die Klammern von section() schreiben?
Bruno Kempf schrieb: > Die einzige Frage die ich noch hab ist, dass ich nicht weiß wie ich die > "Section" also den Speicherbereich richtig definiere. Compiler manual -> Linker -> Linker Datei Lesen, verstehen, anpassen.
Ich hab mich jetzt nochmal bisschen damit beschäftigt. Dabei ist die folgende Zeile rausgekommen. -Wl,-section-start=.__mob_ch0__=0xA0000000 Diese Zeile habe ich in die Standard "Linker Datei" für meinen µC AT23UC3C0512 eingefügt, die man sich bei WinAVR rauskopieren kann (C:\WinAVR-20100110\avr32\lib\ldscripts). Konnte bisher noch nicht testen, ob das auch funktioniert hat. Falls jemand gleich mal ein Fehler auffällt, kann er/sie das gleich mal posten. Grüße B0bbyR4y
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.