1

I am trying to do a raw write to the eMMC within my embedded system. The device node is /dev/mmcblk1p1 and I'm trying to copy a binary example.bin to a particular address in the eMMC, say 0x1000.

Could someone please help me as to how I can go about this. I am using ARM platform running Linux. Any help would really prove useful. Thanks in advance.

4

2 回答 2

6

这可以通过dd命令行程序来完成。复制example.bin/dev/mmcblk1偏移量 0x1000 的操作如下:

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

out 文件 ( ) 的偏移量由/dev/mmcblk1seek 选项指定,在本例中为 8,因为 dd 默认以 512 字节的块工作。有关man dd更多信息,请参阅。

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

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

于 2012-12-29T09:47:22.923 回答
-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

于 2012-12-26T06:56:29.593 回答