rv1126-rv1109-yaffs2-mkyaffs2image610

news2025/7/19 10:57:28

今天使用了一下yaffs2功能

就是生成一个yaffs的包

从移植的角度先生成ro_1109.yaffs包

烧录进去

操作步骤:

创建和生成ro文件夹和 mkyaffs2image610可执行程序

然后用

fakeroot ./mkyaffs2image610 ro ro_1109.yaffs 1 2

生成了ro_1109.yaffs

例:

	@if [ "$(TARGET_DEPLOY_TYPE)" == "rodatafs" ] || [ "$(TARGET_DEPLOY_TYPE)" == "rwdatafs" ] || [ "$(TARGET_DEPLOY_TYPE)" == "rwfs" ];then \
		echo "Deploy $(TARGET_DEPLOY_TYPE) permissions to directory $($(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)$(RESOUCE))"; \
		$(FAKEROOT) /bin/bash $(DEPLOYER_SH) -s -P ${D_PRODUCT_TYPE} -d $(TARGET_DEPLOY_TYPE) -o $($(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)$(RESOUCE)) -- "$< $($(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)$(RESOUCE)) $(IMAGEDIR)/$(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)_202d.yaffs 1 2"; \
	else \
		echo "Create $(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@) yaffs image"; \
		$(FAKEROOT) $(MKYAFFS2IMAGE) $($(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)$(RESOUCE)) $(IMAGEDIR)/$(patsubst %_$(FLASH_TYPE)_yaffs_fsimage,%,$@)_202d.yaffs 1 2; \
	fi;

//上面是存在ro_1109.yaggs文件做覆盖
//下面是不存在创建

升级ro_1109.yaffs

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

移植yaffs2

index 15328e38c8c7..fdd60aeea19e 100644
--- a/arch/arm/configs/rv1126_defconfig
+++ b/arch/arm/configs/rv1126_defconfig
@@ -372,3 +403,18 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_FTRACE is not set
 # CONFIG_RUNTIME_TESTING_MENU is not set
 CONFIG_DEBUG_USER=y
+CONFIG_YAFFS_FS=y
+CONFIG_YAFFS_YAFFS1=y
+CONFIG_YAFFS_YAFFS2=y
+CONFIG_YAFFS_AUTO_YAFFS2=y
+CONFIG_YAFFS_XATTR=y

diff --git a/fs/Kconfig b/fs/Kconfig
index b8d003f02b76..1f02c1daf3e8 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -243,6 +243,7 @@ source "fs/hfsplus/Kconfig"
 source "fs/befs/Kconfig"
 source "fs/bfs/Kconfig"
 source "fs/efs/Kconfig"
+source "fs/yaffs2/Kconfig"
 source "fs/jffs2/Kconfig"
 # UBIFS File system configuration
 source "fs/ubifs/Kconfig"
diff --git a/fs/Makefile b/fs/Makefile
index 5030ac9050cb..20677918cc0f 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -132,3 +132,4 @@ obj-y                               += exofs/ # Multiple modules
 obj-$(CONFIG_CEPH_FS)          += ceph/
 obj-$(CONFIG_PSTORE)           += pstore/
 obj-$(CONFIG_EFIVAR_FS)                += efivarfs/
