UBIFS 根文件系统制作
1. UBIFS 文件系统简介
传统的flash文件系统如jffs2, yaffs2等是工作在MTD 设备上,而UBIFS则建立在UBI卷层之上,UBI卷层工作在MTD设备层之上,也可以说,UBIFS涉及三个子系统:
MTD 子系统,提供对flash芯片Raw的访问接口。MTD子系统提供了MTD device的概念,比如/dev/mtdX(字符设备)和/dev/mtdblockX(块设备);l UBI Subsystem, 它工作在MTD设备之上,提供了UBI逻辑卷,对上层屏蔽了一些直接使用MTD设备需要处理的问题,如wear-leveling(磨损平衡)和volume management(坏块管理)功能等;l UBIFS 文件系统,工作于UBI之上。它提供文件的open, read, write等操作;
系统之间的层级关系
2.根文件系统镜像文件制作
l mkfs.ubifs 参数说明
-x lzo 指定使用lzo压缩方法,默认是lzo, 还支持zlib, zlib的压缩率高,但是lzo压缩解压速度快。
-m 2048 Nand Flash的最小读写单元,一般为page size.
-r ./rootfs 指定根文件系统目录树的路径
-o rootfs.ubifs 指定制作出的根文件系统镜像文件名
-e 126976 指定LEB(Logical Erase Block, 逻辑擦除块)大小。Nandflash 读写单位为页,擦除单位为块,以ESMT F59L1G81MB 为例:一个PEB(Physical EraseBlockSize, 物理擦除块)大小就是2048*64=131072,-e 的算法是物理擦除块大小-2*页大小,这里就是131072-2*2048=126976(注:这里的擦除块大小都不包含oob, 有包含子页和不包含子页之分。 )
-c xxx 指定该分区最大逻辑擦除块数量,该值随着根文件系统分区的大小和该分区的坏块数调整。
l ubinize 参数说明
-o rootfs-ubifs.bin 指定ubinize处理后输出的image文件名,该文件可以由u-boot的nand write命令直接烧录;
-m 2048 指定minimum input/output unit 大小,为Nandflash的页大小;
-p 131072 指定物理擦除块大小:64 Pages * 2048 Byte/Page = 131072(不包含oob的大小)
-s 512/2048 指定sub-page-szie大小,如果有sub-page, 则配置为512;如果没有sub-page,则配置为2048
n 关于配置文件说明:
image=rootfs-ubifs.img 指定mkfs.ubifs 制作成的根文件系统镜像文件路径;
vol_id=0 指定根文件系统树的卷标为0,u-boot的bootargs参数需要根据它来设置;
vol_size=xxx 指定该UBI逻辑卷的大小,该值计算公式一般为 逻辑擦除块大小*逻辑擦除块个数。该值一般不用写,默认值是image大小。写了这个作用是帮助检查image是否超过了分区限制,制作时候就会提示,否则mount会出错。逻辑擦除块个数的值是经过计算的最大值(前面mkfs.ubifs -c 指定的值),不过volume flag autoresize 参数会自适应大小,不会浪费空间,后面Linux 系统内核启动过程中可以看到这个现象。
vol_type=dynamic
vol_name=xxx 指定UBI Volume的名称,u-boot的bootargs参数需要根据它来设置;
vol_flags=autoresize UBI Subsystem 在系统启动时自动调整逻辑擦除块的个数;
经过ubinize 命令处理过后的根文件系统镜像rootfs-ubifs.bin就可以直接在u-boot使用
nand write 命令烧录到相应的根文件系统分区上去了。
关于Minim Flash input/output, sub-pages, UBI Header的说明:
http://www.linux-mtd.infradead.org/doc/ubi.html#L_min_io_unit
如何检测芯片是否能烧录
一、芯片烧录的方法
芯片烧录的方法有很多,在大规模生产中,还是以烧录器烧录为主。使用烧录器烧录,就都得使用到烧录座。每个烧录座的使用次数就不能得到有效的监控,一旦超过烧录座的使用寿命,就没办法保证芯片的烧录品质。而烧录座也不具备侦测该烧录座与所需烧写的芯片的是否匹配的功能,那么该如何检测芯片是否能烧录?
二、 可烧录的IC分类,一般分为MCU类和存储类两大类
1、MCU类可烧录IC,目前市场上有很多单芯片控制器(SINGLE MCU)可以通过配套的烧录器进行一次或多次资料烧写。通常仅能烧录一次的MCU被叫做OTP MCU,与之相对的是MTP MCU,就是可多次烧录的MCU。
2、存储类可烧录IC的门类众多,例如EPROM、EEPROM、NOR FLASH、SPROM、NAND FLASH等等,都属于存储类可烧录IC。
三、IC芯片烧录工艺要求及注意事项:
1、放IC时一定要小心,避免损坏IC和烧录座;
2、IC一定不能装反,否则容易损坏烧录座;
3、烧录人员必须经过培训才能上岗操作,烧录时一定不能动计算机其它程序;
4、如不良现象立即反馈管理人员来解决。
相关问答
NandFlash烧录 时坏块是如何处理的?WinCE或Linux系统通常存储于NandFlash中,而NandFlash频繁擦写易出现坏块,坏块影响系统正常工作,严重时会导致系统无法启动。M3352核心板、M283核心板、M287核...
怎么使用jlink一键 烧录 整个flashHi3518aceHi3515Hi3512?r#重启jlinkspeed3000k#设置jlinkspeed为3000K,当然也可设置为12000K或其他,如果信号线拉太长了就不要把速度设置太高了rce0911#wce0...
为啥switch卡带不能 烧录 ?因为Switch卡带是一种物理媒介,用于存储游戏数据,其内部采用的是闪存芯片。烧录是指通过某种方式将数据写入到媒介中,而Switch卡带的闪存芯片是无法直接烧录的...
各位老表,有谁知道 在线 等 flash烧录 和ic烧录?,IC烧录方法...[回答]怎样刻录光盘:1.安装一台刻录机。先要确定你的刻录机是哪一种?是DVD刻录机(DVD-RW、DVD-RAM)还是CD刻录机(CD-RW)?如果是前者,可以刻录DVD和CD两种...
在线 的大神 请回答 flash烧录 和ic烧录?,IC烧录流程服务体验...[回答]getDate获取当前日期(本月的几号)getDay获取今天是星期几(0-Sunday,1-Monday...)getFullYear获取当前年份(四位数字)getHours获取当前小时数(24小时....
bios 烧录 方法-ZOL问答nini6039927其实只要是芯片,都可以通过加电压的方式,对Flash进行编程。PLCC只是封装的一种形式,只要你知道编程管脚的定义,在对应的编程管脚上接上线,就可以...
ALTERAFPGA怎样向 FLASh 中烧程序?对于Altera的FPGA来说,最常用的是用AS的烧录模式,选择一颗对应容量的EEPROM即可。程序一直在ROM内,上电后FPGA自动加载。Altera推荐的器件有EPCS1、EPCS4等,...
在线 的老铁有谁了解, flash烧录 和ic烧录?,IC烧录费用服务体...知道他的工作原理就行了!可以破解的!我已经用过了!不是直接破解是拦截对卡写入信息的原理!有一种转接卡把原机卡已经交上3个月的费用激活,再插到转...
什么叫做 烧录 卡?烧录卡是GBANDS等掌上游戏机用的一种可擦写卡带,通过烧录,让很多游戏或者各种内容能够存储在一个烧录芯片中,然后通过机器对芯片内容的读取,使用卡里的内容...
flash烧录 和ic烧录?,IC烧录原理如何选??[回答]一、定义上的区别1、Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。2、NORF...