第 1 章 - Azure RTOS FileX 简介

Azure RTOS FileX 是一个完全 FAT 格式的介质和文件管理系统,适用于深层嵌入应用程序。 本章介绍了 FileX 及其应用程序和优点。

FileX 的独特功能

Azure RTOS FileX 同时支持无限量的介质设备,包括 RAM 磁盘、FLASH 管理器和实际的物理设备。 它支持 12、16 和 32 位文件分配表 (FAT) 格式,还支持扩展文件分配表 (exFAT)、连续文件分配,并针对大小和性能进行了高度优化。 FileX 还包括容错支持、介质开启/关闭和文件写入回叫函数。

FileX 使用与 ThreadX 相同的设计和编码方法,旨在满足不断增长的 FLASH 设备需求。 与所有 Microsoft 产品一样,FileX 使用完整的 ANSI C 源代码进行分发,并且没有运行时版税。

产品亮点

  • 完整的 ThreadX 处理器支持
  • 无版税
  • 完整的 ANSI C 源代码
  • 实时性能
  • 快速响应的技术支持
  • 不受限制的 FileX 对象(介质、目录和文件)
  • 动态 FileX 对象创建/删除
  • 可变内存使用
  • 自动缩放大小
  • 小型内存占用情况(低至 6 Kb)指令区域大小:6-30000
  • 完成与 ThreadX 的集成
  • 支持各种字节序
  • 易于实现的 FileX I/O 驱动程序
  • 12、16 和 32 位 FAT 支持
  • exFAT 支持
  • 长文件名支持
  • 内部 FAT 条目缓存
  • Unicode 名称支持
  • 连续文件分配
  • 连续扇区和群集读取/写入
  • 内部逻辑扇区缓存
  • RAM 磁盘演示开箱即用
  • 介质格式功能
  • 错误检测和恢复
  • 容错选项
  • 内置性能统计信息
  • 独立支持(无 Azure RTOS)

安全认证

TÜV 认证

根据 IEC-61508 SIL 4,FileX 已通过 SGS-TÜV Saar 认证,可用于安全关键型系统。 认证确认 FileX 可用于开发安全相关软件,以达到 IEC-61508 的最高安全完整性级别,用于“电气、电子和可编程电子安全相关系统的功能安全性”。 SGS-TUV Saar 由德国的 SGS-Group 和 TUV Saarland 合并而成,现已成为领先的经过资格验证的独立公司,专门为全球的安全相关系统测试、审核、验证和认证嵌入式软件。

SGS TUV Saar 徽标

  • IEC 61508,达到 SIL 4 等级

重要

