【参考】+【原创】uboot 烧写 yaffs的补丁+补充

Uboot2015.04支持nand write.yaffs.doc ) uboot2015.04支持yaffs,支持yaffs2,支持nand write。yaffs命令 立即下载

我用的uboot1.1.6,烧写yaffs的镜像和yaffs制作的工具紧密相关 .如果采用nand write.yaffs xxx xx xx,则需要修改mkyaffsimage,

如果不修改mkyaffsimage,这使用nand write.yaffs1 xxx xx xx

修改mkyaffsimage我会在下一篇文章介绍.

1、cmd_nand.c

/*添加yaffs支持? */
        else if (!read && s != NULL && (!strcmp(s, ".yaffs") || !strcmp(s, ".yaffs1") ))
        {
            nand_write_options_t opts;
            memset(&opts, 0, sizeof(opts));
            opts.buffer    = (u_char*) addr;
            opts.length    = size;
            opts.offset    = off;
            opts.pad    = 0;
            opts.blockalign = 1;
            opts.quiet = quiet;
            opts.writeoob    = 1;
            opts.autoplace    = 1;
            opts.forceyaffs = 0;
            if (s[6] == '1') //判断yaffs最后的字符是否是 '1'
            {
                opts.forceyaffs = 1;    //1=实现translate_spare2oob功能,如果mkyaffsimage改后这个就不用了
                printf("force to layout yaffs's oob/n");
            }
            ret = nand_write_opts(nand, &opts);
        } /*yaffs支持结束*/

 

2、nand_util.c

if (opts->writeoob)

