YAFFS2文件制作以及烧写工具的特殊处理

linux下支持yaffs2文件系统与yaffs2文件系统制作 搞了2周终于解决这个问题了,网上的资料比较散乱,在这里总结下: 1.如果可以使用inband_tag方式的话,可以不用进行操作2,直接nand write就可,具体参照下面网站操作: https://blog.youkuaiyun.com/boysic/article/details/82178386 2.在uboot上增加烧录yaffs2文件系统的命令:nand write.yaffs2,如下网址,亲测有效,我的uboot版本是2010.06 http://www.linuxidc.com/Linux/20. 阅读详情

        如果各位看官对yaffs文件系统不熟悉,看一下鄙人的拙作《Yaffs文件系统简介 》也未尝不是一件好事儿,毕竟开卷有益。

       这篇文章主要简单的描述yaffs2文件的制作,以及在烧写的过程中数据的处理。以便区分yaffs2文件和其它不同的文件系统。

        上一篇文章《SLC NAND FLASH的物理结构》中讲述过SLC NAND FLASH的硬件的特殊性,是包括data area+spare area两部分,因为yaffs是nand special file system。因此必然会好好利用nand的spare area存储一些数据。当然也有可能使用者就觉得没必要使用spare区存储数据或者一些其他原因没有使用这部分物理存储区存储数据,那么是不是yaffs文件系统就没有办法了呢,当然设计者应该想到这些地方。因为在yaffs2文件系统中就设置了一个选项让使用者选择是in-bind还是out-bind。

         我们假定使用者使用spare区存储了数据,这里在nand的驱动中成为FTL数据。这就是一个硬件和软件称呼上有差别的地方,并不应该影响我们的理解。硬件上称为data area+spare area,软件上成为data area+oob spare(FTL spare)

         既然如上述情况,那么我们在使用的时候需要将spare area写入我们需要的数据,而这部分数据的长度大小如何界定呢?

        拿page为2K的nand来讲,一般使用2048B+64B的空间设定,2048B的data area会分为4个subpage,而通常nand都会使用ECC进行数据的校验和纠正。根据不同的ECC使用的ECC校验码的位数也有不同。拿ECC4来讲,占用了7B的数据位。这样的ECC能够校验512B的页大小,算下来四个subpage需要4*7B0=28B的ECC校验码。那么还剩余的空间为64B-28B=36B的数据,因此我们可以设定yaffs2文件系统使用28B-36B的数据长度来存储文件系统所需要的数据。

        因为文件系统是给kernel使用的,因此在kernel中的设置一定是要和烧写工具中的设置以及yaffs2文件的长度一致。此处切记!!!否则会因为数据长度的不对导致一些错误。在通过USB数据线进行文件的烧写工作时,为了确保数据的正确性,会将数据进行CRC校验。通过传输端和读取端数据的CRC值的比较确认数据传输过程中是否有误。此处要注意CRC是传输过程中的数据校验方式,而ECC是NAND芯片为了保证读取数据时的正确性而使用的。而在实际的存储过程中,会把这两部分的数据全部存储在spare area。

yaffs2 inband_tag 文件系统制作与烧录 硬件平台 君正 x1000 halley2 uboot中对yaffs2文件系统的支持 一般yaffs2文件系统会使用nand的oob区域存放tag信息,nand的数据区域存放实际的数据,由于不同的nand oob区域所存放的数据不一样,对于128Bytes oob的nand, 一般第一个byte用来标记坏块,第64Byte之后存放硬件ecc,那么在制作yaffs文件系统的时候,就需要避开... 阅读详情

相关推荐

一次有趣(痛苦)的yaffs2文件系统的制作,烧写过程

大体经历,刚开始制作简单的文件系统,制成yaffs2镜像文件,进行烧写,由于配置文件的问题,无法运行。 接着,就选择了linux内核中rootfs.cpio包来制作文件镜像。 (一)、简易的根文件系统的制作 工具:Busybox1.19.2 step1.Busybox的配置和编译见网络。 step2.建立...

mrdings的博客 2820

