JesFs 项目推荐
1. 项目基础介绍和主要编程语言
JesFs 是一个为标准串行 NOR 闪存设计的嵌入式文件系统,由 joembedded 开发并托管在 GitHub 上。该项目的主要编程语言是 C,适用于嵌入式系统,特别是那些资源受限的设备。JesFs 的设计目标是在保持小内存占用和代码足迹的同时,提供可靠的文件系统功能。
2. 项目的核心功能
JesFs 的核心功能包括:
- 超小内存和代码足迹:适用于最小的 MCU,仅需 8KB 程序内存或更少,如 MSP430 系列和各种 32 位 ARM 内核(M0, M3, M4 等)。
- 完全开源:使用标准 C 编写,免费且开源。
- 支持多种闪存类型:从 8KB 到 16MB 的串行 NOR 闪存,甚至可以用于 CPU 内部的 NOR 闪存。
- 安全启动:与 Ultra-Small JesFsBoot 安全启动程序配合使用,支持 AES-128 加密引擎,确保可靠的空中更新(OTA)。
- 优化磨损均衡:延长内存寿命。
- 快速数据传输:例如,在 nRF52840 上读取文件的速度可达 3.7MB/秒。
- 持久性:在电源丢失或重置时不会丢失数据。
- 适用于多种场景:包括数据收集、事件报告和日志记录应用。
3. 项目最近更新的功能
JesFs 最近的更新包括:
- V2.72:引入了
_feature supply_voltage_check()
功能,并在所有全局 fs_ 函数中检查_supply_voltage_check()
的入口。 - V2.71:所有全局 fs_ 函数在入口处检查
_supply_voltage_check()
。 - V2.70:添加了
supply_voltage_check()
功能。 - V2.61:Atmel SAMD20 的贡献(感谢 kudos)。
- V2.60:使用全局宏
$SDK_ROOT
。 - V2.55:更新到 SDK17.1.0 和 SES 5.42ab。
- V2.54:在
tb_tools.c
中添加了tb_get_runtime()
。 - V2.30:在
JesFs_main.c
中添加了用于分析的 Flash ID 打印。 - V2.20:为 nRF52832 添加了示例(u-Blox ANNA-B112 模块的 I/O 配置)。
- V2.10:添加了对 nRF52832 的支持。
- V2.02:更新到 SDK17.0.2 和 SES 5.10b。
- V2.01:更新到 SDK17(解决了 nrf_clock() 在 SDK17 中的问题)。
- V2.00:将 UART 驱动程序更改为 APP_UART,以便在
tb_tools
中多用途使用。
这些更新进一步增强了 JesFs 的功能和适用性,特别是在资源受限的嵌入式系统中。