Gast
#2382590
Hallo, ich nutze einen ARM Cortex M3 ( STM32 ) mit GNU Toolchain. Der Startup-Code sorgt dafür, dass .bss / .data Segmente initialisiert werden (mit den im Sourcecode angegebenen Initwerten oder 0). Wie kann ich einen reset-festen Bereich definieren, der vom Startup-Code nicht initialisiert wird? Solche Daten dürfen ja dann weder in .bss noch in .data stehen. Ich kenne mich mit Linker/Lokatierung leider kaum aus... Hat jemand ein Beispiel das zeigt, wie man solche Variablen im Quellcode definieren muss und welche Anpassungen am Linkerscript nötig sind? Die Definition von .bss und .data sieht bei mir so aus: .data : { PROVIDE(_data = .); *(.data) . = ALIGN(4); *(.data.*) . = ALIGN(4); *(.ramtext) . = ALIGN(4); PROVIDE(_edata = .); } > ram AT > flash .bss : { PROVIDE(_bss_start = .); *(.bss) . = ALIGN(4); *(.bss.*) . = ALIGN(4); *(COMMON) . = ALIGN(4); PROVIDE(_bss_end = .); } > ram Danke! Sven