{
            /* read OOB data from input memory block, exit
             * on failure 这个oob是放在sdram的!!!*/
            memcpy(oob_buf, buffer, meminfo->oobsize);
            buffer += meminfo->oobsize;
/*添加yaffs支持 */

            if (opts->forceyaffs){
//#ifdef CFG_NAND_YAFFS1_NEW_OOB_LAYOUT
                /* translate OOB for yaffs1 on Linux 2.6.18+ 这一段可以跟内核的yaffs_mtdif.c对上*/
//这段代码就是在调整oob,实际上就是translate_spare2oob功能
                 oob_buf[15] = oob_buf[12];
                 oob_buf[14] = oob_buf[11];
                 oob_buf[13] = (oob_buf[7] & 0x3f)
                    | (oob_buf[5] == 'Y' ? 0 : 0x80)
                    | (oob_buf[4] == 0 ? 0 : 0x40);
                 oob_buf[12] = oob_buf[6];
                 oob_buf[11] = oob_buf[3];
                 oob_buf[10] = oob_buf[2];
                 oob_buf[9] = oob_buf[1];
                 oob_buf[8] = oob_buf[0];
                 memset(oob_buf, 0xff, 8);
//#else
                /* set the ECC bytes to 0xff so MTD will
                 calculate it ,我们只用上面的,现在本来就全部是0xff
                int i;
                for (i = 0; i < meminfo->oobinfo.eccbytes; i++)
                     oob_buf[meminfo->oobinfo.eccpos[i]] = 0xff; */
//#endif
            }
/*添加支持结束*/
            /* write OOB data first, as ecc will be placed
             * in there*/
            result = meminfo->write_oob(meminfo,
                            mtdoffset,
                            meminfo->oobsize,
                            &written,
                            (unsigned char *)
                            &oob_buf);

 

3、注意uboot再写buf后会调用nand_verify_page校验,把那个oob校验去掉,不然会与uboot产生的oob比较,这会报错的.

从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮 在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。 阅读详情

相关推荐

ST-Link使用教程

关于使用ST-Link烧录.hex文件教程。以及报错解决!适合刷ARM,使用STM32的教程!

qq_42977675的博客 1万+

uboot中yaffs2命令使用

uboot中yaffs2文件系统的支持 yaffs2文件系统,是针对nand的的文件系统,在uboot原生代码库中就有支持,yaffs2文件系统源码相对独立,方便移植。 uboot对yaffs2的支持可以通过以下宏来控制 #define CONFIG_YAFFS2 uboot中使用yaffs2的相关命令如下 ydevconfig- configure yaffs mount poin...

boysic的博客 3250

在MDK5.37版本中添加Complier Version 5( 解决Missing Compiler Version 5 )

本文章仅作为个人学习记录,方法也是从其他博主的博客中得到的,链接如下:二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决 - YI颗白菜 - 博客园 (cnblogs.com) 问题描述 更新最新的keil版本(MDK5.37)后,在编译以前版本的工程文件时,发现出现了非常多的报错,在网上搜索之后发现原来时编译器版本不匹配的问题,即MDK5.37中使用的是Version 6版本的编译器,而缺少Version 5,对于以前编写的工

leveling99的博客 1万+

在U-Boot中实现对Yaffs镜像的支持

0 引 言     U-Boot是目前广泛使用的嵌入式操作系统通用引导程序,具有功能丰富强大,支持多种操作系统和 CPU体系,易于功能扩展和移植,源码开放等多种优点。U-Boot能够同时支持启动加载模式和下载模式。在下载模式下,可以通过U-Boot自带的 nand read/write等命令,配合.Jffs 2等参数,实现cramfs,Jffs 2等文件系统镜像的读写,方便开发过程的调试。Yaf

1642

AI驱动的研发流程:定义高度专业和系统化的规划基准

在人工智能(AI)浪潮席卷全球的今天,软件研发的范式正经历着一场深刻而迅速的变革。AI技术的渗透,从最初的辅助工具角色,正逐步演变为驱动整个研发流程的核心引擎。传统的研发流程和项目管理方法论,在面对AI带来的高效率、高智能以及高复杂性挑战时,显得力不从心。企业对快速交付高质量软件产品、有效控制风险、并保证全流程可追溯性的需求日益迫切。

形上得其象,形下合于数;阴阳自济,玄理自明。 2181

高效穿搭博主内容制作指南:DeepSeek+豆包+即梦AI+剪映黄金工作流

大家好,我是硅基打工人! 只需3步实现AI自动化生成穿搭带货图文,日均产出效率提升10倍

TuFuir的博客 2676

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,

5546

AI提示词设计中的批判性思维训练方法

在人工智能应用中,提示词(prompt)设计是影响生成内容质量的关键因素。通过引入批判性思维框架,可以有效提升AI输出的逻辑性和多样性。该方法基于目的澄清、证据评估、假设检验和多视角分析四大支柱,构建结构化的问题拆解和证据链。在学术论文辅助写作、商业决策模拟等场景中,这种训练方式能显著提高内容质量,特别适合学生、职场人士和内容生产者。结合思维可视化工具和本地知识库,可以实现从基础应用到专家级分析的进阶。

weixin_33624741的博客 229

移植uboot-支持yaffs烧写,打补丁

1. 修改uboot支持yaffs 首先,每个命令都会对应一个文件,比如nand命令对应的common/cmd_nand.c 而我们使用nand命令时,便会进入do_nand()函数,位于common/cmd_nand.c 1.1do_nand()函数代码如下所示: int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) { ... ... if (strncmp(cmd, "read", 4) ==

一口Linux的专栏 562

【OWL部署】Manus又一开源平替OWL真的很好用吗?手把手带你部署并运行你的AI助手OWL(对接Qwen、硅基流动接口)

本文介绍了通用人工智能OWL的部署及国内接口对接,全篇干货满满,手把手教学。

MosuoLc的博客 4041

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 583

实现u-boot对yaffs/yaffs2文件系统下载的支持

以下红色部分就是需要修改的地方,老版本的U-boot需要添加下面的代码才能够增加对yaffs2的支持,新版本的只需添加一个宏就可以增加对yaffs2的支持。 yaffs2文件系统的移植主要涉及到u-boot对yaffs2文件系统的烧写支持、linux内核对yaffs2文件系统的支持,以及yaffs2文件系统的制作,现在我们按照从下到上的顺序来实现各部...

weixin_34018202的博客 313

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

十、移植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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

6.移植uboot-支持yaffs烧写,打补丁

在上一章,裁剪uboot以及分区后,本章主要使uboot支持yaffs以及制作补丁 1. 修改uboot支持yaffs 首先,每个命令都会对应一个文件,比如nand命令对应的common/cmd_nand.c 而我们使用nand命令时,便会进入do_nand()函数,位于common/cmd_nand.c 1.1do_nand()函数代码如下所示: int do_nand(cmd_tbl_t...

抵抗时间扭曲,坚持做一件有意义的事 282

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

看韦东山视频移植u-boot到mini2440支持烧写yaffs

先前做过一次,看韦老师的视频一步一步做的,但是最后烧写进去yaffs后,视频显示的是可以挂接文件系统进入开发板终端,我用mini2440的不行。最后再网上找到方法。 此版对于yaffs的一个小bug drivers/mtd/nand/nand_util.c (nand_write_skip_bad)中 改为 (1) ops.len = pagesize; op

luyao3038的博客 853

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的博客 179

JZ2440移植UBOOT 2012.04.1

前言 在前面,了解了Bootloader的作用以及从0写一个Bootloader之后,最近花了差不多一个星期学习韦东山老师的JZ2440移植UBOOT 2012.04.1,看了视频和参考博客园NQian的博客进行学习。我制作的最新补丁:https://github.com/sanjaywu/UBOOT_2012.04.1_JZ2440_patch。 一、JZ2440移植UBOOT 2012....

Sanjay_Wu的博客 655

S3C2440移植linux3.4.2内核之支持YAFFS文件系统

1.首先获取yaffs2源码(参考git命令使用详解) cd /work/nfs_root git clone git@github.com:lifeyx/yaffs2.git //若下载出现error:403,可以试试vi /etc/resolv.conf,将nameserver地址改为: 114.114.114.114 2.将yaffs2源码来配置到内核里(使内核支持yaffs2) vi ...

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

【原】修改mkyaffsimage和uboot的关系

在内核2.6.18以上版本中,yaffs采用了不同的writechunk方式.具体参考http://www.armchina.cn/article.asp?id=63 我在前一篇文章中说了uboot烧写yaffs的补丁.实际上补丁和修改mkyaffsimage是一回事.上述参考文章给出了mkyaffsimage的修改方式.所以,如果mkyaffsimage不修改的话,直接用uboo

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

am335x linux内核烧写_S3C2440移植linux3.4.2内核之支持YAFFS文件系统

上一节S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统我们构建了根文件系统,这节我们修改内核支持yaffs2文件系统 @[TOC] 移植Linux3.4.2内核其他文章链接: S3C2440移植linux3.4.2内核之内核框架介绍及简单修改 S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统 S3C2440移植linux3.4.2内核之支持YAFFS文件...

weixin_35592186的博客 149

s3c2440 移值u-boot-2016.03 第6篇 支持mtd yaffs 烧写

1, 解决启动时的错误 Warning - bad CRC, using default environment 搜索发现 在 /tools/env/fw_env.c 中 /* 放在NAND FLASH 中 大小 128K 开始地址 */ #define CONFIG_ENV_IS_IN_NAND #define CONFIG_SYS_ENV_SECT_SIZE ...

weixin_30672019的博客 324

移植3.4.2内核之韦东山笔记

【参考】韦东山 教学笔记 一. 内核启动流程,据此配置内核(机器ID)1.1 修改Makefile1.2 选择默认配置 : make s3c2410_defconfig1.3 make uImage 步骤1:在UBOOT里:  set machid 16a // smdk2440 mach-smdk2440.c或  set machid 7CF // mini244...

250

在挂载yaffs2 文件系统出现的问题和解决办法。

还是想来吐槽先: 之前我一直的2.6.36.2 的内核已经可以成功启动OK6410 挂载 NFS 文件系统进入Linux 终端了,这几天因为测试USB 摄像头需要, 所以要进入 yaffs2,这样才不会占用 DM9000 的网卡,才能测试 网络摄像头。本来以为需要进入 yaffs2 文件系统可能会挺简单的,谁知道一大堆问 题,好了,开始进入正题: 我的操作环境是: 主机:xp, VMware

ACanoe的专栏 4483
上一篇: 【转】搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上
下一篇: 【原】修改mkyaffsimage和uboot的关系
#Page#
博客等级 码龄23年 1691粉丝 360原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值