1. 使用dd命令製作燒寫檔案
環境:bootargs=mem=64m console=ttyama0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:512k(boot),3m(kernel),2560k(rootfs),10m
kernel是zimage(沒有頭部)而不是uimage.
由zimage生成uimage:
工具指令碼:makeprogrammingflashimg
指令碼的寫法應該和mtd分割槽保持一致。
#! /bin/shrm -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
32.5
10echo
''echo
'flash.bin address map
'echo
'0x00000000 : u-boot
'echo
'0x00100000 : linux kernel
'echo
'0x00200000 : jffs2
'echo
''
2. linux-dd命令詳解
使用方式: dd [option]
如果你想要看看這個版本如何:
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填充)。
嵌入式檔案系統映象製作及燒寫
一 cramfs 檔案系統 jffs2檔案系統。1.cramfs 檔案系統 存放系統檔案 唯讀。jffs2檔案系統 存放使用者檔案 讀寫。修改檔案系統的自啟動指令碼 vim etc init.d rcs 在其中新增 mount t jffs2 dev mtdblock3 home y 給使用者 2....
嵌入式開發 Bootloader的燒寫
在開發時,通常使用各種命令操作bootloader,一般通過串列埠來連線pc和開發板,可以在串列埠上輸入各種命令 觀察執行結果 燒寫核心和檔案系統等。這也只是堆開發人員才有意義,使用者使用產品時是不用串列埠來控制bootloader的。從這個觀點看,bootloader可以分為以下兩種工作模式 啟動...
嵌入式Linux燒寫原理 MfgTool工具
因此mfgtool工作過程主要分兩個階段 經過第 步的操作,此時linux系統已經執行起來了,系統執行起來以後就可以很方便的完成對emmc的格式化 分割槽等操作。emmc分割槽建立好以後就可以從firmware中讀取要燒寫的uboot linux kernel dtb 裝置樹 和rootfs這4個檔...