Linux 中的 eMMC RAW 访问

Pra*_*nth 1 linux embedded

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

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

小智 5

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

dd if=example.bin of=/dev/mmcblk1 seek=8
Run Code Online (Sandbox Code Playgroud)

输出文件 ( /dev/mmcblk1)的偏移量由seek 选项指定,在本例中为 8,因为 dd 默认以 512 字节的块为单位工作。查看man dd更多信息。

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

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