uboot烧写yaffs2过程中,如何写入oob数据的 (转)

 现在正在看uboot烧写yaffs2的代码,有点疑问输入命令后执行do_nand,然后执行到nand_write_optsint nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts){。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

timequark的专栏 5118

使SAMBA支持YAFFS镜像烧写

<br />一,需下载工具<br />GNU编译工具链<br />下载地址:<br />http://www.codesourcery.com/sgpp/lite/arm/portal/package6496/public/arm-none-eabi/arm-2010q1-188-arm-none-eabi.exe<br />http://www.codesourcery.com/sgpp/lite/arm/portal/package4466/public/arm-none-eabi/arm-2009q1

抵岸科技的专栏 4105

使用nandwrite烧写yaffs2文件系统

说一下我的开发环境 CPU: AT91SAM9G45

三多 4913

如何将YAFFS文件系统镜像烧入Nand Flash

和普通文件系统不同,YAFFS文件系统专门为Nand Flash设计,可以使用mkyaffsimage生成文件系统的镜像,但如果要将此镜像烧入Flash,那么有些地方需要注意。 硬件上,Nand Flash的设计已考虑到包含坏块的情况,对于每扇区512字节的Nand Flash,每扇区都有一个16字节额外的扩展区,通常用以存储此扇区的校验数据以及坏块标记等信息(WinCE则使用了其中4字节

noodies的专栏 5252

windows下可用的yaffs2打包工具

windows下可用的yaffs2打包工具,并非yaffs2 image浏览器,本工具是通过命令行调用的,方便实现自动化,找了好久才找到的,值得收藏与拥有。

S3C2440移植uboot之支持烧写yaffs映像及制作补丁

上一节裁剪了uboot,修改了默认的参数,这一节开始制作yaffs映像以及补丁文件 文章目录烧写文件系统分析源码烧写yaffs试验使用part制作补丁 烧写文件系统   尝试使用如下命令烧写JFFS2文件系统 tftp 30000000 fs_mini_mdev.jffs2 nand erase.part rootfs nand write.jffs2 30000000 0x00260000 5b...

嵌入式与Linux那些事的博客 2439

yaffs2img解包工具xx版(extyaffs)

镜像文件解包工具,支持各类Android手机的镜像文件解包,Windows系统用。

u-boot烧写yaffs2文件系统

u-boot烧写yaffs2文件系统<br />     以前移植的U-boot一直都支持Yaffs2文件系统的烧写,但是我一直都没有时间测试,其中的Bug也是网友发现后修正的。虽然现在又有新的UBI文件系统,但是UBI是在Linux2.6.28以后才被支持的,所以yaffs2还是需要的。前几天因为项目需要,我又试了一次Yaffs2的烧写引导,在这里记录下来,以备后用。<br /><br />一、下载Yaffs2映像制作工具。<br />    mkyaffs2image就在yaffs2的源码包里:Yaf

qt_girl的专栏 2162

yaffs2image制作工具

本工具用于linux根文件系统镜像文件的制作,压缩包里有使用说明。 下面是工具说明: mkcramfs 制作cramfs镜像的工具 mkimage 制作jffs2镜像的工具 mkyaffs2image 制作2.6的yaffs2的镜像工具(针对Nand Flash是128MB到1GB的) mkyaffsimage 制作2.6.13的yaffs2的镜像工具 mkyaffsimage_2 制作2.6.25.8或2.6.30.4或更高版本内核的yaffs2的镜像工具(针对Nand Flash是64MB的) mkubifsimage 制作UBIFS文件系统镜像的工具(针对256MB到1GB的SLC的Nand Flash) mkyaffs2image_for_TQ3358 制作专门针对TQ3358的Linux和Android使用的yaffs镜像 mkubifsimage 用法 mkubifsimage -r 文件系统目录 -o 镜像名

yaffs2文件系统.pdf

yaffs2 linux bsp YAFFS意义为‘yet another flash file system’,是一个开源的文件系统。是专门为NAND闪存设计的,它的出现使得价格低廉的NAND闪存芯片具有了高效性和健壮性。  YAFFS文件系统性能优越且易于移植,已经成功应用于linux、uClinux和Windows CE等嵌入式操作系统上。 YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。

移植u-boot-2016.11到JZ2440(七:修改源码之烧写JFFS2、烧写YAFFS与制作补丁)

目录 7. 修改源码之烧写JFFS2、烧写YAFFS与制作补丁     7.1 烧写JFFS2    7.2 烧写YAFFS        7.2.1 分析nand write.yaffs        7.2.2 修改代码            7.2.2.1 添加nand操作帮助信息            7.2.2.2 添加支持nand write.yaffs操作代码          ...

墨、白的博客 1964

在ArcGIS Pro软件中进行滑坡的敏感性和易发性分析

滑坡的敏感性和易发性分析需要综合地形、水文、地质及环境等多维数据,本文罗列了基于ArcGIS Pro软件进行的一系列可执行分析。

weixin_49609713的博客 1731

移植u-boot-2012.04.01到JZ2440(七:修改源码之烧写JFFS2、烧写YAFFS与制作补丁)

目录         7. 修改源码之烧写JFFS2、烧写YAFFS与制作补丁             7.1 烧写JFFS2            7.2 烧写YAFFS                7.2.1 分析nand write.yaffs                7.2.2 修改代码                7.2.3 测试            7.3 制作补丁 ...

墨、白的博客 842

Android 10 根文件系统和编译系统(十):Android.mk编译动态库

配套系列教学视频链接: Android 10.0 AOSP源码编译: 2-AOSP源码开发环境搭建 Android 10.0 根文件系统和编译系统: 3-Android根文件系统和编译系统 说明 系统:AOSP Android10.0 设备:Android模拟器 前言 本文章重点讲解Android.mk如何控制编译源码编译成动态库 ...

ldswfun的专栏 932

3D美术14——max——fbx导入max后直接生成bip人形骨骼插件

最近经常会从unity里反八FBX到max里进行2次修改。 但是非常尴尬的事情就是,就是用max做的fbx,你在反导入回来,BIP骨骼都会变成预制体。这个时候有一个方法补救。那就是在导入的时候调整一下参数。(如下图) 把这里调整成设置为骨骼。就还可以了。 但是,如果你不是用max做的FBX。呵呵,那么你一定很头大,因为完全没有用。 所以,这个时候就要上插件了。 Autofbxtobip v.1.1 这个插件适用于2015及其以上版本。 在这之前我还用过一款叫BIPPY,但是效果相当感人,照着这个图片调整

qq_37576129的博客 1万+

十、移植u-boot-2016.03到Jz2440之修改源码烧写JFFS2、烧写YAFFS与制作补丁

9. u-boot-2016.03移植之修改源码烧写JFFS2、烧写YAFFS与制作补丁     前面我们通过修改uboot的代码让它支持串口、nand flash,nor flash,网络下载文件等功能,现在我们来实现最后一个功能,实现Uboot烧写YAFFS文件系统,同时制作uboot补丁方便以后的移植,避免重复造轮子。 9.1 烧写JFFS2文件系统 该uboot已经支持JFFS2文件系统的...

Louis@L.M.的博客 741

新手必看:四旋翼无人机PID调参实战指南(附常见问题排查)

本文为四旋翼无人机新手提供PID调参实战指南,详细解析Kp、Ki、Kd参数的实际意义及调参技巧,包含常见问题排查方法。通过系统化的调参流程和实用参考表,帮助用户快速掌握无人机飞行控制核心技能,避免常见错误,提升飞行稳定性与响应性能。

k0l1m2n3o的博客 599

【转】U-BOOT支持烧写yaffs2文件系统

U-BOOT 支持yaffs2文件系统的烧写。 其实移植这步烧写很简单,只是将打包的文件系统一次写入NAND即可,以页为单位,一次写入2K+64B。 包含main和spare区,其中spare的ECC数据等在yaffs2文件系统制作时就已经写好了。是通过软件ECC 每256B产生3B的规则进行的。所以必须保证mkyaffs2image工具能正确制作YAFFS2文件系统。否则系统是 启动不了

kkkxcy的专栏 1083

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 8002

【2025CSPJ普及组】T4. 多边形

【2025CSPJ普及组】T4. 多边形【题目描述】小 R 喜欢玩小木棍。小 R 有 n 根小木棍,第i(1≤i≤n) 根小木棍的长度为 ai。

lybc2019的博客 849

制作yaffs2文件系统并移植到ok6410开发板上

首先用busybox制作根文件系统,参考我之前的博客:http://blog.youkuaiyun.com/start530/article/details/8018170     yaffs2源码下载:http://download.youkuaiyun.com/detail/chenxh/4186203   1.解压: tar -jxvf yaffs_source_util_larger_small_pag

天涯海阁 3738

华为面试手撕真题【判断是ipv4还是ipv6地址】

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。

MISAYAONE的博客 1万+

uboot研读笔记 | 10 - 移植uboot 2012.04到JZ2440(烧写Linux内核、烧写yaffs2文件系统)

1. 烧写Linux内核 在上一篇文章中设置了默认内核启动参数和命令,如图: 启动时内核先会进行倒数计时,如果没有操作,就会执行图中的命令,从nand flash中的kernel 分区处读取内核到内存中的0x30000000处,也就是SDRAM起始地址,然后从0x30000000处启动内核。 所以,我们只需要将JZ2440官方提供的内核文件复制到TFTP服务器目录,然后将该内核文件提前烧写到na...

Mculover666的博客(嵌入式) 1846

前言:为什么要学习爬虫和逆向,该如何学习?

学习爬虫和逆向技术是当今数字化时代的重要技能,尤其在数据分析、安全研究、自动化工具开发等领域有广泛应用。以下是详细的学习理由、路径和方法:

数据知道的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【转】搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上

来源:http://www.armchina.cn/article.asp?id=64 经过分析(参见我上一篇日志),一切都变得很明晰了!终于搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上。新的yaffs2代码是通过nandmtd1_WriteChunkWithTagsToNAND写NAND的,写入nand的oob不再是调整的yaffs_spare结构,而是yaf

LYJ个人博客,记录技术、八卦、生活,分享各种心得,期待与朋友们一同进步 1976

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: SLC NAND FLASH的物理结构
下一篇: YAFFS2文件系统的垃圾回收机制
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值