我正在尝试对嵌入式系统中的eMMC
进行原始写入。设备节点为/dev/mmcblk1p1
,我正在尝试将二进制文件example.bin
复制到eMMC
中的特定地址,例如0x1000
。
有人可以帮助我,告诉我如何解决这个问题。我正在使用运行Linux的ARM平台。任何帮助都会证明是有用的。提前致谢。
答案 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
。