1

組み込みシステムのナンドフラッシュを読み取り、別のシステムのナンドフラッシュに書き戻したい。デバイス上で実行されているLinuxシステムのルートにアクセスできます。システムはAM3874に基づいており、私もそのJTAGにアクセスできます。私の質問は次のとおりです。

1-ルートとしてシステムにログインし、NANDフラッシュデータをSDカードに書き込んでから、1つの新しいシステムがそれをNANDフラッシュに書き戻すことでこれを行うことはできますか?

2-上記の質問に対する答えが「はい」の場合、手順と必要なソフトウェアは何ですか?

3-答えが「いいえ」の場合、JTAGインターフェイスを使用してNANDフラッシュを読み取り、別のデバイスに書き込むことはできますか?

4

2 に答える 2

3

コマンドを使用して、デバイス全体またはパーティションをファイルにコピーできますdd

例:

dd if=/dev/mtd/mtd4 of=/mnt/sdcard/system.img bs=4096

同様の方法で、ファイルをデバイスにコピーできます。

編集:

もちろん、これはLinuxにデバイスドライバーがあるNANDフラッシュでのみ機能します。

フラッシュにファイルシステムをマウントしている場合は、fdまたはmountコマンドを使用して正しいデバイス名を見つけることができます。こちらです:

~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                53504     13580     39924  25% /
tmpfs                    25600        68     25532   0% /tmp
/dev/mmcblk0p1           77077     67089    722524  92% /mnt/test

~ # dd if=/dev/root of=/mnt/test/root.img bs=4096
13376+0 records in
13376+0 records out

~ # ls -l /mnt/test/root.img
-rw-r--r--    1 root     root     54788096 Oct 26 13:17 /mnt/test/root.img
~ #
于 2012-10-24T19:04:41.987 に答える
1

ddLinuxでこのコマンドを使用して、最初のシステムでデバイスを読み取ることができる場合があります。ターゲットでは、書き出す前に、NANDフラッシュ上のファイルシステムをアンマウントする必要があります。SDカード上のramfsまたはファイルシステムから完全に実行できますか?アンマウントできる場合はdd、内容を書き戻すことができるはずです。

可能であれば、を使用してコピーする前に、ソースシステムからNANDをアンマウントすることをddお勧めします。これにより、ライブファイルシステムをコピーすることはありません。

ファイルをコピーする必要がありますか?もしそうなら、最初のデバイスからtarballを作成し、もう一方のデバイスで解凍することはオプションでしょうか?

于 2012-10-24T19:04:11.697 に答える