filex文件系统功能预研

news2024/11/18 1:48:04
filex资源

filex的源码路径有两个:

  • 一个是azure-rtos下的filex:azure-rtos/filex (github.com)
  • 一个是eclipse-threadx下的filex:eclipse-threadx/filex

filex的文档地址:rtos-docs/rtos-docs/filex
第三方文档:ThreadX FileX和RL-FlashFS文件系统教程
调试工具tracex:Releases · eclipse-threadx/tracex (github.com)
但其实吧,调试工具压根没时间去了解哇,先暂时放一放,因为filex的移植大概率也用不着它,反而是可以通过keil直接调试。

至于为什么会有两个源码路径呢?
Eclipse ThreadX 是一个开源的实时操作系统(RTOS),它是由Express Logic开发的,后来被微软收购所以曾经在azure-rtos仓库下,作为微软维护。后面贡献给了Eclipse,现在的azure-rtos下,已经没有了和threadx相关的内核及其组件的源码了。

filex概述

ThreadX 几乎是小型 RTOS 的巅峰之作,62亿电子设备采用,是其它 RTOS 无法逾越的高山。ThreadX 的产品涵盖了各种领域,包括 NASA 的多个太空探测项目,飞机自动驾驶仪系统,火星侦察轨道器等。

ThreadX 及其所有中间件的安全认证等级,至今没有一款小型 RTOS 可以与其匹敌。这么多安全认证,公司要入大量财力,人力和物力才可以完成,早前 Micrium 的一篇文章还谈过这个问题,投入了太多资金和人力了,还与风河的 VxWorks 做了简单对比。

FileX 嵌入式文件系统是针对 Microsoft FAT 文件格式的高级工业级解决方案,专门针对深度嵌入式,实时和物联网应用程序而设计。FileX 支持 Microsoft 的所有文件格式,包括FAT12,FAT16,FAT32 和exFAT。FileX 还通过 LevelX 的提供了可选的容错能力和FLASH 磨损均衡。并且空间需求小,执行速度快和易于使用,使 FileX 成为要求最苛刻的嵌入式 IoT 应用程序的理想选择。因此,和文件系统相关的就是:filex+levelx。本文章的主题是filex。

FileX 嵌入式文件系统的最小占用空间非常小,只有 8.6 KB 到 12 KB,可支持基本文件读/写。一个实例的最小 FileX RAM 使用量约为 1.8 KB,并且只有 512 字节的逻辑扇区缓存。与 ThreadX 一样,FileX的大小会根据应用程序使用的服务自动裁剪。这实际上消除了对复杂配置的需要,并且无需构建参数,从而使开发人员更轻松。即可配置,可支持小空间,大空间也能通过配置达到高性能

功能认证

功能介绍

FileX 基本功能介绍如下:媒介服务,也就是存储外设;目录功能,也就是对目录的操作:创建、删除、导航、遍历,以及属性;文件功能,也就是对文件的操作:创建、删除、重命名、读取、写入、属性,以及遍历。

媒介服务

  1. 支持 FAT 12/16/32
  2. 最小 6KB 闪存,2.5KB RAM
  3. 完整的媒体访问服务
  4. 不限制例化的设备数
  5. 简单的读/写逻辑扇区驱动接口函数
  6. 多分区支持
  7. 逻辑扇区缓存
  8. FAT 条目缓存
  9. 可选的容错支持
  10. 延迟辅助 FAT 更新(secondary FAT)
  11. 通过 TraceX 进行系统级跟踪
  12. API 包括:
    • fx_media_open
    • fx_media_close
    • fx_media_format
    • fx_media_space_available

目录功能

  1. 路径支持 256 字节
  2. 支持长目录名和 8.3 格式短目录
  3. 目录创建和删除
  4. 目录导航和遍历
  5. 目录属性管理
  6. 通过 TraceX 进行系统级跟踪
  7. API 包括:
    • fx_directory_create
    • fx_directory_delete
    • fx_directory_attributes_set
    • fx_directory_attributes_read
    • fx_directory_first_entry_find
    • fx_directory_next_entry_find

文件功能

  1. 最小 3.3KB Flash
  2. 打开文件数不限
  3. 只读文件可以多次打开
  4. 支持长文件名和 8.3 短文件名
  5. 连续文件支持(文件访问的时间确定性)
  6. 快速搜寻逻辑
  7. 簇的预分配
  8. 文件创建,删除和重命名
  9. 文件读取,写入和查看
  10. 文件属性管理
  11. 通过 TraceX 进行系统级跟踪
  12. API 包括:
    • fx_file_create
    • fx_file_close
    • fx_file_delete
    • fx_file_attributes_set
    • fx_file_attributes_read
    • fx_file_read
    • fx_file_seek
    • fx_file_write
