1.说明
本文用于制作使用烧录器向flash芯片中烧写的固件。
2.准备
编译生成的固件文件firmware.bin
;
3.制作固件脚本
#!/bin/bash
if [ ! -f "firmware.bin" ]; then
echo "err: not found firmware.bin"
exit 1
fi
# 查看固件信息
du -b firmware.bin
# 制作16M全是FF的bin文件:
dd if=/dev/zero bs=1M count=16 | tr "\000" "\377" > all_0xff.bin
# 拼接两个bin文件
cat firmware.bin all_0xff.bin > firmware_0xff.bin
# 截取前16M bin文件
dd if=firmware_0xff.bin bs=1M count=16 skip=0 of=firmware_flash.bin
# 删除中间文件
rm all_0xff.bin firmware_0xff.bin
# 在固件的指定位置写入文件信息,如:flash的16773120位置写入0x3e10
echo -e -n "\x10\x3e\x00" | dd bs=1 seek=16773120 conv=notrunc of=firmware_flash.bin
exit 0