4

一意のデバイス ID を使用して eeprom イメージを操作するメカニズムを探しています。デバイスが自動的に新しい ID を取得し、それをデータ イメージに更新してフラッシュするように、make ファイルでこれを行いたいと思います。擬似コード:

wget http://my.centralized.uid.service/new >new.id
binedit binary.image -write 0xE6 new.id
flash binary.image into device

そのため、最初に ID を別のファイルに取得し、次にこの ID ファイルの内容で (指定されたオフセットからの) 画像を上書きします。次にフラッシュします。しかし、第二部をどうするか?私はbviを調べましたが、これには何らかのスクリプト機能があるようですが、完全には理解できませんでした。

事前に助けてくれてありがとう!

4

3 に答える 3

2

置換元のファイルのオフセットがわかっている場合は、splitコマンドを使用して、最初のファイルをオフセットまで分割できます。このcatコマンドを使用して、必要なピースを結合できます。

バイナリ ファイルを操作する場合のもう 1 つの便利なツールはod、人間が読める形式でバイナリ ファイルを調べることができるツールです。

于 2012-09-04T11:41:39.450 に答える
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

適切に動作することを確認するためだけに、最初にコピーでこれを試してみることをお勧めします。

于 2012-09-04T13:23:46.547 に答える
0

私はおそらくのようなものを使用しますPerlここ、特にランダムアクセスファイルの更新というラベルの付いたセクションを参照してください(例はこちら) 。

于 2012-09-04T11:35:28.833 に答える