命名规则

FileX 的函数命名规则是:Noun-verb naming convention (名词动词命名约定)。根据这个命名规则,我们实际看下个 API,比如:fx_file_allocate ,前缀 tx,名词 file_,动词 allocate。

从一开始,ThreadX 就被设计为工业级 RTOS,并附带完整的 C 源代码。ThreadX 源代码在质量和易于理解方面树立了标杆。此外,一个函数一个源文件的方式,大大方便用户查阅浏览。ThreadX 遵守严格的编码规范,包括要求每行 C 代码都必须有有意义的注释。此外,ThreadX 源码已通过最高标准的认证。

高级特性
  1. 多媒介管理:FileX 可以外挂不限数量的设备。每个媒介在 fx_media_open 调用中都有其自己独立的存储区和关联的驱动程序。FileX 的默认发行版还附带了一个简单的 RAM 介质驱动程序和一个使用此 RAM 磁盘的演示系统。
  2. 逻辑扇区缓存:通过减少整个扇区的复制粘贴,FileX 逻辑扇区高速缓存显着提高了性能。FileX 为每个打开的媒介维护一个逻辑扇区缓存。逻辑扇区高速缓存的深度取决于通过 fx_media_open API 调用提供给 FileX 的内存量。
  3. 连续文件支持:FileX 通过函数 fx_file_allocate 提供连续文件支持,使文件访问具有时间确定的。该函数获取请求的内存量,并寻找一系列相邻的簇以满足请求。如果找到了这样的簇,则通过使其成为文件已分配簇链的一部分来对其进行预分配。在移动的物理媒介上,FileX 连续文件支持可显着提高性能,并确定访问时间。
  4. 动态创建:FileX 允许动态创建系统资源。如果应用程序具有多个或动态配置要求,则这一点尤其重要。此外,用户可以使用的 FileX 资源(媒体或文件)的数量没有限制。同样,系统对象的数量对性能没有任何影响。
  5. 掉电保护:FileX 容错功能通过记录在更新过程中更新文件或目录所需的所有步骤来工作。该日志条目存储在FileX 可以找到和访问的专用扇区上。即使没有适当的文件系统,也可以访问日志数据的位置。因此,万一文件系统损坏,FileX 仍然能够找到日志条目并将文件系统恢复到良好状态。
SDMMC基础

讲解 SDMMC(Secure digital input/output MultiMediaCard interface)总线的基
础知识和对应的 HAL 库 API。为下个章节 SD 卡的移植做准备。
这个总线的硬件框图和使用,感觉还是不会呀,先暂时放一放吧。

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

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

相关文章

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统,明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架,并提供具体的实现路径和相关技术代码示例。 一、知识付费系…

大陆ARS548使用记录

一、Windows连接上位机 雷达是在深圳路达买的,商家给的资料中首先让配置网口,但我在使用过程中一直出现无法连接上位机的情况。接下来说说我的见解和理解。 1.1遇到的问题 按要求配置好端口后上位机无连接不到雷达,但wireshark可以正常抓到数…

基于改进YOLOv5s的跌倒行为检测 | 引入SKAttention注意机制 + 引入空间金字塔池化结构SPPFCSPC + 结合ASFF自适应空间融合

前言:Hello大家好,我是小哥谈。为了实现电厂人员跌倒行为的实时检测,防止跌倒昏迷而无法及时发现并救援的事件发生,针对跌倒行为检测实时性以及特征提取能力不足的问题,提出了一种改进YOLOv5s的跌倒行为检测算法网络&a…

公网IP变更自动微信通知与远程执行命令的C++开源软件

基本功能 智能公网IP变更监测与微信通知 一旦检测到公网IP地址发生变更,系统将自动通过预设的QQ邮箱(该邮箱与微信绑定,实现微信通知)发送新IP地址通知。同时,软件会即时更新本地配置文件中的IP地址及变更时间&#…

MySQL Server使用

