日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NAND FLASH分区规划

發(fā)布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NAND FLASH分区规划 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
由于BOOTLOADRER、PARAMS以及內核、文件系統(tǒng)都在NAND FLASH上,因此分區(qū)就得進行統(tǒng)一規(guī)劃。系統(tǒng)的NAND FLASH分區(qū)依賴于u-boot和Linux內核兩方面的設置。

U-Boot中的NAND分區(qū)

文件:include/configs/開發(fā)板.h 這是Phy3250的參數(shù),Phy3250采用32MB的NAND FLASH,扇區(qū)大小為16KB:
189 /* Phy3250's NAND FLASH, 32MB, 16K size(Block, Sector) */ 190 //#define CFG_ENV_SIZE ? ? ? ? ? ? 0x4000 ? ? ?/* 1 block, 16K */ 191 //#define CFG_ENV_OFFSET ? ? ? ?0x168000 ?/* Block 90 ? ? ? */
如下是SmartARM3250的NAND FLASH,K9F2G08,256MB,扇區(qū)大小為128K:
193 /* SmartARM3250's NAND FLASH, K9F2G08, 256MB, 128K size(Block, Sector) */ 194 #define CFG_ENV_SIZE ? ? ? ? ? 0x40000 ? ? ? /* 2 Block, 256K */ 195 #define CFG_ENV_OFFSET ? ? ?0x180000 ? ? /* Block 12 ? ? ? ? */??

Kernel中的NAND FLASH分區(qū)

????NAND FLASH規(guī)劃

分???? 區(qū)?????????????????????????????????? 地址范圍??????????????????????? 扇區(qū)范圍??????????????????? 大??? 小??????????????? 用???? 途
?Bootloader???????????? 0x0000 0000 ~ 0x0018 0000?????0 ~ 11????????? 12個扇區(qū),1.50M?????????????? S1L和U-Boot
?param????????????????? 0x0018 0000 ~ 0x001C 0000??????12~13?????????? 2個扇區(qū),? 256K???????????????? U-Boot參數(shù)
保留??????????????????? 0x001C 0000 ~ 0x0020 0000???????? 14~15
?Linux Kernel?????????? 0x0020 0000 ~ 0x0060 0000????16~47?????????? 32個扇區(qū),4.00M??????????????? ?Linux內核
?Rootfs???????????????? 0x0060 0000 ~ 0x1000 0000????????48~2047???????? 2000個扇區(qū),250M?????????? Linux文件系統(tǒng)???

?


rootfs
2047

48
?
共2000扇區(qū)

?Kernel
47

16

共32扇區(qū)?

?保留
15?

14
?
共2扇區(qū)

?param
13
?
12
?
共2扇區(qū)
?
Bootlloader
11?

0
?
共12扇區(qū)

分區(qū)實現(xiàn)

在linux-2.6.27.8/arch/arm/mach-lpc32xx/board-smartarm3250.c中的實現(xiàn)代碼: 153 #define BLK_SIZE (0x20000) //128KB 154 static struct mtd_partition __initdata smartarm3250_nand_partition[] = { 155 ? ? { 156 ? ? ? ? .name ? = "smartarm3250-boot", 157 ? ? ? ? .offset = 0, 158 ? ? ? ? .size ? = (BLK_SIZE * 12) 159 ? ? }, 160 ? ? { 161 ? ? ? ? .name ? = "smartarm3250-ubt-prms", 162 ? ? ? ? .offset = (BLK_SIZE * 12), 163 ? ? ? ? .size ? = (BLK_SIZE * 2) 164 ? ? }, 165 ? ? { 166 ? ? ? ? .name ? = "smartarm3250-kernel", 167 ? ? ? ? .offset = (BLK_SIZE * 16), 168 ? ? ? ? .size ? = (BLK_SIZE * 32) 169 ? ? }, 170 ? ? { 171 ? ? ? ? .name ? = "smartarm3250-rootfs", 172 ? ? ? ? .offset = (BLK_SIZE * 48), 173 ? ? ? ? .size ? = MTDPART_SIZ_FULL 174 ? ? }, 175 };

?

?

?

總結

以上是生活随笔為你收集整理的NAND FLASH分区规划的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。