你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
HAL库里面的函数没有进行坏块处理和磨损平衡以及ECC校验修复等内容,官方有没有可用的 FTL。
举报
目前 ST 官方确实没有随同 HAL 库一起发布“可直接拿来量产”的 FTL。HAL 驱动只提供了最底层的 page-/spare 区读写、ECC 计算与 1-bit 纠错函数,坏块标记、磨损均衡、地址映射、垃圾回收等都需要用户自己实现,或者移植第三方开源方案
。
社区已经验证过的可行路线主要有三条,按“移植工作量”从低到高罗列如下,供你快速选型:
直接买“带内部 FTL”的 NAND 例如 SD-NAND(贴片式 TF 卡)、e-MMC、Raw-NAND+外部控制芯片。 优点:坏块、磨损均衡、掉电保护、ECC 全部由芯片内部完成,STM32 端只当成标准块设备(SDIO/SDMMC-SPI 均可),HAL 里现成的 FATFS 例程就能用。 缺点:单价会比裸 NAND 贵 20 %~40 %;如果用量大,成本压力明显
用“开源嵌入式 FTL”+FatFs 正点原子、阿波罗等板厂已经把“ftl.c + nand.c + bsp_nand.c”做成 HAL 框架下的参考工程,实现了:
上电扫描建立坏块表(BMT)
逻辑-物理块映射表(LUT)
擦写计数+静态/动态磨损均衡
512 B/1 kB 粒度 ECC(软件 Hamming + HAL 1-bit 修复)
垃圾回收、掉电恢复 代码完全开源(MIT 授权),F767/F429 上已跑通 FatFs,读写在 1~3 MB/s 量级,适合中小容量(512 MB~4 GB)产品直接量产
。 移植时只需把底层 NAND_ReadPage/NAND_WritePage 换成你自己的器件驱动即可。
NAND_ReadPage/NAND_WritePage
自己写 or 移植 Linux 流行 FTL 如果对性能/寿命要求极高,可参考:
结论
官方目前仍没有发布成熟 FTL,所以“要么买带 FTL 的介质,要么用社区/第三方开源实现”仍是现实路径
关于H750VB的SDMMC开启DMA读写SD卡
stm32h745 调试问题
FDCAN如何处理大于64帧字节的数据
天气很凉爽
FLM算法文件工程代码需要特别注意什么吗?
STM32H7电源问题
串口+DMA发数据
STM32H723FDCANT通信
STM32H725内部FLASH读写问题
关于NAND FLASH加LittleFS的方案
目前 ST 官方确实没有随同 HAL 库一起发布“可直接拿来量产”的 FTL。HAL 驱动只提供了最底层的 page-/spare 区读写、ECC 计算与 1-bit 纠错函数,坏块标记、磨损均衡、地址映射、垃圾回收等都需要用户自己实现,或者移植第三方开源方案
。
社区已经验证过的可行路线主要有三条,按“移植工作量”从低到高罗列如下,供你快速选型:
直接买“带内部 FTL”的 NAND 例如 SD-NAND(贴片式 TF 卡)、e-MMC、Raw-NAND+外部控制芯片。 优点:坏块、磨损均衡、掉电保护、ECC 全部由芯片内部完成,STM32 端只当成标准块设备(SDIO/SDMMC-SPI 均可),HAL 里现成的 FATFS 例程就能用。 缺点:单价会比裸 NAND 贵 20 %~40 %;如果用量大,成本压力明显
。
用“开源嵌入式 FTL”+FatFs 正点原子、阿波罗等板厂已经把“ftl.c + nand.c + bsp_nand.c”做成 HAL 框架下的参考工程,实现了:
上电扫描建立坏块表(BMT)
逻辑-物理块映射表(LUT)
擦写计数+静态/动态磨损均衡
512 B/1 kB 粒度 ECC(软件 Hamming + HAL 1-bit 修复)
垃圾回收、掉电恢复 代码完全开源(MIT 授权),F767/F429 上已跑通 FatFs,读写在 1~3 MB/s 量级,适合中小容量(512 MB~4 GB)产品直接量产
。 移植时只需把底层
NAND_ReadPage/NAND_WritePage换成你自己的器件驱动即可。自己写 or 移植 Linux 流行 FTL 如果对性能/寿命要求极高,可参考:
结论
官方目前仍没有发布成熟 FTL,所以“要么买带 FTL 的介质,要么用社区/第三方开源实现”仍是现实路径