我通常希望将来自外部文件的二进制数据作为uint8_t
数组包含(编译)到我的程序(嵌入式或裸机)中。
有没有一种方法可以将它们转换为十六进制数组? 因为这涉及额外的构建步骤,有时这些步骤不那么容易集成,例如如果是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++
中工作的解决方案,但也欢迎只在两者之一中工作的建议。