MySQL Server MySQL Server基本操作查看数据库服务命令行连接(这些操作都可以在workbench中进行) MySQL Server基本操作 MySQL基础:安装卸载与配置 查看数据库服务 电脑–管理–管理和应用程序–服务–MySQL80 命令行连接(这…

Linux线程:编织并发的梦幻世界

目录 🚩引言 🚩听故事,引概念 🚩生产者消费者模型 🚀再次理解生产消费模型 🚀挖掘特点 🚩条件变量 🚀条件变量常用接口 🚀条件变量的原理 🚩引言 上一篇…

HQChart报价列表高级应用教程7-走势列数据对接

HQChart报价列表高级应用教程7-走势列数据对接 走势列小程序效果图PC效果图HQChart代码地址走势列类型配置走势列数据格式示例走势列 单独使用一列显示每个股票的走势图 小程序效果图 PC效果图 HQChart代码地址 地址:github.com/jones2000/HQChart

医院挂号系统:基于JSP和MySQL的现代化医疗预约平台

开头语:您好,我是专注于医疗系统开发的IT学长。如果您对医院挂号系统感兴趣,欢迎联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术,B/S架构 工具:Eclipse,MyEclips…

大模型对汽车行业意味着什么?_汽车企业大模型

引 言 大模型是一种利用海量数据进行训练的深度神经网络模型,其特点是拥有庞大的参数规模和复杂的计算结构。通过在大规模数据集上进行训练,大模型能够学习到丰富的模式和特征,从而具备强大的泛化能力,可以对未知数据做出准确的预…

10 - matlab m_map地学绘图工具基础函数 - 绘制多边形区域、流线图、散点图和添加注释的有关函数

10 - matlab m_map地学绘图工具基础函数 - 绘制多边形区域、流线图、散点图和添加注释的有关函数 0. 引言1. 关于m_patch2. 关于m_streamline3. 关于m_scatter4. 关于m_annotation5. 结语 0. 引言 本篇介绍下m_map中绘制多边形区域函数(m_patch)、绘制流…

Landsat数据从Collection1更改为Collection2

目录 问题解决 问题 需要注意!您使用的是废弃的陆地卫星数据集。为确保功能持续,请在2024年7月1日前更新。 在使用一些以前的代码时会遇到报错,因为代码里面用的是老的数据集 解决 对于地表反射率SR,需要在name中,将C01换为C02&…

Mysql-基础-DDL操作

1、数据库操作 查询 查询所有数据库 show databases; 创建 创建数据库 create database [if not exists] 数据库名 使用及查询 use 数据库名 select database() 查询当前所处数据库 删除 drop database [if not exists] 数据库名 2、表操作 查询当前库中的所…

SpringBoot源码阅读3-启动原理

SpringBootApplication public class DistApplication {public static void main(String[] args) {// 启动入口SpringApplication.run()SpringApplication.run(DistApplication.class, args);} }1、服务构建 这里"服务"指的是SpringApplication对象,服务…

安防视频监控/视频汇聚EasyCVR平台国标GB28181级联上级平台,视频无法播放是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警…

24位DAC转换的FPGA设计及将其封装成自定义IP核的方法

在vivado设计中,为了方便的使用Block Desgin进行设计,可以使用vivado软件把自己编写的代码封装成IP核,封装后的IP核和原来的代码具有相同的功能。本文以实现24位DA转换(含并串转换,使用的数模转换器为CL4660)为例,介绍VIVADO封装IP核的方法及调用方法,以及DAC转换的详细…

【postgreessql 】统计库中的所有表数量

在PostgreSQL中,你可以使用SQL查询来统计数据库中的所有表数量。这通常涉及到查询系统目录表,特别是 pg_catalog.pg_tables 表,它存储了关于数据库中所有表的信息。 SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN …

游戏冻结工具 -- 雪藏HsFreezer v1.78

软件简介 HsFreezer是一款多功能游戏冻结工具,它允许用户随意暂停和继续游戏,同时具备系统优化和进程管理的功能。这款软件特别适合希望在游戏加载时间节省或在游戏与其他任务之间快速切换的用户。其主要特点包括快捷键操作、单锁模式的丝滑切换&#x…

【大数据】StarRocks的系统架构

StarRocks 架构简洁,整个系统的核心只有 FE(Frontend)、BE (Backend) 或 CN (Compute Node) 两类进程,方便部署与维护,节点可以在线水平扩展,元数据和业务数据都有副本机制,确保整个系统无单点。…

数据大小端问题

文章目录 大小端前言函数引用(接下来使用此函数对高低位进行切换)先看截取的对于大小端的定义大小端数据的直观理解[重点] 对uchar数组进行取操作定义一个uint8_t的数组观察起内部内存尝试使用uint32_t 每次区 1、2、3、4byte数据 提升经过上面的介绍一定对大小端有了一定的了解…

桥梁监测系统:守护桥梁结构安全的科技利器

桥梁是城市交通的重要组成部分,然而,长期以来,桥梁结构的健康问题一直是人们关注的焦点。传统的人工巡检方式无法全面准确地掌握桥梁结构的实时状况,因此,桥梁监测系统应运而生。桥梁监测系统是一种基于传感器、信息处…