Ну, я в конечном итоге принимает совершенно другой подход, но я хотел бы поделиться мой окончательный вывод здесь: Я основываю это на How to fetch the end address of my code
В коде, вы должны добавить Экстерн ссылку на переменную:
extern char var2[];
линкер скрипт должен быть записан следующим образом:
SECTIONS
{
.mysection : {
*(.mysection);
var2 = .;
}
}
INSERT AFTER .mysection
Добавьте скрипт компоновщика во время связи (например, ld -T <PATH_TO_MY_LINKER_SCRIPT>
) Часть INSERT AFTER
используется, поэтому мой скрипт компоновщика будет добавлен к сценарию компоновщика по умолчанию.
Мне пришлось использовать «золото», чтобы связать мой файл эльфа, и, видимо, версия, которую я использовал, не поддерживает синтаксис «INSERT AFTER». Таким образом, фактическое решение должно состоять в том, чтобы скопировать сценарий компоновщика по умолчанию и просто добавить в него информацию о моем скрипте.
Я еще не протестировал его, но я все еще надеюсь, что это может помочь кому-то.