Мне было интересно, есть ли способ загрузить внешний двоичный файл в качестве переменной в C через включение или файл заголовка или что-то в этом роде.
Например, в проекте, над которым я сейчас работаю, я работаю со встроенной системой, которая имеет графический дисплей, который будет отображать текст и второстепенную графику (блоки, линии и т. д.), используя данные и команды ASCII. Но он также будет отображать монохромные растровые изображения. Итак, у меня есть ряд статических дисплеев, которые я использую для пользовательского интерфейса, и пара растровых изображений для экранов-заставок.
Теперь причина, по которой я упоминаю, что это встроенная система, заключается в том, что нет файловой системы для загрузки данных, только ОЗУ и программная память, поэтому любые «предварительные» данные или таблицы, которые я хочу использовать, должны быть загружены либо во время компиляции, либо через исходный файл или через объектный файл с помощью компоновщика. К сожалению, среда IDE не предоставляет каких-либо средств для загрузки двоичного файла в любой форме в память программы для использования в качестве кэша данных любым легко узнаваемым способом.
Если не делать того, что мне уже нужно, чтобы обойти это (используйте шестнадцатеричный редактор, чтобы прочитать двоичный файл в виде шестнадцатеричного кода ASCII, скопировать и вставить необработанные данные в файл заголовка в качестве переменной), есть ли способ «связать» в файл или «включить» файл, который можно загрузить как константную переменную во время компиляции?
Система, с которой я работаю, — это MPLAB X для процессоров серии Microchip, а компилятор — GNC. В основном я пытаюсь узнать, есть ли способ сделать это с помощью какой-либо команды или функции C, прежде чем я попытаюсь найти способ конкретно с помощью их конкретного программного обеспечения компилятора/компоновщика.
xxd -i
- person pmg   schedule 17.03.2014