UPDATE:
Таким образом, вопрос заключается в следующем: моя установка сборки создает архив / lib (двоичный вывод), из которого я хотел бы извлечь некоторые данные для сжатия в моем случае, но на самом деле это не главное.
Мои инстинкты говорят мне, что, поскольку компоновщик может извлекать постоянные данные из архива / lib, для меня должно быть возможным / легко "сбросить" двоичное "содержимое" символа, содержащегося в архиве / lib, например, в. файл ....
Итак, это мой вопрос: как вывести двоичное содержимое символа в архив / lib (в формате ELF)?
UPDATE:
Я создаю приложение на основе lvgl .
Для разрешения текстов я использую онлайн-инструмент, предоставляемый сопровождающим lvgl, для преобразования шрифтов TrueType в C-код (данные const), который связан с приложением для рендеринга текстов.
Но результирующий набор данных для шрифтов становится слишком большим для моей доступной флэш-памяти, но у меня большой кусок неиспользуемой оперативной памяти. Итак, я хотел бы использовать heatshrink для сжатия данных и распаковки в оперативную память во время выполнения.
Для этого требуется, чтобы моя установка сборки могла извлекать двоичные данные, сжимать их и связывать с флэш-памятью, чтобы мой код времени выполнения мог распаковывать их.
Я догадывался, что могу скомпоновать все сгенерированные данные шрифта в "lib", извлечь двоичные данные, сжать их и связать в приложение как "BLOB-объект".
Но мне не удается извлечь данные для сжатия из библиотеки
например. моя декларация шрифта выглядит следующим образом:
/*Store the image of the letters (glyph)*/
static const uint8_t _glyph_bitmap[] =
{ /* const Byte values follow (e.g. 0x00) */ };
static const lv_font_glyph_dsc_t _glyph_dsc[] =
{ /* struct initialization follows */ }
lv_font_t myfont
{ /* struct initialization follows */ }
Так что мне нужно было бы получить доступ к myfont и объявлениям, на которые он ссылается, в двоичном виде.
У меня есть инструмент, который создает c-код, представляющий некоторые двоичные данные, чтобы позволить данным быть скомпилированными и связанными в конечный исполняемый файл (платформа ARM, набор инструментов GNU, пользовательское оборудование).
У меня заканчивается флэш-память, но у меня есть запасная память. Поэтому я рассматриваю сжатие некоторых больших разделов с постоянными данными в библиотеке и распаковываю их в оперативную память по мере необходимости.
Так что я могу скомпилировать c-код и поместить его в архив. Но до сих пор мне не повезло, когда я пытался извлечь двоичные данные из константных данных для сжатия, например. objdump или objcopy. Но что-то говорит мне, что это возможно (а может быть, даже легко). Но как? Я пытался "погуглить" проблему, но пришел с пустыми руками.