Урааа!! Заработало!!! © Шарик
Огромное спасибо за наводки.
В результате сделал так:
Взял avr5.x и отредактировал его вот так:
Код
.data : AT (ADDR (.text) + SIZEOF (.text))
{
PROVIDE (__data_start = .);
*(.mydata.InBufOff)
*(.mydata.DevAddr)
*(.mydata.NewDevAddr)
*(.mydata.CurrTok)
*(.mydata.RxToken)
*(.mydata.RxLen)
*(.mydata.TxLen)
*(.mydata.RxBuff)
*(.mydata.TxBuff)
*(.data)
*(.data*)
*(.rodata) /* We need to include .rodata here if gcc is used */
*(.rodata*) /* with -fdata-sections. */
*(.gnu.linkonce.d*)
. = ALIGN(2);
_edata = .;
PROVIDE (__data_end = .);
} > data
Далее в Makefile его подключил вот так:
Код
LDFLAGS += -Wl,-T,avr5_myData.x
Не совсем кошерно получилось, но зато каждая переменная стоит всегда в одном месте. И BootLoader работает и Main на базе бутлодера.