若要详细了解 TÜV 认证的 FileX) (版本或测试报告、证书和相关文档的可用性,请与我们联系。

UL 认证

FileX 已通过 UL 的认证,符合面向可编程软件组件的 UL 60730-1 Annex H、CSA E60730-1 Annex H、IEC 60730-1 Annex H、UL 60335-1 Annex R、IEC 603351 Annex R 和 UL 1998 安全标准。 连同 IEC/UL 60730-1(其附件 H 中对“使用软件进行控制”的要求)一起,IEC 60335-1 标准在其附件 R 中描述了“可编程电子电路”的要求。IEC 60730 附件 H 和 IEC 60335 -1 附件 R 阐述了在洗衣机、洗碗机、烘干机、冰箱、冰柜和烤箱等电器中使用的 MCU 硬件和软件的安全性。

C RU US 2

UL/IEC 60730、UL/IEC 60335、UL 1998

重要

请联系我们,了解 FileX 的哪些版本已通过 TÜV 认证,或者了解如何获取测试报表、证书和相关文档。

强大的 FileX 服务

多介质管理

FileX 可以支持无限量的物理介质。 每个介质实例都有其自己的不同内存区域和 fx_media_open 调用上指定的相关驱动程序。 FileX 的默认分布附带了一个简单的 RAM 介质驱动程序和一个使用此 RAM 磁盘的演示系统。

逻辑扇区缓存

通过减少与介质之间的整个扇区传输数,FileX 逻辑扇区缓存可显著提高性能。 FileX 为每个打开的介质维护逻辑扇区缓存。 逻辑扇区缓存的深度取决于使用 fx_media_open API 调用提供给 FileX 的内存量。

连续文件支持

FileX 通过 API 服务 fx_file_allocate 提供连续的文件支持,以改善文件访问时间并使其具有确定性。 此例程获取所请求的内存量,并查找一系列相邻群集来满足请求。 如果找到此类群集,则会使其成为已分配群集链的一部分来预分配这些群集。 在移动物理介质时,FileX 连续文件支持会显著提高性能,并使访问时间具有确定性。

动态创建

FileX 允许动态创建系统资源。 如果你的应用程序有多个或动态配置要求,则这一点尤其重要。 此外,可以使用无预先确定限量的 FileX 资源(介质或文件)。 而且,系统对象的数量不会对性能产生任何影响。

易于使用的 API

FileX 以一种易于理解且易于使用的方式提供了最佳的深度嵌入文件系统技术! FileX 应用程序编程接口 (API) 使服务直观且一致。 无需解密其他文件系统中过于常见的“字母汤”服务。

有关 FileX 版本 5 服务的完整列表,请参阅附录 A

exFAT 支持

exFAT(扩展文件分配表)是 Microsoft 设计的一种文件系统,允许文件大小超过 2 GB,即 FAT32 文件系统的限制。 它是容量超过 32GB 的 SD 卡的默认文件系统。 用 FileX exFAT 格式进行格式设置的 SD 卡或 U 盘与 Windows 兼容。 exFAT 支持的文件大小可高达 1 百亿亿字节 (EB),约为 10 亿 GB。

希望使用 exFAT 的用户必须在定义了 FX_ENABLE_EXFAT 符号的情况下重新编译 FileX 库。 打开介质时,FileX 将检测到介质类型。 如果介质使用 exFAT 进行格式设置,则 FileX 会按照 exFAT 标准读写文件系统。 若要使用 exFAT 设置新介质的格式,请使用服务 fx_media_exFAT_format。 默认情况下,exFAT 未启用。

容错支持

FileX 容错模块旨在防止文件或目录更新期间由中断导致的文件系统损坏。 例如,在将数据追加到文件时,FileX 需要更新文件内容、目录条目和 FAT 条目。 如果此更新顺序中断(例如电源故障,或者介质在更新过程中弹出),则文件系统处于不一致状态,这可能会影响整个文件系统的完整性,从而导致其他文件的损坏。

FileX 容错模块的工作原理是记录整个过程中更新文件或目录所需的所有步骤。 此日志条目存储在 FileX 可以查找和访问的专用扇区(块)上。 即使没有适当的文件系统,也可以访问日志数据的位置。 因此,在文件系统损坏的情况下,FileX 仍能找到日志条目,并将文件系统还原到良好状态。

FileX 更新文件或目录时,会创建日志条目。 成功完成更新操作后,会删除日志条目。 如果在成功更新文件后未正确删除日志条目,恢复过程确定日志条目中的内容与文件系统一致,则无需执行任何操作即可清理日志条目。

如果文件系统更新操作中断,则下一次 FileX 装载介质时,容错模块会分析日志条目。 日志条目中的信息允许 FileX 返回已应用到文件系统的部分更改(以防在文件更新操作初期发生失败),或者如果日志条目包含恢复信息,FileX 可以应用完成先前操作所需的更改。

此容错功能适用于 FileX 支持的所有 FAT 文件系统,包括 FAT12、FAT16、FAT32 和 exFAT。 默认情况下,FileX 中不启用容错。 若要启用容错功能,必须在定义了 FX_ENABLE_FAULT_TOLERANT 和 FX_FAULT_TOLERANT 符号的情况下生成 FileX。 在运行时,应用程序调用 fx_fault_tolerant_enable 启动容错服务。 服务启动后,所有文件和目录写入操作都将经历容错模块。

当容错服务启动时,它首先检测介质是否受容错模块保护。 如果不是,FileX 会假定文件系统完整,并从文件系统分配可用于记录和缓存的自由块来启动保护。 如果在文件系统上找到容错模块日志,它会分析日志条目。 FileX 会还原先前的操作或恢复之前的操作,具体取决于日志条目的内容。 在处理完所有以前的日志条目后,文件系统将变为可用状态。 这可确保 FileX 从已知的良好状态启动。

在 FileX 容错模块下保护介质后,该介质不会由另一个文件系统进行更新。 这样做会使文件系统上的日志条目与 FAT 表中的内容(目录条目)不一致。 如果在将介质移回带有容错模块的 FileX 之前由另一个文件系统进行了更新,则结果可能不确定。

回调函数

以下三个回叫函数已添加到 FileX:

  • 介质开启回叫
  • 介质关闭回叫
  • 文件写入回叫

注册后,这些函数将在发生此类事件时通知应用程序。

易于集成

FileX 可以轻松地与几乎所有 FLASH 或介质设备集成。 移植 FileX 非常简单。 本指南详细介绍了该过程,并且从演示系统的 RAM 驱动程序开始是一个不错的选择!