Forum: Compiler & IDEs WinAvr locating multiple code sections ?


von tom (Gast)


Lesenswert?

Hi,

Ich möchte meinen Code für einen Bootloader in zwei Abschnitten des 
Flash haben. Startup-Code und ISP-Programmierroutinen liegen in der 
Bootloader section (AtMega128) und der Rest ab 0xc000 im unteren 
64k-Segment.
Früher ging das auch schon mal, aber nun motzt der Linker und ignoriert 
die angegebene zweite .bootcode - code section und versucht alles in 
.text zu lokieren, was dann nicht mehr passt.
Ein downgrade auf die alte WinAvr version hat leider auch nichts 
gebracht.

Wenn ich nur die .bootcode section als Parameter im makefile habe, 
lokiert er brav alles dorthin und .text per default im unteren 64k 
segment, also klappt entweder die parameterübergabe von gcc zum ld.exe 
nicht oder weiss der Geier... :-(.

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=  -Wl,-Map=boot_c128.map
LDFLAGS += -Wl,-section-start=.text=0x1fc00
LDFLAGS += -Wl,-section-start=.bootcode=0xc000

Hat jemand eine idee ???

gruss, tom.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

tom schrieb:

> LDFLAGS += -Wl,-section-start=.text=0x1fc00
> LDFLAGS += -Wl,-section-start=.bootcode=0xc000
-----------------^

--section-start anstatt -section-start ?

von Tomas K. (Firma: tktronic) (tktronic)


Lesenswert?

Nope, die syntax passt auch mit nur einem "-" ;-(

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.