Создайте секцию фиксированного размера с gcc и поместите в нее значения - PullRequest
0 голосов
/ 21 октября 2019

Мне нужно встроить двоичный файл в исполняемый файл, сгенерированный с помощью gcc в Linux, для выполнения на хосте (не на отдельном устройстве).

Кроме того, я хочу иметь возможностьизменить это двоичное содержимое извне, используя obcjcopy --update-section.

. Я могу сделать это с помощью __attribute__(("section")), но проблема в том, что упомянутый двоичный файл может иметь разные размеры в разные моменты, поэтому я хочу выделить разделфиксированного максимального размера. Таким образом, в будущем я могу обновить несколько большие / меньшие двоичные файлы.

Помимо вышесказанного, я хотел бы указать значение по умолчанию для этого конкретного раздела во время сборки (предопределенный двоичный файл, доступный при сборке). время).

Это можно сделать с помощью сценария компоновщика. Однако, насколько я понимаю, мне нужно изменить скрипт компоновщика по умолчанию для ОС, чего я хочу избежать.

Единственное, что мне приходит в голову, - это создать массив в этом разделе с фиксированнойsize, используя первые байты для выделения двоичного файла по умолчанию и заполнения остальных, например, 0xFF.

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 21 октября 2019

Как уже упоминал ikegami, достаточно указать максимальный размер массива и затем инициализировать нужные вам значения.

...