通過uboot燒寫yaffs檔案系統

2021-06-01 02:47:33 字數 1142 閱讀 4939

之前在sep4020上做開發的時候一直用的都是nfs檔案系統

今天嘗試在板子上燒寫cramfs以及yaffs檔案系統,按照手冊燒寫cramfs檔案系統時一切順利,沒有遇到什麼問題。在燒yaffs的時候,起初使用的是在啟動cramfs之後,再把yaffs的分割槽掛在到cramfs中,並把相關的檔案拷貝到yaffs的分割槽,從而實現燒寫yaffs檔案系統,但這樣的方式比較麻煩。

在uboot1.3.3中實現了直接在uboot中燒寫yaffs的方式,提供了nand write.yaffs這個命令,但是一開始我碰到了這樣的問題

sep4020=>nand write.yaffs 0x31000000 0x1e00000 0x2000000

nand write: device 0 offset 0x1e00000, size 0x2000000

input block length is not page aligned

data did not fit into device, due to bad blocks

33554432 bytes written: error

sep4020=>nand write.yaffs 0x31000000 0x1e00000 0x1000000

出現這個問題的原因是因為yaffs檔案系統的頁大小為(512+16)b,因此,燒寫的大小應該是這個頁大小的整數倍,因此燒入大小為0x2000000是有問題的。

bytes transferred = 11065824 (a8d9e0 hex)

sep4020=>nand write.yaffs 0x31000000 0x1e00000 ($filesize)

nand write: '($filesize)' is not a number

sep4020=>nand write.yaffs 0x31000000 0x1e00000 0xa8d9e0   

nand write: device 0 offset 0x1e00000, size 0xa8d9e0

writing data at 0x283fa00 -- 100% complete.

11065824 bytes written: ok

如上,調整檔案大小之後,就順利的實現了燒寫了。

以上的這種方式實現yaffs的燒寫比起在cramfs中燒寫方便。

uboot燒寫yaffs檔案系統的原理

以前沒有特別仔細的研究過nand write和nand write.yaffs憑感覺應該用nand write.yaffs來燒寫yaffs檔案系統。可是為什麼呢?於是研究了一些uboot下的 才知道原因。nand write 是auto模式,呼叫的是nand write chip ecc.write...

uboot替代eboot燒寫 啟動

一 wince 啟動過程分析 我用的是utu2440的開發板,板子自帶的啟動檔案包括nboot1 nboot2 eboot wince核心,各個檔案作用是 nboot1 s3c2440對於nand flash,最大載入4k的 執行,可以直接執行這個程式,nboot1啟動後會從flash中載入nboo...

ARM開發版uboot燒寫

製作uboot,啟動開發板 zshh zshh shaohua arm arm資料 cd exynos4412 lzy1 src uboot uboot 2012 12 1.切換目錄到exynos4412 lzy1 src uboot uboot 2012 12 zshh zshh shaohua ...