Linux中的eMMC RAW访问

时间:2012-12-26 05:57:49

标签: linux embedded

我正在尝试对嵌入式系统中的eMMC进行原始写入。设备节点为/dev/mmcblk1p1,我正在尝试将二进制文件example.bin复制到eMMC中的特定地址,例如0x1000

有人可以帮助我,告诉我如何解决这个问题。我正在使用运行Linux的ARM平台。任何帮助都会证明是有用的。提前致谢。

2 个答案:

答案 0 :(得分:4)

这可以使用dd命令行程序完成。将example.bin复制到/dev/mmcblk1,偏移量为0x1000,如下所示:

dd if=example.bin of=/dev/mmcblk1 seek=8

out文件(/dev/mmcblk1)的偏移量是使用seek选项指定的,在本例中为8,因为默认情况下dd在512字节的块中工作。有关详细信息,请参阅man dd

这也可以通过在out文件的打开文件描述符上使用lseek()函数在C中以编程方式完成。

请注意,在问题中提到了/dev/mmcblk1p1文件,但这是MMC设备上第一个分区的设备节点(p1)。 /dev/mmcblk1文件是实际MMC设备的正确节点。

答案 1 :(得分:-4)

您需要先将设备节点挂载到Linux文件系统。

# mount -t msdos /dev/mmcblk1p1 /mnt/
# cp /mnt/libnsl.so /lib/libnsl.so.1
# /mnt/lrz

lrz是一个使用ZMODEM协议传输文件的应用程序。使用TeraTerm,打开

档案 - >转移 - > ZMODEM - >单击example.bin并单击OK