Вопросы по теме 'linker-scripts'
Скрипт компоновщика ld создает огромный двоичный файл
Я использую binutils-2.21.53.0.1-6.fc16.x86_64 .
У меня есть небольшой объектный файл, hello.o с достаточным количеством «вещей», чтобы иметь содержимое во всех разделах:
Section Headers:
[Nr] Name Type Address...
3328 просмотров
schedule
23.07.2023
Что означает опасная ошибка переезда?
Я получаю сообщение об ошибке при связывании:
опасное перемещение: l32r: после использования помещается литерал:
Я все еще пытаюсь отладить; однако я хочу лучше понять эту ошибку. Я понимаю, что такое переезд; однако я не уверен,...
5827 просмотров
schedule
07.05.2022
gcc: Можете ли вы поместить указатели функций в другой раздел (не .data)?
Для модульного тестирования встроенного проекта на хосте я начал использовать указатели функций, чтобы иметь возможность переключаться между «реальной» реализацией функции и макетом во время выполнения. Итак, моя функция 'foo' в файле .c выглядит...
1074 просмотров
schedule
20.09.2022
Зачем использовать __attribute__ (раздел) для некоторого выделения памяти?
у меня foo[NUMBYTES] __attribute__((section(".bar")));
Зачем использовать этот атрибут .bar раздела? Потому что foo[] уже предоставляет некоторое пространство памяти. Это для удобного управления памятью?
774 просмотров
schedule
12.02.2023
Компоновщик Gnu - тип выходного раздела
Насколько я знаю и читал в документации компоновщика, есть 5 типов выходных разделов: NOLOAD, DSECT, COPY, INFO, OVERLAY , но объясняются только 2 из них: NOLOAD и OVERLAY. COPY , INFO и DSECT не объяснены и везде в инете я вижу одни и те же 2...
486 просмотров
schedule
22.07.2023
Как вставить данные в скомпилированный бинарник для MCU
Я пытаюсь вставить хэш md5 части моего двоичного файла в двоичный файл, чтобы отслеживать версию MCU FW.
Я подошел к этому так: в скрипте ссылки я разделил флэш на две части.
MEMORY...
162 просмотров
schedule
21.07.2022
Резервное пространство памяти в области памяти m_text FLASH на встроенной цели
У меня есть микроконтроллер с большим количеством флэш-памяти, разделенной на секторы флэш-памяти по 1 тыс. Я хочу прошить простые числа в определенную область памяти во время перепрошивки, тогда при первой загрузке будет сгенерирован крипто ключ,...
3259 просмотров
schedule
07.08.2023
gcc: скрипт компоновщика arm-none-eabi-ld не обновляет начальную и конечную переменные .bss
Я пытаюсь создать образец проекта ARM с голым металлом, используя цепочку инструментов «arm-none-eabi-».
Makefile
CC := arm-none-eabi-gcc
LD := arm-none-eabi-ld
AS := arm-none-eabi-as
AR := arm-none-eabi-ar -cr
OBJCOPY := arm-none-eabi-objcopy...
1807 просмотров
schedule
11.06.2023
Выравнивание разделов компоновщика
Я пытаюсь написать исполняемый файл, в котором раздел .text находится в определенном месте. Я написал следующий скрипт компоновщика:
base_address = 0x123456789AB;
SECTIONS
{
ENTRY(_start)
. = base_address;
.text : { *(.text); }
}...
909 просмотров
schedule
13.04.2024
Что такое абсолютный символ и как его определить в C?
На справочной странице nm . Это говорит
«A» Значение символа является абсолютным и не будет изменено дальнейшим связыванием.
Однако я не знаю, что это значит. Как я могу определить переменную или что-то еще, чтобы сделать ее значение...
2326 просмотров
schedule
30.04.2022
Реализовать модуль module_init, аналогичный ядру Linux, но столкнуться с некоторыми проблемами в скрипте ld.
Мне очень нравится функция module_init ядра Linux, я хотел бы реализовать ту же функцию для своих приложений пользовательского пространства.
Я пытаюсь изменить скрипт компоновщика, чтобы сделать это:
1, скопируйте стандартный ld-скрипт x86-64...
203 просмотров
schedule
09.11.2023
Переназначение вектора прерывания Cortex-M3 в реальном времени
Я использую GCC 4.9 (arm-none-eabi) с STM32 и хочу поместить таблицу прерываний в массив, чтобы изменять адреса обработчиков прерываний, когда это необходимо в моем коде. Я прочитал существующие руководства и статьи и сделал следующее. :
Мне нужно...
1072 просмотров
schedule
30.01.2023
Понимание сценария компоновки микроконтроллера ARM Cortex-M
Я использую микроконтроллер STM32F746NG от STMicroelectronics. Это устройство основано на архитектуре ARM Cortex-M7. Я потратил довольно много времени на изучение компоновщика из примеров проектов. Я разобрался в основах, но все еще не могу понять...
8140 просмотров
schedule
19.07.2023
STM32F103C8T6 не работает после кнопки сброса
У меня есть "Минимальная системная плата для разработки микроконтроллера ARM - STM32F103C8T6" с ST-LINK V2. Это основной код, за которым следует сценарий компоновщика, а затем запуск:
1) основной:
@@@ Directives
.thumb...
1528 просмотров
schedule
31.07.2023
Компоновщик GNU ARM - почему мои разделы перекрываются?
Мне нужно добавить небольшую кучу, чтобы использовать стандартные библиотечные функции на микроконтроллере TM4C ARM (для _sbrk требуется символ end ).
Это мой скрипт компоновщика (пришел с демонстрацией микроконтроллера):
/* Entry Point */...
5782 просмотров
schedule
29.05.2022
Команда сценария компоновщика AURIX TriCore REGION_MAP
Я адаптирую некоторые скрипты компоновщика из довольно новых микроконтроллеров AURIX TriCore.
Есть команда, которую я совсем не понимаю, и документация [0] не очень полезна.
Может кто-нибудь сказать мне в принципе, что там происходит?...
1384 просмотров
schedule
18.01.2023
Разделы LD и NOLOAD: понимание странного значения LMA
Я пишу чистое ядро, и мне трудно понять вывод ld в случае раздела NOLOAD . Я объявляю символы, которые существуют только с активированным MMU, поэтому VMA и LMA не совпадают. Раньше я объявлял такой раздел так:
_foobar_start = .;
.foobar :...
2690 просмотров
schedule
10.11.2022
Разница между файлом карты и файлом компоновщика
В чем разница между файлом карты, созданным компоновщиком, и файлом компоновщика, который содержит сами сегменты памяти?
358 просмотров
schedule
22.03.2023
Как преобразовать параметр ld -Ttext в скрипт компоновщика?
Я нашел этот учебник по созданию операционной системы и пытаюсь преобразовать часть связывания в make-файле в скрипт компоновщика.
Вот руководство: https://github.com/ghaiklor/ghaiklor-os-gcc
Вот файл make:
SOURCES = $(shell find cpu...
283 просмотров
schedule
08.09.2023
Как получить размер входного раздела (поместить его в конец памяти)
У меня есть следующий скрипт компоновщика: .data и .bss помещаются в оперативную память, затем раздел .heap заполняет оставшуюся память.
Теперь я хочу добавить раздел .noinit , который всегда помещается в конец памяти. Это значит, что...
1318 просмотров
schedule
01.06.2022