WinAvr locating multiple code sections ?

Gast #1685831
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.