我正在嘗試在我的嵌入式系統中對eMMC
進行原始寫入。該設備節點/dev/mmcblk1p1
,我試圖二進制example.bin
複製到在eMMC
一個特定的地址,說0x1000
。在Linux中的eMMC RAW訪問
可能有人請幫助我,我怎麼能去這個問題。我正在使用運行Linux的ARM平臺。任何幫助真的會有用。提前致謝。
我正在嘗試在我的嵌入式系統中對eMMC
進行原始寫入。該設備節點/dev/mmcblk1p1
,我試圖二進制example.bin
複製到在eMMC
一個特定的地址,說0x1000
。在Linux中的eMMC RAW訪問
可能有人請幫助我,我怎麼能去這個問題。我正在使用運行Linux的ARM平臺。任何幫助真的會有用。提前致謝。
您需要首先將設備節點掛載到Linux文件系統。
# mount -t msdos /dev/mmcblk1p1 /mnt/
# cp /mnt/libnsl.so /lib/libnsl.so.1
# /mnt/lrz
lrz
是將使用ZMODEM
協議傳送文件的應用程序。使用TeraTerm
,打開
文件 - >傳輸 - > ZMODEM - > example.bin然後單擊OK
。
不,這是行不通的,因爲我想執行一個RAW寫入地址。你所建議的是通過文件系統。 – Prashanth
這可以用dd命令行程序來完成。複製example.bin
到/dev/mmcblk1
在0x1000的偏移將被如下進行:
dd if=example.bin of=/dev/mmcblk1 seek=8
的所述出文件(/dev/mmcblk1
)的偏移量與尋求選項指定並且是8在本實施例中如在512個塊DD作品字節默認情況下。有關更多信息,請參見man dd
。
這也可以編程用C使用就出文件的打開文件描述符lseek的()函數來完成。
注意,在問題的文件/dev/mmcblk1p1
提及,但是這是MMC設備(P1)上的第一個分區的設備節點。 /dev/mmcblk1
文件是實際MMC設備的正確節點。
究竟是什麼你想怎麼辦?如果你想閃到MMC的圖像,你的引導程序將命令這樣做,viz.nand.write。 – itisravi
這不是我正在處理的引導裝載程序。我想要一個應用程序將二進制文件寫入eMMC中的特定地址。如果我沒有錯,引導程序會處理內核映像等。我只想將我自己的二進制文件閃存到一個地址。希望這可以幫助.. – Prashanth
我想你可以編寫一個程序來打開(/ dev/mmcblkp1),seek()到與eMMC地址對應的期望偏移量並開始編寫你的二進制文件。 – itisravi