问题标签 [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.
c - 如何在 FatFs 中获得最大的空闲连续内存块
使用 FatFs 和他们的API,我正在尝试为驱动器的其余部分预分配文件系统空间以写入未知大小的文件。在文件写入过程结束时,任何未使用的空间都会被截断(f_truncate)。但是,当文件系统在删除某些文件后变得碎片化时,我在分配足够的空间时遇到了问题。为了克服这个问题,我只想分配足够的空间作为文件系统上最大的连续内存块。
在 FatFS API 中,有一些函数可以获取设备上剩余的可用空间量,即 f_getfree。还有一个 f_expand 函数,它以字节为单位接收大小,并返回给定大小的空闲连续内存块是否存在。
有没有一种有效的方法来计算可用的最大空闲连续内存块?我试图避免任何形式的蛮力“猜测和检查”方法。谢谢
stm32 - 将 FatFs 文件系统与东芝内存的 SPI NAND 闪存驱动程序集成
我正在使用 STM32L486RG 微控制器进行项目。我必须使用 SPI 外设连接东芝 NAND 闪存并集成 FatFs 文件系统。现在,通过我的低级驱动程序,我能够在 NAND 闪存中读取和写入缓冲区,但我不知道如何集成 FatFs 文件系统。我在许多论坛和网站上读到,我应该开发管理和控制纠错码 (ECC) 和磨损均衡的 API。我在网上搜索,但没有找到任何示例或示例代码。
我真的坚持这一点,不知道从哪里开始。有人对这个问题有想法吗?
谢谢
c - 如何编写程序录制声音并将其写入SD卡?
我正在使用 STM32L476G_EVAL 板和 Eclipse(C 语言)。我需要编写一个可以录制声音的程序并将获得的声音样本写入SD卡。我有两个单独的代码,一个用于录制和再现使用 DFSDM HAL API 的声音,另一个用于在 RTOS 模式下将向量写入 SD 卡。我用两个线程制作了一个新的源代码,一个用于录制声音,另一个用于写入 sd 卡。问题是由于某种原因线程不起作用,它在第一次写入 sd 卡后停止。我猜测它与 fatfs 和线程有关,因为我尝试使用 fatfs 和更简单的功能(LED 切换)进行多线程,但它也不起作用。可能我错过了一些信息,因为我是这个领域的新手。
filesystems - FATFS:如何获取文件第一个扇区的地址?
我在 stm32 上使用 fatfs,我想找到使用 f_open 函数打开的文件的第一个扇区的地址。因此,我可以使用可用的低级 DMA 方法使用该扇区地址作为地址偏移量来访问文件。如何获取磁盘上文件的原始地址?
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 这将意味着另一个结构来组合时间的字节数组和来自每个数据点的结构值。
有没有推荐的方法来解决这个问题?我经常读到这已经做过很多次了,但不知何故,到目前为止我找不到好的例子。也许我只是在看错误的地方。
memory - SPI NAND FLASH 上的 FATFS 集成
我正在尝试在美光 NAND SPI FLASH 上集成 FATFS 文件系统。我使用 STM32L486RG 的 SPI 外设作为接口。
我开发了一个低级驱动程序,通过它我能够从 NAND 存储器的不同位置读取、写入和擦除数据。然后,我将我的低级驱动程序 API 集成到diskio.c
文件下,以便 API 可以使用它们fatfs
。
我已经成功地格式化了内存f_mkfs
(我FR_OK
同时使用了APIf_mkfs
和f_open
调试fs
对象时包含 FAT 签名)。
但是,当我尝试将缓冲区写入使用 创建的文件时f_oprn
,我得到"FR_INT_ERR"
.
我一步一步调试了我的代码,我发现我的get_fat
函数返回 (1) 作为结果,这意味着an internal error has occurred
.
知道可能是什么问题吗?
stm32 - stm32f4 fatfs f_write whitemarks
我在 stm32f4 上与 fatfs 苦苦挣扎。没有问题,我可以挂载,创建文件并在其上写入:char my_data[]="hello world"
并且在Windows文件中正常显示,但是当我尝试使用代码作为记录器时:
当我从计算机读取时,我有:顶部:记事本 ++ 按钮:Windows 记事本
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) 时才有效。我的这部分代码如下:
c++ - FR_Not_Enabled Fat_fs 读取 sd 卡时出错?
我正在使用 stmf429 单片机,我自己设计了电路板,
想读取 sd 卡并打开它,但 f_mount 有错误(FR_Not_Enabled)。初始化是可以的。