国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

spi nor flash使用匯總

2019-11-08 00:01:26
字體:
供稿:網(wǎng)友

Overview

SPI Flash, 分為spi flash, DUAL spi flash, QUAD spi flash,

3-wire spi, 4-wire spi, 6-wire spi. 在clock一定的情況下, 理論上線數(shù)越多速度越快

NOR flash和Nand flash相比

NOR缺點(diǎn): 價格貴, 容量小, 擦除塊大, 擦除速度慢, NOR flash擦出壽命為100,000次, 遠(yuǎn)小于NAND flash的一百萬次NOR優(yōu)點(diǎn): 讀速度快, 穩(wěn)定不會出現(xiàn)位反轉(zhuǎn), 不需要EDC和ECC,  不需要壞塊管理NOR flash通常一次可以寫一個字節(jié), NAND flash內(nèi)存必須一次寫多個字節(jié)(通常為512字節(jié))

NOR flash的優(yōu)缺點(diǎn)決定了它的應(yīng)用場: 適合存儲關(guān)鍵很少修改的數(shù)據(jù), 比如bootloader kernel等代碼;不適合尺寸較大經(jīng)常修改的數(shù)據(jù),比如用戶地圖, 庫文件等

3 wire SPI

正常的SPI使用四根線: clock, cs, MOSI, MISO. 可以把MOSI MISO合并為一根線(slave out/slave in SISO)上實(shí)現(xiàn)半雙工. 主要用來實(shí)現(xiàn)低速傳輸

DUAL SPI

對于SPI flash來說, 全雙工并不常用, 因此擴(kuò)展這兩根數(shù)據(jù)線, 使得他們支持半雙工傳輸, 加倍數(shù)據(jù)傳輸速度. 可以發(fā)送一個命令字節(jié)請求進(jìn)入dual mode, 然后MOSI就變成了SIO0(Serial I/O 0), MISO變成了SIO1.

這種模式主要是針對SPI ROM, SPI flash設(shè)備, 需要進(jìn)行大數(shù)據(jù)量傳輸

QUAD SPI

quad SPI又增加了兩根I/O線(SIO2 SIO3), 可以在一個時鐘周期傳送四個data bits. 通過使用特殊的命令, 使能quad mode.

Double data rate

除了使用多根I/O線, 某些設(shè)備還通過DDR技術(shù)增加傳輸速率

SPI NOR flash文件系統(tǒng)支持

NOR flash和普通機(jī)械硬盤, SSD, EMMC的最大區(qū)別就是NOR flash在寫之前,需要確保寫的位置是已經(jīng)擦除過的, 因此并不適合使用傳統(tǒng)的Ext2/3/4, FAT/NTFS等文件系統(tǒng)

甚至YAFFS類的文件系統(tǒng)也不適合NOR flash

JFFS和JFFS2

這兩個文件系統(tǒng)都可以支持NOR flash, 并且提供了垃圾回收, 壞塊管理, 磨損平衡. 二者都存在文件系統(tǒng)mount速度較慢的問題, 不適合大容量flash

YAFFS/YAFFS2

已經(jīng)被踢出主線內(nèi)核了, 基本廢棄了.

Cramfs/Squashfs

常規(guī)的只讀文件系統(tǒng), 都支持?jǐn)?shù)據(jù)壓縮, 實(shí)現(xiàn)簡單, 速度快, 如果NOR flash存放的文件系統(tǒng)是只讀的, 盡量使用他們. 這些常規(guī)文件系統(tǒng)工作在傳統(tǒng)塊設(shè)備上, 需要內(nèi)核支持

CONFIG_MTD_BLKDEVS=yCONFIG_MTD_BLOCK=y

Ext2/3/4 FAT/NTFS

支持讀寫的塊設(shè)備文件系統(tǒng)不適合工作用在NOR flash上, 因?yàn)镹OR flash寫操作會導(dǎo)致擦除操作, 速度慢, 影響壽命.

MTD模擬block device

