Цитата
Просто поставте последней секцию типа такой.
Проверил, работает правильно.
Код
.finish :
{
_size_prog = .;
} > text
}
Спасибо за подсказки, пожалуй, буду использовать этот вариант.
Добавлю еще, что если использовать файл скрипта из WinAVR и просто добавить в конце:
Код
.finish :
{
_size_prog = .;
} > text
}
то заначение _size_prog все равно будет неверным, чтобы это исправить необходимо изменить описание секции .data как указал Сергей Борщ:
вместо
Код
.data : AT (ADDR (.text) + SIZEOF (.text))
{
PROVIDE (__data_start = .);
*(.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
нужно сделать:
Код
.data :
{
PROVIDE (__data_start = .);
*(.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 AT > text