Мне нужно добавить новый раздел в мое приложение (.elf).У меня есть скрипт компоновщика по умолчанию.Затем я прочитал руководство по GNU Linker.Следуя инструкциям в руководстве, я отредактировал файл сценария компоновщика.Однако приложение выдает ошибку ошибки сегментации, когда область байта 0x400 зарезервирована для секции .patchText
, показанной ниже.
Вот соответствующая часть редактируемого мной сценария компоновщика:
.patchText :
{
*patchObsw.o (.text .data .rodata)
. = 0x400;
} > ram
В этом случае приложение компилируется и связывается успешно, но при запуске приложения возникает ошибка сегментации.
Если я удалю строку . = 0x400;
из сценария компоновщика, повторите процесс компиляции и компоновки.все еще успешно, нет ошибки сегментации.
Согласно руководству по компоновщику GNU эта строка в порядке.
Я не мог понять, в чем здесь проблема.