Eclipse - definicja sekcji bootloadera

Witam,

Próbuję przesiąść się ze środowiska VMLAB + avrgcc na Eclipse + AVR plugin + avrgcc. W celach treningowych chciałem skompilować program zawierający część procedur w sekcji bootloadera. Dostaję błąd:

....... /../../avr/bin/ld.exe: section .bootloader [00002bd8 ->

00002eed] overlaps section .data [00002bd8 -> 00002d8f] make: *** [mypos.elf] Error 1

W poprzednim środowisku taki błąd pojawiał się, gdy w makeflie-u nie było definicji:

LDFLAGS = -lm -Wl,-M,--section-start=.bootloader=0x7c00

Tu wygląda, że trzeba dopisać deklarację "bootloader" do pliku Release\mypos.map ale on uparcie przed kompilacją odtwarza się do pierwotnego stanu i deklaracja znika.

Jak należy zdefiniować taką deklarację, żeby została uwzględniona?

Pozdrawiam JS

Reply to
JS
Loading thread data ...

W dniu 2015-11-16 o 21:35, JS pisze:

[...]

.map to raczej plik wynikowy linkera.

a.

Reply to
Artur Miller

W dniu 2015-11-16 o 22:29, Artur Miller pisze:

Znalazłem!!! Zarówno makefile jak i plik .map są tworzone na bieżąco, więc ich modyfikacja rzeczywiście nie ma sensu. Trzeba we właściwościach projektu wybrać Settings -> AVR C Linker -> General i okienku Other Arguments wpisać:

-Wl,-M,--section-start=.bootloader=0x7c00 (gdzie 0x7c00 to adres segmentu bootloadera, np. 0x7c00 dla ATmega32)

Makefile jest wtedy tworzony z tą opcją i błędów kompilacji już nie ma.

Pozdrawiam JS

Reply to
JS

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.