我正在尝试在Micron NAND SPI闪存上集成FATFS文件系统。我使用STM32L486RG的SPI外设作为接口。
我已经开发了一个低级驱动程序,通过它我可以从NAND存储器中的不同位置读取、写入和擦除数据。然后,我将我的低级驱动程序API集成到diskio.c文件中,以便fatfs API可以使用它们。
我已经成功地通过f_mkfs格式化了内存(我通过f_mkfs和f_open API获得了FR_OK,并且在调试时fs对象包含FAT签名)。
但是,当我尝试将buffer写入我使用f_oprn创建的文件中时,我得到了"FR_INT_ERR"。
我已经一步一步地调试了我的代码,我发现我的get_fat函数返回(1)作为结果,这意味着an internal error has occurred。
你知道问题出在哪里吗?
发布于 2018-08-22 06:25:20
我猜你需要擦除你想要写入的内存扇区-即使你是按页而不是按整个扇区写入的-这就是为什么在NAND Flash中使用FatFs变得棘手的原因。
由于您的目的是将逻辑驱动器绑定到整个物理驱动器,因此需要在f_mkfs函数中使用参数opt的选项( FM_SDF | FM_ANY )来格式化内存。
https://stackoverflow.com/questions/47079544
复制相似问题