我正在寻找一种机制来使用唯一的设备ID来操纵我的eeprom图像。我想在make文件中执行此操作,以便设备自动获取新ID,然后将其更新为数据映像,然后将其刷新。在伪代码中:
wget http://my.centralized.uid.service/new >new.id
binedit binary.image -write 0xE6 new.id
flash binary.image into device
首先我们将一个id放入一个单独的文件中,然后我们用这个ID文件的内容覆盖图像(来自给定的偏移量)。然后闪光。但是如何做第二部分呢?我查了 bvi ,它似乎有一些脚本功能,但我并没有完全理解它,说实话vi总是给我毛骨悚然。
事先感谢您的帮助!
答案 0 :(得分:2)
如果您知道要替换的文件的偏移量,则可以使用split
命令将初始文件拆分到偏移量。然后可以使用cat
命令将所需的部分连接在一起。
使用二进制文件时的另一个有用工具是od
,它允许您以人类可读的格式检查二进制文件。
答案 1 :(得分:2)
(完全披露:我做了初步投票,以复制方式结束。这个答案改编自引用的问题。)
将dd
与notrunc
选项一起使用:
offset=$(( 0xe6 ))
length=$( wc -c < new.id )
dd bs=1 if=new.id of=binary.image count=$length seek=$offset conv=notrunc
您可能希望先在副本上尝试此操作,以确保其正常工作。
答案 2 :(得分:0)