1

我有一个嵌入式系统,我想读取它的 nand flash 并将其写回另一个系统的 nand flash。我可以访问在设备上运行的 Linux 系统的根目录。该系统基于 AM3874,我也可以访问它的 JTAG。我的问题是:

1-我可以通过以root身份登录系统并将nand flash数据写入SD卡然后一个新系统将其写回nand flash来做到这一点吗?

2- 如果上述问题的答案是肯定的,我需要什么程序和什么软件?

3- 如果答案是否定的,我可以使用 JTAG 接口读取 NAND Flash 并将其写入另一个设备吗?

4

2 回答 2

3

您可以使用dd命令将整个设备或分区复制到文件中。

例子:

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

类似的方式,您可以将文件复制到设备。

编辑:

这当然只适用于在您的 linux 中具有设备驱动程序的 NAND 闪存。

如果您在闪存中安装了文件系统,那么您可以使用fdmount命令来查找正确的设备名称。这边走:

~ # 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

您也许可以dd在 Linux 中使用该命令来读取第一个系统上的设备。在目标上,您需要先卸载 NAND 闪存上的所有文件系统,然后再将其写出。您可以完全从 ramfs 或 SD 卡上的文件系统运行吗?如果您能够卸载它,dd应该允许您将内容写回。

如果可能,您可能希望在使用 复制它之前卸载源系统上的 NAND dd,这样您就不会复制实时文件系统。

你只需要复制文件吗?如果是这样,从第一个设备创建一个 tarball 并在另一个设备上解压它是一种选择吗?

于 2012-10-24T19:04:11.697 回答