+obj-$(CONFIG_YAFFS_FS)                 += yaffs2/
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 035d641e8847..3dbddd57df39 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -40,9 +40,18 @@ struct mtd_info;
  * or was not specific to any particular block.
  */
 struct erase_info {
+       struct mtd_info *mtd;
        uint64_t addr;
        uint64_t len;
        uint64_t fail_addr;
+       u_long time;
+       u_long retries;
+       unsigned dev;
+       unsigned cell;
+       void (*callback) (struct erase_info *self);
+       u_long priv;
+       u_char state;
+       struct erase_info *next;
 };

 struct mtd_erase_region_info {
diff --git a/include/linux/time.h b/include/linux/time.h
index 5f3e49978837..0952fe996fd7 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -21,6 +21,7 @@ int put_itimerspec64(const struct itimerspec64 *it,
 extern time64_t mktime64(const unsigned int year, const unsigned int mon,
                        const unsigned int day, const unsigned int hour,
                        const unsigned int min, const unsigned int sec);
+#define CURRENT_TIME           (current_kernel_time64())

 /* Some architectures do not supply their own clocksource.
  * This is mainly the case in architectures that get their
diff --git a/include/linux/timer.h b/include/linux/timer.h
index 7b066fd38248..a6be784c1884 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -16,6 +16,7 @@ struct timer_list {
        struct hlist_node       entry;
        unsigned long           expires;
        void                    (*function)(struct timer_list *);
+       unsigned long           data;
        u32                     flags;

 #ifdef CONFIG_LOCKDEP
@@ -131,6 +132,8 @@ static inline void init_timer_on_stack_key(struct timer_list *timer,

 #define timer_setup_on_stack(timer, callback, flags)           \
        __init_timer_on_stack((timer), (callback), (flags))
+#define init_timer_on_stack(timer)                                     \
+       __init_timer_on_stack((timer), 0, 0)

 #ifdef CONFIG_DEBUG_OBJECTS_TIMERS
 extern void destroy_timer_on_stack(struct timer_list *timer);


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1103275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机航拍图像拼接与目标识别

一、简介 无人机用来做图像侦察是常见功能&#xff0c;现有技术基本是无人机对某片区域进行飞行&#xff0c;人工实时监控飞行图像&#xff0c;将图像录制成视频供事后回放。此方法对人员业务要求比较高、反应速度足够快、不利于信息收集、录制视频丢失空间信息、对于后期开展区…

Ubuntu20网络总是连接失败,查看ip只有ipv6,没有ipv4

对于连接失败。 将网络适配器改成桥接模式。 原先使用的 NAT模式导致连接失败。 对于只有ipv6没有ipv4 是因为没有勾选桥接模式的物理状态。 当然可能还有其他原因&#xff0c;其他的就只能百度了。 继续点击网络适配器。 勾选复制物理网络连接状态。

【分享】一个基于 Python 开发的12306 抢票项目,快来学习!

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 12306抢票软件 "黄金周" 十一黄金周如约而至&#xff0c;这意味着某些开源项目又将迎来一次繁荣的热潮。这次&#xff0c;上榜的是一个与 12306 抢票相关的脚本&#xff0c;它基于 Python 编写&#xff0c;具备自动…

超全整理,性能测试——数据库索引问题定位+分析(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、数据库服务器添…

堆排序代码模板

#include<iostream> using namespace std; const int N 1e5 9; int h[N], n, m, Size;//小根堆//u表示三个点中的根节点 void down(int u) {int t u;//设t为三个点中最小的那个点//如果左儿子存在并且小于根节点就将左儿子赋值给tif (u * 2 < Size && h[u …

SourceTree 这是一个无效的源路径/URL

原因&#xff1a;权限检测出现问题 解决&#xff1a; ssh-add /Users/haijunyan/.ssh/id_rsa ssh-add -K /Users/haijunyan/.ssh/id_rsa 稍后&#xff0c;重新测试&#xff1a; 备注&#xff1a; https://www.ngui.cc/el/1727107.html?actiononClick

哪些企业适合做私域?

什么是私域&#xff1f; 简单直白来说&#xff0c;就是不用花钱就可以触达客户的渠道。私域流量就是私人的流量&#xff08;不用花钱&#xff09;。 哪些企业适合做私域&#xff1f; 》复购率高 比如美妆护肤产品行业、餐饮等快消品行业。 可通过群发推广消息、朋友圈营销和在…

01案例 - 财政收入影响因素分析及预测模型

01案例 - 财政收入影响因素分析及预测模型 案例背景 在我国现行的分税制财政管理体制下&#xff0c;地方财政收人不仅是国家财政收入的重要组成部分&#xff0c;而且具有其相对独立的构成内容。如何有效的利用地方财政收入&#xff0c;合理的分配&#xff0c;来促进地方的发展…

React create-react-app 里配置代理(解决跨域)

配置代理&#xff1a; creact-react-app v5 当然不是v5 下面的方法也适用。 方式一&#xff1a;package.json里配置 其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。 修改时需要 npm start重新运行一下&#xff0c;要不然可能不生效。 proxy只能以 h…

vueday02——使用naive-ui做一个ACM看榜

效果展示&#xff1a; 组件导入 <n-data-table:data"data":columns"column":bordered"true":single-line"false"/> 行数据导入数据结构 {key: 1,index: 2,name: user Name2,passNum:0,// age: 42,college: JiShou University…

Java RSA密钥从RSAPrivateKey和RSAPublicKey对象中,分别提取模和指数

概述&#xff1a; 在Java编程中&#xff0c;我们经常用到如下一段代码来生成RSA公私钥&#xff0c;分别拿到公私钥然后加解密计算&#xff1a; KeyPairGenerator keyPairGen; keyPairGen KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(2048, new S…

竞赛选题 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

C-Net:用于乳腺超声图像分割的具有全局指导和细化残差的级联卷积神经网络

C-Net 期刊分析摘要贡献方法整体框架1. Bidirectional attention guidance network (BAGNet)2. Refinement residual network (RFNet) 实验1. 对比实验2. 消融实验 可借鉴参考 期刊分析 期刊名&#xff1a; Computer Methods and Programs in Biomedicine 期刊信息&#xff1a…

圣树唤歌最强阵容2023,圣树唤歌阵容推荐

无疑圣树唤歌作为一款备受欢迎的手机游戏&#xff0c;其深刻的战斗系统一直以来都受到大家的追捧。在这个虚拟世界中胜利的关键在于组建一支无懈可击的强大队伍&#xff0c;要想成为强者&#xff0c;就必须拥有最强阵容。 关注【娱乐天梯】&#xff0c;获取内部福利号 在本篇攻…

【C++11新特性】右值引用和移动语义(移动构造,移动赋值)

文章目录 前言一、列表初始化&#xff08;不同于初始化列表&#xff09;二、initializer_list三、decltype关键字四、nullptr五、右值引用移动拷贝和移动赋值被编译器识别成将亡值的原因 左值引用和右值引用的场景和价值右值引用的场景move函数 六、关于右值引用的功能和属性问…

【HTML+CSS】零碎知识点

公告滚动条 <!DOCTYPE html> <html><head><title>动态粘性导航栏</title><style>.container {background: #00aeec;overflow: hidden;padding: 20px 0;}.title {float: left;font-size: 20px;font-weight: normal;margin: 0;margin-left:…

23款奔驰C260L升级小柏林音响 15个喇叭 是多了哪两个

22款奔驰C级在音响系统方面也做出了改变&#xff0c;20款奔驰C级的小柏林音响是13喇叭590瓦功率&#xff0c;小柏林音响是多了哪两个喇叭呢&#xff1f;也就是眼镜盒上的两个&#xff0c;在之前的C级车型上&#xff0c;小柏林是没有这两个扬声器的。无论是小柏林还是大柏林&…

凉鞋的 Godot 笔记 201. 第三轮循环:引入变量

201. 第三轮循环&#xff1a;引入变量 在这一篇&#xff0c;我们进行第三轮 编辑-测试 循环。 在之前我们编写了 输出 Hello Godot 的脚本&#xff0c;如下: extends Node# Called when the node enters the scene tree for the first time. func _ready():print("Hell…

MySQL——六、库表操作(下篇)

MySQL 一、INSERT语句二、REPLACE语句三、UPDATE语句四、delete和TRUNCATE语句五、MySQL用户授权1、密码策略2、用户授权和撤销授权 一、INSERT语句 #在表里面插入数据&#xff1a;默认情况下&#xff0c;一次插入操作只插入一行 方式1&#xff1a; INSERT [INTO] 表名 [(colu…