Forum: Mikrocontroller und Digitale Elektronik LPC1768 zweiter und dritter SRAM Block


von Andreas S. (steelhead)


Lesenswert?

Hallo Zusammen,

mein Code-Red Compiler gibt mir derzeit die folgende Meldung aus: 
"region `RamLoc32' overflowed by 6432 bytes" - klar, Daten passen halt 
nicht mehr in den ersten SRAM Block.

Leider sind beim LPC1768 die SRAM Blöcke nicht unter fortlaufenden 
Adressen zu finden. Alle Blöcke wurden von mir im Compiler angegeben, 
benutzt wird allerdings nur der erste. Linker Report:

.noinit_RAM2    0x2007c000        0x0
*(.noinit.$RAM2*)
*(.noinit.$RamAHB32*)
                0x2007c000                . = ALIGN (0x4)


Ein Code-Red Knowledge-Base Artikel beschreibt, wie im Code der Compiler 
aufgefordert werden kann das zweite SRAM zu nutzen:

__BSS(RAM2) char bss_buffer[128] ;

Funktioniert leider auch nicht...

Hat hier vielleicht jemand eine Idee wie ich SRAM Blöcke zwei und drei 
aktivieren kann?

Danke und Gruß,
Andreas

von Jim M. (turboj)


Lesenswert?

Probier mal:
1
 char bss_buffer[128] __attribute__((section(".noinit.$RAM2")));

von Andreas S. (steelhead)


Lesenswert?

Danke für deine schnelle Antwort. Funktioniert leider auch nicht:

__attribute__((section(".noinit.$RAM2"))); - meckert der Compiler über 
das noinit

__attribute__((section("$RAM2"))); - Compiliert OK, hat aber keine 
Auswirkung

Gruß,
Andreas

von Jim M. (turboj)


Lesenswert?

Andreas S. schrieb:
> __attribute__((section(".noinit.$RAM2"))); - meckert der Compiler über
> das noinit

Fehlermeldung posten, bitte.

von Andreas S. (steelhead)


Lesenswert?

OK, danke für das hartnäckige Nachfragen. ;-)

War heute morgen wohl noch zu früh: Fehlerunterstreichung des noinit kam 
vom Spellchecker... Damn!

Map Report bestätigt deine Aussage und eine Testvariable wurde korrekt 
im SRAM2 abgelegt!

Super, Danke dir Jim!

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.