Включите файлы двоичных данных в скомпилированные двоичные файлы без преобразования в массивы .hexC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Включите файлы двоичных данных в скомпилированные двоичные файлы без преобразования в массивы .hex

Сообщение Anonymous »

Я регулярно хочу включать (компилировать) двоичные данные из внешних файлов в виде массива uint8_t в свои программы (встроенные или «голые»).
Есть ли способ без дополнительного этапа преобразования их в массивы .hex?
Потому что это требует дополнительных шагов сборки, которые иногда не так легко интегрировать, например, в случае с набором инструментов Arduino. И выполнение этого вручную всегда приводит к забытым шестнадцатеричным обновлениям :-)
Обычно я использую gcc. Поэтому я также был бы рад, если бы это была прагма, специфичная для gcc, или другое расширение (хотя и не так хорошо, как общее решение).
Может быть, что-то вроде

Код: Выделить всё

static const __attribute__((rawDataFromFile("myDataFile.bin"))) uint8_t s_data[];
вместо классического внешнего способа

Код: Выделить всё

bin2hex myDataFile.bin myDataFile.hex
и

Код: Выделить всё

static const uint8_t s_data[] = {
#include "myDataFile.hex"
};
Предпочтительнее использовать решения, работающие на C и C++, но также приветствуются предложения, работающие только на одном из двух языков.

Подробнее здесь: https://stackoverflow.com/questions/588 ... hex-arrays
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»