linux - 读取NAND闪存并将其写入另一个系统

标签 linux embedded arm jtag

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

1- 我可以通过以 root 身份登录系统并将 nand 闪存数据写入 SD 卡,然后一个新系统将其写回 nand 闪存来完成此操作吗?

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

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

最佳答案

您可以使用 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
~ #

关于linux - 读取NAND闪存并将其写入另一个系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055748/

相关文章:

linux - 当我使用路径压缩 tar gz 文件时,文件夹会被包含在内

c - C : enum vs constant vs defines 中的模式设置

c - 为什么这些嵌入式 C 代码的安排表现如此不同?

c - 写数据到寄存器

ios - 如何让 Xcode 5 中的 Assembly 显示 ARM 指令?

x86 - ELF 或二进制文件中有特定 ABI 的签名吗?

c - 用于开发最新的 Linux 上游(内核、Gnome 等)软件包的良好 Linux 发行版(和方法)是什么?

linux - 如何使用grep提取空格字符数不一致的行

c - 弃用/废弃某些 Linux 时间 API 的原因是什么?

linux - 如何使用 ARM64 的早期 printk 功能?