0

我正在尝试在美光 NAND SPI FLASH 上集成 FATFS 文件系统。我使用 STM32L486RG 的 SPI 外设作为接口。

我开发了一个低级驱动程序,通过它我能够从 NAND 存储器的不同位置读取、写入和擦除数据。然后,我将我的低级驱动程序 API 集成到diskio.c文件下,以便 API 可以使用它们fatfs

我已经成功地格式化了内存f_mkfs(我FR_OK同时使用了APIf_mkfsf_open调试fs对象时包含 FAT 签名)。

但是,当我尝试将缓冲区写入使用 创建的文件时f_oprn,我得到"FR_INT_ERR".

我一步一步调试了我的代码,我发现我的get_fat函数返回 (1) 作为结果,这意味着an internal error has occurred.

知道可能是什么问题吗?

4

1 回答 1

1

我猜你需要擦除你要写入的内存扇区——即使你是按页写入而不是按整个扇区写入——这就是为什么在 NAND 闪存中使用 FatFs 变得很棘手。

由于您的目的是将逻辑驱动器绑定到整个物理驱动器,因此您需要在函数中使用( FM_SDF | FM_ANY )参数选项来格式化内存。optf_mkfs

于 2018-08-21T22:25:19.783 回答