嵌入式:使用dd命令制作燒寫文件


1. 使用dd命令制作燒寫文件

環境:

      bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:512K(boot),3M(kernel),2560K(rootfs),10M

MTD partitions :
0x000000000000-0x000000080000 : "boot"
0x000000080000-0x000000380000 : "kernel"
0x000000380000-0x000000600000 : "rootfs"
0x000000600000-0x000001000000 : "app"

 

材料:uboot.bin, kernel,rootfs.jffs2, app.img

  kernel是zImage(沒有頭部)而不是uImage.

  由zImage生成uImage: http://www.cnblogs.com/mylinux/p/3994455.html

  由uImage生成zImage:  dd if=uImage of=zImage bs=64 skip=1

 

工具腳本:makeprogrammingflashimg

腳本的寫法應該和mtd分區保持一致。

#! /bin/sh
rm -rf PROGRAMMING.bin
dd if=$1 of=PROGRAMMING.bin bs=1k conv=sync
dd if=$2 of=PROGRAMMING.bin bs=1k seek=512
dd if=$3 of=PROGRAMMING.bin bs=1k seek=3584 conv=sync
dd if=$4 of=PROGRAMMING.bin bs=1k seek=6144 conv=sync
#0.5  3   2.5 10 
echo ''
echo 'flash.bin address map'
echo '0x00000000 : u-boot'
echo '0x00100000 : Linux Kernel'
echo '0x00200000 : JFFS2'
echo '0x00600000 : APP '

 

操作方法: ./makeprogrammingflashimg uboot.bin kernel rootfs.jffs2 app.img

 

如果不想使用app分區,直接在腳本里注釋掉$4,使用腳本的時候不傳入app.img即可。

 

2.  Linux-dd命令詳解 http://www.cnblogs.com/dkblog/archive/2009/09/18/1980715.html

使用方式: dd [option]

如果你想要在線看 manual, 可以試試:
dd --help 或是 info dd

如果你想要看看這個版本如何:
dd --version

輸入或輸出
dd if=[STDIN] of=[STDOUT]

強迫輸入或輸出的Size為多少Bytes
bs: dd -ibs=[BYTE] -obs=[SIZE]

強迫一次只做多少個 Bytes
cbs=BYTES

跳過一段以后才輸出
seek=BLOCKS

跳過一段以后才輸入
skip=BLOCKS

 

if =輸入文件(或設備名稱)。 

of =輸出文件(或設備名稱)。 

ibs = bytes 一次讀取bytes字節,即讀入緩沖區的字節數。 

skip = blocks 跳過讀入緩沖區開頭的ibs*blocks塊。 

obs = bytes 一次寫入bytes字節,即寫入緩沖區的字節數。 

bs = bytes 同時設置讀/寫緩沖區的字節數(等於設置ibs和obs)。 

cbs = byte 一次轉換bytes字節。 

count=blocks 只拷貝輸入的blocks塊。 

conv = ASCII 把EBCDIC碼轉換為ASCIl碼。 

conv = ebcdic 把ASCIl碼轉換為EBCDIC碼。 

conv = ibm 把ASCIl碼轉換為alternate EBCDIC碼。 

conv = block 把變動位轉換成固定字符。 

conv = ublock 把固定位轉換成變動位。 

conv = ucase 把字母由小寫轉換為大寫。 

conv = lcase 把字母由大寫轉換為小寫。 

conv = notrunc 不截短輸出文件。 

conv = swab 交換每一對輸入字節。 

conv = noerror 出錯時不停止處理。 

conv = sync 把每個輸入記錄的大小都調到ibs的大小(用NUL填充)。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM