使UBOOT支持烧录yaffs文件系统

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

之前一直使用临时的linux下载并烧录yaffs文件系统,最近闲来无事研究一下uboot直接烧录yaffs的功能。当然参考了网上很多人的经验,自己只是对应实践一下,并附上自己的一些理解。


下载Yaffs:

http://www.yaffs.net/using-git  点击use this URL:http://aleph1.co.uk/gitweb?p=yaffs2.git;a=snapshot;h=HEAD;
还可以使用linux命令git clone git://www.aleph1.co.uk/yaffs2 获取


首先必须清楚工作原理。
mkyaffsimage工具的ecc
uboot的ecc
linux的ecc
如果想让uboot烧录的yaffs文件系统可以被linux识别,那么ecc/oob一定要正确,这就要求我们必须要使mkyaffsimage的ecc算法以及oob布局与linux的完全一致,uboot的ecc和oob跟我们这个yaffs可以说完全无关,它的算法也跟另外二者差异很大,默认情况下,uboot会自动计算ecc然后填写oob区域,但是yaffs跟其他的image是有很大差别,它的image文件本身就包含了oob区域,所以说它会是512+16字节对齐的,所以uboot在烧写yaffs的时候,不需要计算ecc,而是直接将每页数据后面的16字节oob数据直接写进nand的oob区域即可。


1.修改uboot
uboot本身是不支持yaffs的烧录的,所以我们需要自己来追加命令实现之,需要修改一下几个文件:
common/cmd_nand.c
U_BOOT_CMD()宏中
"nand read[.yaffs]     - addr off|partition size\n"
"nand write[.yaffs]    - addr off|partition size - read/write `size' bytes starting\n"

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

相关推荐

linux支持yaffs2文件系统yaffs2文件系统制作

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

weixin_40384703的博客 717

U-Boot NAND FLASH移植(附:源码和测试代码)

