-
1. Data: 2015-11-16 21:35:32
Temat: Eclipse - definicja sekcji bootloadera
Od: JS <b...@p...onet.pl>
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
-
2. Data: 2015-11-16 22:29:14
Temat: Re: Eclipse - definicja sekcji bootloadera
Od: Artur Miller <n...@n...com>
W dniu 2015-11-16 o 21:35, JS pisze:
> Witam,
>
[...]
> 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.
>
.map to raczej plik wynikowy linkera.
a.
-
3. Data: 2015-11-17 19:53:47
Temat: Re: Eclipse - definicja sekcji bootloadera
Od: JS <b...@p...onet.pl>
W dniu 2015-11-16 o 22:29, Artur Miller pisze:
> W dniu 2015-11-16 o 21:35, JS pisze:
>> Witam,
>>
> [...]
>> 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.
>>
>
>
> .map to raczej plik wynikowy linkera.
>
> a.
>
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