使用STM32H743IIT6,读写MCU内部Flash固定地址与固定长度的区域,出现随机性HardFault错误,请问是什么原因?
STM32H7A3VGH6Q D1、d2、E1、E2是SMPS功能对应的引脚,裸片量测D2与C1、D1对应的地没有短路现象,PCB板量测也没有短路,但芯片贴到板上D2 VLXSMPS就会与地短路。不知是啥原因。是否芯片型号与批次不对?
mmt 工具如何管理NAND和LCDinterface 设备
调试器如何通过AP0~AP3访问H757?
STM32H7的LSE起振问题
使用STM32H7A3的FMC接口驱动LCD 是否可以用DMA传输数据
stm32h743 lan8720 cube配置lwip无法ping通
型号相同,尾椎不一样
请问有没有人见过这样的报错
在Vscode中,如何将touchGFX的图片资源下载到QSPI FLASH中?
微信公众号
手机版
目前 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 的介质,要么用社区/第三方开源实现”仍是现实路径