Yaffs功能说明

1 背景
2 发牌
3 Yaffs 和 Yaffs 直接接口有哪些?
4 为什么使用 Yaffs 吗?
5 源代码和 Yaffs 资源
6 系统要求
7 如何与实时操作系统/Embedded 系统集成 Yaffs
7.1 源文件
7.2 整合POSIX应用程序接口
7.3 RTO集成接口
8 Yaffs NAND模型
Yaffs1 8.1 NAND模型注意事项
Yaffs2 8.2 NAND模型
9 NAND配置和访问接口
9.1 常见配置项 (Yaffs1 和 Yaffs2)
9.2 共同访问函数 (Yaffs1 和 Yaffs2)
9.3 Yaffs1 访问函数
9.4 Yaffs2 访问函数
10 使用POSIX文件系统接口
10.1 向 Windows POSIX差异-喜欢接口
10.2 基本概念
10.3 错误代码
小型地源热泵10.4 链接 — — 硬种 (不是符号链接)
10.5 符号链接
10.6 基于句柄的文件处理
10.7 更改文件大小
10.8 获取/设置有关文件的信息
10.9 更改目录结构和名称
10.10 搜索目录
10.11 装载控制
10.12 其他
11 示例: yaffs_readdir() 和 yaffs_stat()
1 背景
本文档的目的是描述接口的 Yaffs 直接接口 (YDI) 以及提供足够的信息,以允许 Yaffs 初步评价。这份文件试图把重点放在重要的系统集成商的问题没有得到 Yaffs 是如何工作的太详细。其他文件提供 Yaffs 的工作原理进行深入的讨论。
2 发牌
Yaffs 最初被用于 Linux 下GNU公共许可证 (GPL) 发布。很快就查明,Yaffs 将他们应用的理想选择,但是却不能使用GPL的各种嵌入式开发人员在其系统中基于代码的。Aleph 一有替代的发牌安排,以支持此类应用程序。
3 Yaffs 和 Yaffs 直接接口有哪些?
Yaffs 代表尚未另一个 Flash 文件系统。Yaffs 是第一个文件为设计的系统,从地上起来, nand 闪存存储。
2002 年 Aleph 一着手查明使用NAND闪存作为文件系统的文件系统选项。当时可用的各种文件系统进行评价和所有被发现缺乏一种方式或另一种。确定合适的nand 闪存存储文件系统需要和 Yaffs 为了满足这一需要。
虽然 Yaffs 最初设计用于NAND闪存,它已经被成功地用NOR闪存系统,甚至作为id卡制作RAM文件系统。这允许高可靠性文件系统构造也不闪光,用为更高的密度和性能的NAND闪存未来的迁移路径。
Yaffs 最初被设计用于 Linux 的操作系统,但非常模块化的方式设计了。经营系统特定代码是主要的 Yaffs 文件系统代码分开。这允许 Yaffs 相当干净地移植到其他操作系统通过操作系统个性模块。这样一个个性模块是允许 Yaffs 将简单地集成与嵌入式系统,有或无的RTOS的 Yaffs 直接接口 (YDI).
Yaffs 被用于许多产品使用各种操作系统,包括 Windows CE和各种高昂,包括 ThreadX、 vXworks、 pSOS 举几个。
请注意,对不使用YDI的 eCOS 的本机端口。这是支持并由 eCocCentric 分发。(scentric/)。
Yaffs2,Yaffs,较新版本支持更广泛的NAND闪存组件包括 2 k 页设备,并产生相等或更好的性能。它包括 Yaffs1 兼容性代码,所以 Yaffs1 图像仍然工作,迁移是相当简单。
Nand 闪存文件系统, YDI也提供提供给版税计算RAM仿真层,以允许 Yaffs 太作为RAM文件系统操作。虽然RAM仿真也许不是一个专用的RAM文件系统尽可能高效的这允许一个行之有效的文件系统,使用两个RAM和 flash。
智能缓存4 为什么使用 Yaffs 吗?
Yaffs 是专门针对NAND闪存的第一次,和也许是唯一的文件系统。这意味着设计了 Yaffs 变通的各种限制和怪癖的NAND闪存,以及利用与非门实现一个有效的文件系统的各种功能。
考虑一些特点:
Yaffs 已被很好的证明,并已被用于大量使用许多不同的操作系统、 编译器和处理器的几种产品在出货。
Yaffs 是便携式用 C 编写的是中性的字节序。
Yaffs 提供坏块处理和ECC算法来处理在NAND闪存中的不足之处。
Yaffs 是日志结构文件系统,使电力故障等导致了腐败非常稳健。
Yaffs 具有高度优化和可预测的垃圾收集策略。这使得高性能和非常确定性时相比相似的文件系统。
Yaffs 具有较低的内存占用比大多数其他日志结构的闪存文件系统。
Yaffs 提供了种类繁多的POSIX-样式文件系统支持,包括目录,符号和硬链接等通过标准文件系统接口调用。
Yaffs 是高度可配置工作与各种闪光的几何形状,不同的ECC选项、 缓存选项等。
Yaffs 直接接口是简单整合在一个系统 — — 只有几个接口功能的需要。
Yaffs 可以用广泛的内存技术。
5 源代码和 Yaffs 资源
请注意适用于使用 Yaffs 代码的许可条款。
www.yaffs作为 Yaffs 的所有信息的枢纽。
本文档是广泛指 Yaffs 源代码。并且可以通过此站点上的下载链接。
有其他各种文件和 Yaffs 讨论 Yaffs 邮件列表。
咨询服务也是可用的。
6 系统要求
确定最低系统要求往往是相当困难的。以下介绍只是指引了。如果与联系 Aleph 一进行更详细的分析要求。
Yaffs 是中性的字节序和小端字节序和大端字节序处理器工作正常。
Yaffs 代码已经被成功地与许多不同的 32 位和 64 位 Cpu 包括MIPS,68000, ARM、 PowerPC、 ColdFire x 86 变种。Yaffs 应使用 16 位 Cpu 太,但这是一般未经测试,可能需要一些调整,具体取决于编译器选项。
由于 Yaffs 是日志结构的RAM被需要建立可接受的性能的运行时数据结构。作为一个经验法则,预算大约每 2 个字节块的NAND闪存,在一大块通常是NAND的一页。NAND与 512 字节的页,预算大约 4kbytes 的RAM每 1Mbyte 的nand 闪存。2kbyte 页设备预算大约每 1Mbyte cnc真空吸盘NAND 1 kb.
7 如何与实时操作系统/Embedded 系统集成 Yaffs
Yaffs 直接接口 (YDI) 包装 Yaffs 是简单整合的方式。您需要提供几个函数 Yaffs 使用谈谈您的硬件和操作系统。Yaffs 提供了一整套的POSIX-兼容功能应用程序可以使用跟它说话。
除了 Yaffs 核心文件系统, YDI有三个部分,每个所述在进一步章节中详细:
POSIX应用程序界面: 这是应用程序代码使用访问 Yaffs 文件系统的接口。(打开、 关闭、 读取、 写入、 等)
实时操作系统集成接口: 这些都是必须为 Yaffs 访问实时操作系统系统资源提供的功能。(初始化、 锁定、 解锁、 时间、 设置错误)
闪存配置和访问接口: 这些都是必须为 Yaffs 访问NAND闪存提供的功能。(初始化,读取数据块,写块,擦除块,等等)。这些函数可能由芯片组供应商提供,或者可能需要写的系统集成商。
7.1 源文件
下面的源代码文件包含核心文件系统:
yaffs_allocator.c
分配 Yaffs 对象和 tnode 结构。
yaffs_checkpointrw.c
检查点数据写入流光
yaffs_ecc.c
ECC代码
yaffs_guts.c
主要的 Yaffs 算法。
yaffs_nand.c
Flash 接口抽象。
yaffs_packedtags1.c
yaffs_packedtags2.c
标记包装代码
yaffs_qsort.c
在 Yaffs2 扫描期间使用 Qsort
yaffs_tagscompat.c
要支持 Yaffs1 模式的标记兼容性代码。
yaffs_tagsvalidity.c
标签有效性检查。
Yaffs 直接接口是在 yaffsfs.c 的接口函数与在 yaffsfd.h 中定义的结构。
示例和测试生成文件:
dtest.c
测试工具。也可以用于更好地理解某些函数如何调用工作的示例代码。
yaffscfg2k.c
测试配置。
yaffs_fileem.c
yaffs_fileem2k.c
Nand 闪存仿真使用一个文件作为后备存储。
yaffs_norif1.c
亦不闪光模拟和接口的示例。这被配置为 M18 闪光。
yaffs_ramdisk.c
yaffs_ramem2k.c
使用RAM模拟.
紫铜止水片ynorsim.c
另一个也不模拟。
进一步测试文件是直接测试和直接/python。

本文发布于:2024-09-22 21:35:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/168098.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:使用   文件   系统   接口   提供   闪存
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议