U-Boot NAND FLASH移植 ——西伯利亚的风       为了使u-boot支持NAND FLASH,实现u-boot读写NAND FLASH,我们需要根据开发板的具体情况修改u-boot,增加NAND FLASH驱动。 一、移植环境 1.u-boot版本1.1.6 2.开发板Jz2440(ARM9 S3C2440

cxsys的专栏 3163

imx6ull各种烧录更新uboot,内核,内核模块,文件系统的方法

nfs服务器搭建 sudo apt-get install rcpbind vsftpd nfs-kernel-server Ssh 登录imx6ull开发板的账号 Ssh root@192.168.1.19密码:无密码 不支持256g TF卡 保存嵌入式设备数据操作 sync Unmount /run/media/sda1 主机拷贝到运行环境 scp hel...

分享嵌入式,移动端,智能应用,数据库等专业板块,记录知识碎片!!! 3666

u-boot移植--5、支持烧写yaffs文件系统映像

常常说自己是老年人记忆,因为看过的东西很快就忘。秉承着看自己写的东西肯定要比看别人写东西要好理解的原则。写下这个系列的u-boot移植,同时也加深自己的理解。其实到现在网上大神很多,给出了很多的解决方案。我也以他们为参考。与之不同我会加上一些我自己对某些地方的理解来进行处理。希望对大家有帮助。 开发板:天嵌TQ2440 u-boot:u-boot-1.1.6 手里的开发板是天嵌的TQ2440

mmcly的专栏 624

uboot添加write.yaffs功能

本文针对uboot较新版本uboot-2009进行,nand flash page(512+16),方法:跟踪nand write命令即可,需要修改一定是沿途被调用过的命令uboot本身并没有支持yaffs文件系统烧写,在此我们自己添加:1.命令部分common/cmd_nand.cU_BOOT_CMD(nand, CONFIG_SYS_MAXARGS, 1, do_nand,

5545

创建yaffs文件制作工具

移植yaffs文件系统,开发板是mini2440。NAND flash是64M的,由于yaffs2/utils中的mkyaffsimage程序只能生成老式的yaffs1映象文件,需要修改才能支持新格式。yaffs1新、老格式的不同在于oob区的使用发生了变化:一是ECC检验码的位置发生了变化,二是可用空间即标记(tag)的数据结构定义发生了变化。      移植uboot版本为uboot-20

river0351的专栏 905

yaffs and ecc

1. yaffs文件系统yaffs自身的ECC与MTD的ECC之间联系分析:   从yaffs_mtdif.c文件中的这个函数,可以很容易看出它们的联系:int nandmtd_ReadChunkFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaffs_Spare *spare){ struct mtd_info *mtd

linux嵌入式驱动软件开发 2940

6410 UBOOT 支持SD/SDHC卡启动 FAT32文件系统 yaffs2烧录 图片显示烧录状态

6410 UBOOT 支持SD/SDHC卡启动 FAT32文件系统  yaffs2烧录 图片显示烧录状态 开发板: 飞凌6410 256M DDR 2G nand (4K pagesize) 需要csdn帐号和资源分才可以下载,其它朋友有需要可以QQ 67016879 或 lxj_com@163.com 移植好的uboot下载地址:http://downloa

longtian635241的专栏 2056

6410 UBOOT 支持SD/SDHC卡启动 FAT32文件系统 yaffs2烧录 图片显示烧录状态

6410 UBOOT 支持SD/SDHC卡启动 FAT32文件系统  yaffs2烧录 图片显示烧录状态 开发板: 飞凌6410 256M DDR 2G nand (4K pagesize) 需要csdn帐号和资源分才可以下载,其它朋友有需要可以QQ

RICH的专栏 1万+

构造根文件系统四之制作使用 yaffs文件系统映像文件

所谓的制作文件系统映像文件,就是将一个目录下的所有内容按照一定的格式存放到一个文件中,这个文件可以直接烧写到存储设备上去。当系统启动后挂接这个设备,就可以看到原来目录一样的内容。制作不同类型的文件系统映像文件需要使用不同的工具。 1、修改制作 yaffs映像文件的工具    首先声明,我也是初次学习制作根文件系统,完全是比着葫芦画剽,照着韦老师的教程写的,至于为什么要修改,是为了适应他之前编译

王文松的博客 2302

jz2440-uboot-201204版本移植【学习笔记】【原创】

平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 PC环境:ubuntu18.04 一、uboot的编译和烧录 下载uboot-2012-04版本的uboot进行移植,下载链接:ftp://ftp.denx.de/pub/u-boot/ 编译: 1 make smdk24...

weixin_30387663的博客 208

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的专栏 2161

linux3.01 yaffs2补丁,S3C2440移植linux3.4.2内核之支持YAFFS文件系统

上一节S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统我们构建了根文件系统,这节我们修改内核支持yaffs2文件系统@[TOC]移植Linux3.4.2内核其他文章链接:获取yaffs2源码并给内核打补丁首先获取yaffs2源码(参考git命令使用详解)cd /work/nfs_rootgit clone git@github.com:lifeyx/yaffs2.git//若...

weixin_29029169的博客 175

一文搞懂嵌入式uboot、kernel、文件系统的关系

Linux的软件架构 在linux系统软件架构可以分为4个层次(从低到高分别为): 1.引导加载程序 引导加载程序(Bootloader)是固化在硬件Flash中的一段引导代码,用于完成硬件的一些基本配置,引导内核启动。 同时,Bootloader会在自身与内核分区之间存放一些可设置的参数(Boot parameters),比如IP地址,串口...

weixin_30364147的博客 5626

移植u-boot到基于s3c2440开发板,支持YAFFS2文件系统

在本文中,我们将详细介绍如何将u-boot移植到基于s3c2440开发板,并添加对YAFFS2文件系统支持。可以根据开发板的文档或硬件手册找到相应的配置信息,并在u-boot的配置文件中进行相应的修改。通过上述步骤,我们可以在基于s3c2440开发开发板的移植过程中成功添加对YAFFS2文件系统支持。编译完成后,将生成的u-boot镜像烧录到s3c2440开发板的闪存中。将上述代码添加到u-boot的源代码中的相应位置,然后重新编译u-boot。如有任何进一步的问题,请随时提问。

git_web425的博客 147

【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统

上一篇文章,我们从0制作jffs2文件系统,因为我们的内核本身就支持iffs2文件系统,但是它不支持yaffs文件系统。今天我们就来修改内核代码,让内核支持yaffs文件系统的格式。 1.首先我们获取yaffs源码 我是通过git获得,当然源码获得的途径很多,需要源码的可以加我最底下的联系方式。 在Linux系统中,输入: git clone git://www.aleph1.co.u

厚积薄发 1397
donny_2012
博客等级 码龄15年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值