1 假设待嵌入文件为一个linux.h.
2 执行
arm-at91-linux-gnueabi-objcopy -I binary -O elf32-littlearm --binary-architecture armv5te linux.h data.o
后,linux.h生成了一个data.o的文件,这里-I表示按照二进制写入,-O表示输出格式是elf32-littlearm的,也就是板子里的格式。这里还需要指定arm架构,armv5te是我们arm板子的架构。
3 查看data.o文件里面的东西:
arm-at91-linux-gnueabi-nm data.o 0000014b D _binary_linux_h_end 0000014b A _binary_linux_h_size 00000000 D _binary_linux_h_start可以看到就3个字段,按照二进制塞进去都是3个字段,头,尾,大小。
4 然后编译的时候,包含这个data.o文件即可。
arm-at91-linux-gnueabi-g++ -o oooggggg main.cpp data.o这里的extern名字就是arm-at91-linux-gnueabi-nm data.o输出的结果,实际上规律就是_binary_文件名_扩展_end,start,size。