我试图在Micron NAND SPI FLASH上集成FATFS文件系统。我使用STM32L486RG的SPI外设作为接口。
我开发了一种低级驱动程序,通过它我可以读取,写入和擦除NAND存储器中不同位置的数据。
然后,我在diskio.c
文件下集成了我的低级驱动程序API,以便fatfs
API可以使用它们。
我已经通过f_mkfs
成功格式化了内存(我在FR_OK
和f_mkfs
API获取f_open
并在调试fs
时对象包含FAT签名。)
但是,当我尝试将缓冲区写入我使用f_oprn
创建的文件时,我得到"FR_INT_ERR"
。
我已逐步调试了我的代码,发现我的get_fat
函数返回(1)结果,这意味着an internal error has occurred
。
知道可能是什么问题吗?
答案 0 :(得分:1)
我想您需要擦除要写入的内存扇区-即使您是按页而不是按整个扇区写入-这就是为什么在NAND Flash中使用FatF变得棘手。
由于您的目的是将逻辑驱动器绑定到整个物理驱动器,因此需要在( FM_SDF | FM_ANY )
函数中对参数opt
使用选项f_mkfs
,以格式化内存。