C++ 您能为嵌入式系统提供哪些免费的最小闪存文件系统建议?

C++ 您能为嵌入式系统提供哪些免费的最小闪存文件系统建议?,c++,embedded,C++,Embedded,我在板上有DSP tms320vc5509a和NOR闪存AT26DF321,我将在闪存上存储命名数据。我不需要目录层次结构,也不需要级别调整(我希望系统很少写入flash),但非常需要CRC。 谢谢您可以查看,以获得一个良好的小型文件系统实现。不确定它是否有CRC,但您可以将其添加到低级硬件驱动程序中。在NOR闪存上,尤其是在包含启动代码和应用程序的闪存上,我通常避免了正式文件系统的开销。相反,我存储每个“有趣”的对象,从擦除块边界开始,从一个头结构开始,该头结构至少保存对象大小和校验和。向标头

我在板上有DSP tms320vc5509a和NOR闪存AT26DF321,我将在闪存上存储命名数据。我不需要目录层次结构,也不需要级别调整(我希望系统很少写入flash),但非常需要CRC。
谢谢

您可以查看,以获得一个良好的小型文件系统实现。不确定它是否有CRC,但您可以将其添加到低级硬件驱动程序中。

在NOR闪存上,尤其是在包含启动代码和应用程序的闪存上,我通常避免了正式文件系统的开销。相反,我存储每个“有趣”的对象,从擦除块边界开始,从一个头结构开始,该头结构至少保存对象大小和校验和。向标头添加名称或资源ID是一种自然扩展

引导加载程序通过在使用块之前验证校验和来查找有效的应用程序。同样,其他资源在使用前也可以确认有效

它还可以让固件更新实用程序在擦除对象并将其编程到闪存之前轻松地验证对象

处理小型资源池的最佳方法可能是将其包装在容器中以进行闪存。如果运行时资源支持它,我会尝试使用ZIP来包装文件,将ZIP存档的图像包装在大小和校验和头中,并将其存储在擦除块边界处。如果您负担不起解压缩运行时的费用,那么仍然可以将ZIP与未压缩的文件一起使用,或者使用更简单的格式,例如tar


自然地,NAND闪存的情况非常不同。在这里,我强烈建议选择一个为NAND闪存的怪癖而设计的成熟(商业或开源)文件系统

FAT12对于这样的应用程序来说其实并不坏。但据我所知,没有内置的CRC。您可以添加一个。为什么您需要一个文件系统?请注意,FAT在某种程度上是反升级的,因为它必须在每次重大文件更改时更新FAT。也就是说,这通常是一个简单的选择,对于本质上的只读活动来说,这不是一个坏的选择。代码中有一些常量数组——校准系数,存储在flash中。用户(工程师)可以通过USB进行更改。我想概括一下flash中soft放置数组的方式。