热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

yaffs和jffs2简单比较

转:http:blog.chinaunix.netuid-27675161-id-3392636.html相关知识引用《嵌入式Linux应用开发完全手册》NandFl

转:http://blog.chinaunix.net/uid-27675161-id-3392636.html

 

相关知识引用《嵌入式 Linux 应用开发 完全手册》
    Nand Flash 每一页大小为(512+16)字节,当然还有其它格式的,比如对于大页的 Nand Flash 是(2048+64),其中 512 字节就是一般的数据存储区,16 字节称为 OOB(Out Of Band)区。通常在 OOB 区存放坏块标记和前面512 字节的 ECC 校验码等。
    jffs2 文件系统映像文件中没有 OOB 区的内容,如果将它烧写到 Nor Flash 中,则是简单的“平铺”关系;如果将它烧到 Nand Flash 中,则 Nand Flash 的驱动程序首先根据 OOB 的标记略过坏块,然后将一页数据(512字节)写入后,还会计算这 512 自己的 ECC 校验码,最后将它写入 OOB 区,如此循环。jffs2 文件系统映像文件的大小通常是 512 字节(页)的整数倍。
    yaffs 文件系统映像文件中本身就包含了 OOB 区的数据,所以烧写时不需要再计算 ECC 值,首先检查是否坏块(是则跳过),然后写入 512 字节的数据,最后写入 16 字节的 OOB 数据,如此循环。yaffs 文件系统映像文件的大小是 (512+16)字节的整数倍。注意:烧写 yaffs 文件系统映像文件时要跳过第一个可用块,这是 yaffs 文件系统的特性决定的。
    u-boot-2010.06 中烧写 jffs2 文件系统映像时并没有根据一页的数据计算出 ECC 校验码,而是往 OOB 区中直接写入 FF ,因此有些版本的 Linux 内核(例如:linux-2.6.29、linux-2.6.30.4),挂载 jffs2 文件系统时就会出现问题,然而有些高版本的内核(例如:linux-2.6.32、linux-3.4.2)却可以成功挂载上,不知道这是 u-boot 的问题还是内核的问题。

 

=================================================================

NAND Flash每一页大小为(512+16)字节(还有其他格式的NANDFlash,比如每页大小为(256+8)、(2048+64)等),其中的512字节就是一般存储数据的区域,16字节称为OOB(Out OfBand)区。通常在OOB区存放坏块标记、前面512字节的ECC较验码等。 
cramfs、jffs2文件系统映像文件中并没有OOB区的内容,如果将它们烧入NORFlash中,则是简单的“平铺”关系;如果将它们烧入NAND Flash中,则NANDFlash的驱动程序首先根据OOB的标记略过坏块,然后将一页数据(512字节)写入后,还会计算这512字节的ECC较验码,最后将它写入OOB区,如此循环。cramfs、jffs2文件系统映像文件的大小通常是512的整数倍。 
而yaffs文件系统映像文件的格式则跟它们不同,文件本身就包含了OOB区的数据(里面有坏块标记、ECC较验码、其他yaffs相关的信息)。所以烧写时,不需要再计算ECC值,首先检查是否坏块(是则跳过),然后写入512字节的数据,最后写入16字节的OOB数据,如此循环。yaffs文件系统映像文件的大小是(512+16)的整数倍。 
注意:烧写yaffs文件系统映像时,分区上第一个可用的(不是坏块)块也要跳过。



推荐阅读
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 解决SVN图标显示异常问题的综合指南
    本文详细探讨了SVN图标无法正常显示的问题,并提供了多种有效的解决方案,涵盖不同环境下的具体操作步骤。通过本文,您将了解如何排查和修复这些常见的SVN图标显示故障。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
author-avatar
chenkaij_305
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有