问题标签 [fatfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
580 浏览

c - 如何在 FatFs 中获得最大的空闲连续内存块

使用 FatFs 和他们的API,我正在尝试为驱动器的其余部分预分配文件系统空间以写入未知大小的文件。在文件写入过程结束时,任何未使用的空间都会被截断(f_truncate)。但是,当文件系统在删除某些文件后变得碎片化时,我在分配足够的空间时遇到了问题。为了克服这个问题,我只想分配足够的空间作为文件系统上最大的连续内存块。

在 FatFS API 中,有一些函数可以获取设备上剩余的可用空间量,即 f_getfree。还有一个 f_expand 函数,它以字节为单位接收大小,并返回给定大小的空闲连续内存块是否存在。

有没有一种有效的方法来计算可用的最大空闲连续内存块?我试图避免任何形式的蛮力“猜测和检查”方法。谢谢

0 投票
0 回答
1970 浏览

stm32 - 将 FatFs 文件系统与东芝内存的 SPI NAND 闪存驱动程序集成

我正在使用 STM32L486RG 微控制器进行项目。我必须使用 SPI 外设连接东芝 NAND 闪存并集成 FatFs 文件系统。现在,通过我的低级驱动程序,我能够在 NAND 闪存中读取和写入缓冲区,但我不知道如何集成 FatFs 文件系统。我在许多论坛和网站上读到,我应该开发管理和控制纠错码 (ECC) 和磨损均衡的 API。我在网上搜索,但没有找到任何示例或示例代码。

我真的坚持这一点,不知道从哪里开始。有人对这个问题有想法吗?

谢谢

0 投票
0 回答
866 浏览

c - 如何编写程序录制声音并将其写入SD卡?

我正在使用 STM32L476G_EVAL 板和 Eclipse(C 语言)。我需要编写一个可以录制声音的程序并将获得的声音样本写入SD卡。我有两个单独的代码,一个用于录制和再现使用 DFSDM HAL API 的声音,另一个用于在 RTOS 模式下将向量写入 SD 卡。我用两个线程制作了一个新的源代码,一个用于录制声音,另一个用于写入 sd 卡。问题是由于某种原因线程不起作用,它在第一次写入 sd 卡后停止。我猜测它与 fatfs 和线程有关,因为我尝试使用 fatfs 和更简单的功能(LED 切换)进行多线程,但它也不起作用。可能我错过了一些信息,因为我是这个领域的新手。

0 投票
1 回答
605 浏览

filesystems - FATFS:如何获取文件第一个扇区的地址?

我在 stm32 上使用 fatfs,我想找到使用 f_open 函数打开的文件的第一个扇区的地址。因此,我可以使用可用的低级 DMA 方法使用该扇区地址作为地址偏移量来访问文件。如何获取磁盘上文件的原始地址?

0 投票
2 回答
781 浏览

c - AVR上的FatFs,有没有最大化写入速度的策略?

晚上好,

我正在使用 14.7456MHz 的 Atmega32 (2kB RAM) 通过运行在 ~1.5MHz 的 SPI 将数据记录到 SD 卡。

FatFs 设置为 FF_FS_TINY 0 (据我观察,0 或 1 似乎不会影响写入速度)

我要记录的数据包含:5 个字符作为名称,6 个字节用于日期和时间,2 个 uint(16 位)用于值

日期和时间存储在字节数组中,名称和值来自结构变量。

目标是每毫秒从 8 个输入中采样数据,即 8kSPS。主程序每毫秒触发一次中断并设置一个标志。在主循环中,如果标志为 1,则读取 ADC,并将值存储在结构变量中。(每个 ADC 通道都有一个单独的通道。)

出于测试目的,我尝试使用 f_printf 每 10 毫秒编写 8 个静态值样本,持续一秒钟。(还是应该使用 f_write?)

我用两张 SD 卡进行了尝试,其中一张耗时约 1500 毫秒,另一张耗时约 2100 毫秒。

由于这花费的时间太长,我想知道有什么策略可以使写入过程更高效,或者一般如何做到这一点。我读到您应该以某种方式对齐卡扇区,但我不知道该怎么做。其他人建议在卡使用时间比平时更长的情况下使用 Fifo 缓冲区,afaik 这将意味着另一个结构来组合时间的字节数组和来自每个数据点的结构值。

有没有推荐的方法来解决这个问题?我经常读到这已经做过很多次了,但不知何故,到目前为止我找不到好的例子。也许我只是在看错误的地方。

0 投票
1 回答
1106 浏览

memory - SPI NAND FLASH 上的 FATFS 集成

我正在尝试在美光 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.

知道可能是什么问题吗?

0 投票
1 回答
1031 浏览

stm32 - stm32f4 fatfs f_write whitemarks

我在 stm32f4 上与 fatfs 苦苦挣扎。没有问题,我可以挂载,创建文件并在其上写入:char my_data[]="hello world"并且在Windows文件中正常显示,但是当我尝试使用代码作为记录器时:

当我从计算机读取时,我有:顶部:记事本 ++ 按钮:Windows 记事本

0 投票
1 回答
1023 浏览

c - fatfs :通过使用 f_mkdir() 函数在文件夹内创建未知类型文件

我想知道,在使用f_mkdir()功能后,我正在创建“SENT”文件夹,但在该文件夹中,又创建了一个没有任何描述的“SENT”文件/文件夹。

我无法理解问题出在我的代码上。任何帮助表示赞赏。

快照

[fatfs:通用 FAT 文件系统模块]

0 投票
1 回答
939 浏览

spi - 无法在 Fatfs 中使用 f_read() 和 f_lseek()

我正在尝试通过 SPI 连接到带有 stm32f091cctx MCU 的 2GB sd 卡类 6。使用 fatFs 库版本。R0.13a 我能够安装驱动器并使用 f_mount 和 f_open 函数打开文件。但是当涉及到从文件中读取时,它只是冻结在 f_read 函数的某个地方。此外,当我尝试使用 f_lseek 更改指针的位置时,它再次冻结。f_lseek 仅在我将其编写为 f_lseek(&MyFile, 0) 时才有效。我的这部分代码如下:

0 投票
1 回答
1631 浏览

c++ - FR_Not_Enabled Fat_fs 读取 sd 卡时出错?

我正在使用 stmf429 单片机,我自己设计了电路板,

想读取 sd 卡并打开它,但 f_mount 有错误(FR_Not_Enabled)。初始化是可以的。