У меня есть проект GCC для ARM Cortex-M3. Сценарий компоновщика определяет, где должен располагаться каждый раздел источника. Поэтому у меня есть разделы, как этотПереместить конкретные объектные файлы библиотеки
.text :
{
*(.text)
} > FLASH
_sidata = .;
.data : AT (_sidata)
{
_sdata = .;
*(.data)
_edata = .;
}
Проект потребляет библиотеку lib.a
, содержащую объектный файл object.o
и other.o
. Теперь я хочу, чтобы раздел .text object.o
размещался между _sdata и _edata. Объектив заключается в том, что этот раздел будет скопирован кодом запуска из FLASH в RAM, и он будет выполнен там. other.o
не следует размещать в этом разделе, поскольку он слишком велик.
Я пробовал как in this SO question
.data : AT (_sidata)
{
_sdata = .;
*(.data)
object.o(.text)
_edata = .;
}
Но это не удается, так как object.o
берется из библиотеки и не является прямой доступны.