emFile是一个面向嵌入式应用的文件系统,支持各种类型的存储设备。emFile作为一个通用的高性能软件库,以ANSI C代码实现,并针对RAM和ROM占用以及运行速度进行了高度优化,可以运行在各种CPU架构之上。
emFile提供了NAND和NOR flash,SD卡和eMMC等各种存储介质驱动,可以与各种存储设备一起实现丰富的嵌入式应用。
· 可选的BigFile模块,支持大于4GB文件
NAND和NOR flash支持
emFile提供的NAND flash设备驱动支持SLC(单层单元)及MLC(多层单元)的flash设备。支持使用NAND flash设备内置的ECC引擎或专门的NAND flash控制器实现一位和多位ECC纠正;或者使用Segger 的emLib-ECC,通过软件方式实现ECC。为了支持大容量的NAND Flash设备,NAND驱动允许存储块分组,以节约管理所需的RAM空间。NOR flash驱动支持串行及并行flash设备、CFI兼容的flash及QSPI flash。
Segger (Q)SPI评估板
flash驱动利用静态及动态磨损平衡技术,跟踪块的擦除次数,确保每个块的擦除次数大致相同,延长存储设备的寿命。此外,NAND和NOR驱动还支持垃圾回收,垃圾回收功能在需要的时候自动执行,应用可以主动调用垃圾回收功能最小化写延迟。
SD卡和eMMC支持
emFile提供了访问SD卡和eMMC设备的驱动程序。支持各种存储容量的SD卡,包括SDSC,SDHC,SDXC等。同一设备驱动程序支持所有设备类型,减少ROM使用。利用支持DMA方式的4/8位数据总线的SD主机控制器实现高效的数据传输。在资源受限的系统中,提供基于SPI接口的数据传输。
文件加密
emFile的附加模块Encryption可以实现单个文件或整个存储设备的加密。加密模块支持EFS及FAT文件系统,支持所有类型的存储介质,如NAND、NOR、SD卡、eMMC卡。仅需在应用代码中执行简单的修改,选择加密算法,设置卷设备或文件的密码即可实现加密操作。
Journaling(日志)
Journaling模块是emFile的附加模块。在文件系统之上,用于提供文件系统层的故障安全。标准文件系统(如FAT)是非故障安全的。使用了日志模块后,文件系统先将文件更新记录到日志中,然后更新主文件系统。防止异常中断如掉电等造成的破坏。Journaling层存储每次写访问,以保持文件系统的连续性。
内存需求
emFile的具体内存消耗取决于使用的CPU、编译器、内存模型及配置选项和使用的存储设备驱动等因素。