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相关的内核及其组件的源码了。
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 基本功能介绍如下:媒介服务,也就是存储外设;目录功能,也就是对目录的操作:创建、删除、导航、遍历,以及属性;文件功能,也就是对文件的操作:创建、删除、重命名、读取、写入、属性,以及遍历。
媒介服务:
目录功能:
文件功能:
FileX 的函数命名规则是:Noun-verb naming convention (名词动词命名约定)。根据这个命名规则,我们实际看下个 API,比如:fx_file_allocate ,前缀 tx,名词 file_,动词 allocate。
从一开始,ThreadX 就被设计为工业级 RTOS,并附带完整的 C 源代码。ThreadX 源代码在质量和易于理解方面树立了标杆。此外,一个函数一个源文件的方式,大大方便用户查阅浏览。ThreadX 遵守严格的编码规范,包括要求每行 C 代码都必须有有意义的注释。此外,ThreadX 源码已通过最高标准的认证。
讲解 SDMMC(Secure digital input/output MultiMediaCard interface)总线的基
础知识和对应的 HAL 库 API。为下个章节 SD 卡的移植做准备。
这个总线的硬件框图和使用,感觉还是不会呀,先暂时放一放吧。