Описание тега linker-scripts
The linker command language used to control the memory layout of computer programs and details of the linking process.
0
ответов
Как загрузить код ARM A32 в ELF с физическим адресом> 32 бит
У меня есть программа A32, которую я хочу разместить в>32-битном физическом адресном пространстве, так как я компилирую для разработки с поддержкой LPAE. У меня есть скрипт компоновщика, который делает что-то вроде ".text: AT(0x100000000)", который …
01 ноя '17 в 22:52
1
ответ
GCC - Разделы имеют неправильный LMA
У меня проблемы с моим скриптом компоновщика. Разделы.data2, .nonsharedram и.bss имеют неправильный LMA. Они должны быть помещены во FLASH, но вместо этого помещены в области SHARED1 и SHARED2. Скриптер компоновщика: MEMORY { FLASH : org = 0x100000,…
11 апр '13 в 08:37
1
ответ
GNU LD: как переопределить значение символа (адрес), определенный сценарием компоновщика, указанным с помощью -T
Мой сценарий использования выглядит следующим образом: Я использую типичный SDK, который поставляется с проектами на основе Makefile Я верю, что компоновщик пропатчен gcc. gcc - версия дает мне 4.3.4 SDK определяет скрипт компоновщика (назовем его L…
05 апр '12 в 16:43
0
ответов
Почему мой раздел.data всегда больше 8K?
Я отлаживаю встроенную операционную систему, процессор - ARM Cortex A8, а цепочка кросс-компиляции - arm-linux-gnueabihf. Я нахожу интересную вещь, что .data раздел всегда больше, чем 8К, даже если я ничего не вкладываю в него. Но если я изменю имя …
17 фев '18 в 11:21
1
ответ
Как принудительно связать символ из определенной библиотеки?
При связывании исполняемого файла в Linux я получаю ошибку "неопределенная ссылка", например: undefined reference to `symbol@SOMELIB_1.0' У меня нет контроля над "SOMELIB", но у меня есть символ symbol в одной из моих собственных общих библиотек. Я …
21 авг '13 в 08:31
0
ответов
Как заставить инструменты Eclipse+GNU пропускать неиспользуемую память в одном разделе и не загружать ее?
Я использую: Eclipse IDE для разработчиков кислорода на C/C++ (4.7.0) GNU Tools ARM Embedded (версия инструментов GNU без оружия) Плагин отладки GDB SEGGER J-Link В моем скрипте компоновщика у меня есть сегмент памяти (.myvars), который содержит два…
10 май '18 в 09:39
1
ответ
ARMCC linker: создание неинициализированного региона
Я пытаюсь (и не могу) заставить компоновщик ARMCC поместить переменные в область ОЗУ, которая НЕ инициализирована (потому что они нужны мне для выживания после сброса). Регион, который я создал в файле Scatter-Link, указывает UNINIT и по моему __att…
01 окт '18 в 13:29
0
ответов
Дополните каждую функцию фиксированным числом nops
Я хочу дополнить каждую функцию необходимым количеством nops, используя скрипт компоновщика. Я подумал, что во время компиляции мне понадобится ключ -ffunction-section. И добавьте немного QUAD(0) в определение.text() сценария компоновщика. Но, похож…
04 апр '17 в 04:21
2
ответа
Зарезервировать пространство памяти в области памяти m_text FLASH на встроенной цели
У меня есть микроконтроллер с большим количеством вспышки, разделенной на сектора по 1 Кб. Я хочу прошить простые числа в определенную область памяти во время перепрошивки, затем во время первой загрузки будет сгенерирован криптографический ключ, за…
08 июн '15 в 14:22
1
ответ
Скомпилировать и связать два файла с помощью cmake?
У меня есть два файла в моем проекте.Один - это файл.c, другой - файл.asm. Сначала я компилирую оба файла в два объектных файла ".o", а затем соединяю их вместе, используя собственный скрипт компоновщика.В настоящее время я использую простой скрипт …
18 сен '14 в 14:45
1
ответ
' __exidx_start' и '__exidx_end' что они делают?
Здравствуйте, у меня есть скрипт компоновщика, в котором я нашел этот код "__exidx_start = .;"который устанавливает значение метки на значение счетчика местоположений".Msgstr "Эта метка нигде не используется в одном и том же скрипте компоновщика. Ан…
17 мар '12 в 17:13
0
ответов
Директива сборки ORG и счетчик местоположения в скрипте компоновщика
Насколько я понимаю, использование директивы ORG в сборке (в частности, сборки NASM) и установка счетчика местоположения в сценарии компоновщика на какое-либо значение выполняют ту же функцию. Однако мне интересно, если я буду использовать и директи…
15 май '12 в 06:45
1
ответ
ALIGN(n) различия в разделах линкерскрипта в семействе STM32
Я сравниваю скрипты линкеров, сгенерированные CubeMX для семейства микроконтроллеров STM32. Давайте посмотрим на STM32L476RG (NUCLEO-L476) и более свежий STM32F767ZI (NUCLEO-F767ZI). Примечание: линкскрипты создаются для arm-none-eabi-gcc компилятор…
14 июл '18 в 11:36
2
ответа
Встроенные сценарии компоновщика - правильное размещение областей "стека" и "кучи"?
В последнее время я изучал сценарии компоновщика, используемые в автоматически сгенерированных проектах STM32, и меня немного смущает вопрос о том, как определяются сегменты стека и кучи памяти. В качестве примера я рассмотрел файлы, представленные …
17 апр '18 в 03:51
2
ответа
Использование -dynamic-linker со скриптом компоновщика?
Я использую Linux 2.6.31-14 на 32-битном процессоре Intel. C файл: #include <stdio.h> main() { printf("Hello World!\n"); } Скриптер компоновщика: SECTIONS{ .text 0x00000100 :{ *(.text) } } Выход: $ gcc -S test.c $ as -o test.o test.s $ ld -T l…
07 июл '11 в 10:10
0
ответов
Недопустимое значение счетчика местоположения скрипта компоновщика
Я пишу скрипт компоновщика как: SECTIONS { . = 0x100000; .phys . : { *(.phys.text) *(.phys.data) . = ALIGN(4K); } .phys.bss . (NOLOAD) : { boot_stack_bottom = .; . = . + 4K; boot_stack_top = .; *(.phys.bss) } . = . + KERNEL_OFFSET; .boot . : AT(ADDR…
05 дек '16 в 20:57
0
ответов
Почему в GNU ld есть раздел, который не отображается в скрипте компоновщика?
Я пытаюсь создать минимальный пример C на загрузочном секторе для образовательных целей. Тем не менее, я заметил, что мой пример не был распознан как загрузочный сектор, потому что он волшебный 0x55aa байты не присутствовали как 511-й и 512-й байты.…
02 дек '18 в 21:11
0
ответов
Значение GNU AS отсутствует в назначенном разделе
В настоящее время я пытаюсь построить двухэтапный загрузчик в ассемблере GNU. Я использую as Команда для компиляции файлов сборки и ld Команда, чтобы связать их с окончательным двоичным файлом. Некоторая информация заранее: $ as --version GNU assemb…
04 янв '19 в 21:39
2
ответа
Линкер рассчитывает неправильные адреса для раздела родата
Я создал минимальный пример моей проблемы. В c файле я инициализирую массив с 16 элементами. Затем я вызываю функцию с указателем массива и его размером в качестве параметра. Сама функция работает, я проверил это с помощью файла разборки. Также иниц…
06 сен '18 в 16:39
2
ответа
Наличие в сценарии компоновщика определения источника и длины памяти
MEMORY { RAM (rxai!w) : ORIGIN = 0x80000000 LENGTH = 34K } Допустим, у меня есть раздел в скрипте компоновщика, как указано выше. Могу ли я иметь определение для 0x80000000 и 34K. Я хочу, чтобы это выглядело как MEMORY { RAM (rxai!w) : ORIGIN = RAM_…
30 янв '19 в 09:28