包含二进制文件作为常量数组

时间:2015-11-03 15:21:38

标签: c file binary include

我有一个使用eclipse编译的嵌入式C项目。 我需要将二进制文件作为常量数组读入应用程序代码中。

此二进制文件大约为200kB,需要成为应用程序代码的一部分,以便应用程序代码可以随时读取二进制映像并将其加载到需要此初始化映像的板上的另一个设备中。

我通常会将图像加载到电路板上的非易失性存储器中,然后读取并移动它,但这不可行,它必须是可执行映像的一部分。

我可以在makefile中通过将.bin文件链接到某个地址,或者在C代码中链接

来完成此操作
const char binFileImage [] = { file.bin };

这显然不起作用,但我还没有提出可行的语法。

仅供参考,file.bin确实是一个二进制文件。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:3)

使用链接描述文件将二进制文件放在特定地址中可能是最好和最简单的解决方案。

其他解决方案包括使用makefile调用的某个程序将文件转换为包含有效数组定义的源文件。例如,假设文件以值0x230x050xb30x8f开头,则自动生成的源文件可能类似于

const uint8_t binary_file_data[] = {
    0x23, 0x05, 0xb3, 0x8f, ...
};