• jffs2和yaffs2文件系统


    一,JFFS2
    JFFS:1999
    Journalling Flash File System, Version 2:2001-9-23,Linux 2.4.10
    主要用于NOR Flash,可用于NAND Flash

    1. 特性:
    掉电保护与损耗平衡
    垃圾回收机制
    CRC循环冗余校验机制
    挂载时间与内存消耗跟文件系统的大小成正比:文件系统越大,越慢,消耗越多 ————> 很差的扩展性
    挂载需要进行全盘扫描,挂载一个 16M 的闪存有时需要半分钟以上的时间
    在实际应用中,JFFS2 最大能用在 128M 的闪存上

    二,YAFFS2
    YAFFS:2002
    Yet Another Flash File System, Version 2:2003
    只能用于NAND Flash, YAFFS1支持512Bytes/Page的NAND Flash;YAFFS2支持2kBytes/Page的NAND Flash.

    1.特性:
    储存资料的基本单位是Chunk:Page
    支持YAFFS/Direct使用:可以不需要VFS,甚至操作系统支持
    ECC冗余校验机制
    纠正单比特错误和检测双比特错误,而且计算速度很快,但对1比特以上的错误无法纠正,对2比特以上的错误不保证能检测。
    更快的挂载速度,更少的内存使用
    512B/page ————> 4KB RAM/1MB NAND
    2KB/Page ————> 1KB RAM/1MB NAND


    JFFS与YAFFS都是日志结构文件系统(LFS),保障了数据的可靠性与安全性,可以恢复数据。
    一般来说,对于小于64MB的NAND Flash,可以选用JFFS2;如果超过64MB,用YAFFS2比较合适

    三,jffs2文件系统镜像制作

    1、工具安装
    sudo apt-get install mtd-utils

    命令:mkfs.jffs2

    2、镜像制作
    信息收集:
    Flash的页大小、擦除块大小

    mkfs.jffs2 [options]
    主要选项:
    -p, --pad[=SIZE] 使用0xff填充文件系统到指定大小,不指定则只填充完最后一个擦除块
    -r, -d, --root=DIR 使用指定的目录内容构建文件系统(default: cwd)
    -s, --pagesize=SIZE 使用指定的页大小(最大数据节点大小) (default: 4KiB)
    -e, --eraseblock=SIZE 指定擦除块的大小 (default: 64KiB)
    -c, --cleanmarker=SIZE 擦除标记的大小 (default 12)
    -m, --compr-mode=MODE 选择压缩模式(default: priortiry)
    -x, --disable-compressor=COMPRESSOR_NAME 禁用指定的压缩算法
    -X, --enable-compressor=COMPRESSOR_NAME 启用指定的压缩算法
    -y, --compressor-priority=PRIORITY:COMPRESSOR_NAME 设置压缩算法的优先级
    -L, --list-compressors 列出可用的压缩算法
    -t, --test-compression 测试压缩算法
    -n, --no-cleanmarkers 不添加擦除标记到擦除块
    -o, --output=FILE 指定文件系统镜像名称(default: stdout)
    -l, --little-endian 创建一个小端的文件系统
    -b, --big-endian 创建一个大端的文件系统
    -q, --squash 压缩权限和设置所有文件的拥有者为root
    -U, --squash-uids 设置所有文件的拥有者为root
    -P, --squash-perms 压缩所有文件的权限

    四,yaffs2文件系统镜像制作

    1、获取yaffs2源码
    git clone git://www.aleph1.co.uk/yaffs2
    从源码中编译制作工具:
    cd yaffs2/utils
    make


    error: unknown type name ‘u8’
    error: unknown type name ‘u32’
    如果出现以上错误,修改yportenv.h文件,增加:#define CONFIG_YAFFS_DEFINES_TYPES

    制作工具:
    mkyaffs2image: YAFFS2(2KB/page)
    mkyaffsimage: YAFFS(512B/page)

    2、镜像制作
    mkyaffs2image dir image_file [convert]

    以上所有文件系统只能烧录使用,不能在宿主机上进行挂载

  • 相关阅读:
    mongodb的sql例子(简单版)
    git上传github上
    git中的版本库,暂存区和工作区
    进程与线程的区别
    mysql 在linux 修改账号密码
    linux 下 yum 安装mysql
    linux 下 修改mysql账号密码
    linux 下开放端口问题
    linux 下安装tomcat
    Ubuntu 配置Tomcat环境(转载)
  • 原文地址:https://www.cnblogs.com/CHYI1/p/5573957.html
Copyright © 2020-2023  润新知