Eclipse - definicja sekcji bootloadera

Nov 16, 2015 2 Replies

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


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

[...]

.map to raczej plik wynikowy linkera.

a.

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required