Forum: Compiler & IDEs AVR32 Speicherbereich im HSB RAM reservieren


von Bruno K. (Gast)


Lesenswert?

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.

von Willum (Gast)


Lesenswert?

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];

von Bruno K. (Gast)


Lesenswert?

Danke für die Antwort.
Dann werde ich mal sehen was ich so über die Befehlszeile rausfinden 
kann, die du angegeben hast.

von Bruno K. (Gast)


Lesenswert?

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?

von foo (Gast)


Lesenswert?

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.

von Bruno K. (Gast)


Lesenswert?

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

von Bruno K. (b0bbyr4y)


Lesenswert?

Hat übrigens funktioniert.

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.