打開CONFIG_MTD_BLOCK和CONFIG_MTD_BLKDEVS

啟動后/dev/下會增加幾個block設(shè)備

root@devm:~# ls /dev/mtdmtd0       mtd1       mtd2       mtd3       mtdblock0  mtdblock2  mtd0ro     mtd1ro     mtd2ro     mtd3ro     mtdblock1  mtdblock3 

使用mkfs.ext4, 格式化mtdblock,

root@evm:~# mkfs.ext4 /dev/mtdblock3mke2fs 1.42.9 (28-Dec-2013)Filesystem label=OS type: linuxBlock size=1024 (log=0)Fragment size=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks1856 inodes, 7424 blocks371 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=76021761 block group8192 blocks per group, 8192 fragments per group1856 inodes per groupAllocating group tables: done                            Writing inode tables: done                            Creating journal (1024 blocks): doneWriting superblocks and filesystem accounting information: done

使用dd命令, 寫入cramfs鏡像

首先, 在Host創(chuàng)建cramefs鏡像

mkfs.cramfs rootfs/ cramfs.img

dd命令導(dǎo)入鏡像

root@evm:~# dd if=/dev/mtdblock3 of=cramfs.img   14848+0 records in14848+0 records outroot@evm:~# ls -l-rw-r--r--    1 root     root       7602176 Jan  1 00:24 kaka.imgroot@evm:~# 

NOR flash使用JFFS2

NOR flash上運(yùn)行JFFS2, JFFS2通過MTD接口操作NOR flash

創(chuàng)建JFFS2鏡像

mkfs.jffs2工具在mtd-utils工具包中

sudo apt-get install mtd-utilsmkfs.jffs2 -r rootfs/ -o jffs2.img --pad=0x800000--pad=0x800000 如果不加這個參數(shù), 生成的鏡像尺寸(文件系統(tǒng)大小)是按照rootfs/小內(nèi)容大小決定的;通過這個參數(shù)我們可以強(qiáng)制指定文件系統(tǒng)大小

燒寫JFFS2鏡像

有兩種燒寫方法:

1. 在uboot中把jffs2.img下載到DRAM中, 然后使用sf write命令把DRAM內(nèi)容燒寫到nor flash上

2. 進(jìn)入系統(tǒng)后使用 dd if=jffs2.img of=/dev/mtdblock4

二者性質(zhì)上實(shí)際相同, 都是直接把鏡像燒到NOR flash某段內(nèi)存中

掛載JFFS2文件系統(tǒng)

首先kernel要支持jffs2文件系統(tǒng), 執(zhí)行如下命令

mount -t jffs2 /dev/mtdblock4 /mnt

文件系統(tǒng)掛載速度

由于JFFS2在掛載過程中需要執(zhí)行掃描, 構(gòu)造文件系統(tǒng), 因此在同樣大小的mtdblock上, JFFS2掛載速度遠(yuǎn)大于EXT4文件系統(tǒng)

文件系統(tǒng)尺寸為0x740000(7.25MB)

Ext4掛載時間root@evm:~# time mount -t ext4 /dev/mtdblock3 /mnt                                                                                                              real    0m 0.06suser    0m 0.00ssys     0m 0.00s

JFFS2掛載時間root@evm:~# time mount -t jffs2 /dev/mtdblock3 /mntreal    0m 0.34suser    0m 0.00ssys     0m 0.33s


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 马公市| 桃园市| 巨野县| 汨罗市| 开封市| 崇礼县| 齐齐哈尔市| 固原市| 和平县| 博罗县| 长汀县| 城固县| 安陆市| 仙游县| 息烽县| 安庆市| 翁牛特旗| 南充市| 赣州市| 宁安市| 江阴市| 长顺县| 万年县| 美姑县| 唐河县| 青阳县| 大竹县| 中牟县| 红安县| 通城县| 玉树县| 吴旗县| 清涧县| 南岸区| 汕头市| 昌图县| 弥渡县| 屯留县| 柞水县| 卢湾区| 临邑县|