标签: fat

VFAT和FAT32文件系统有什么区别?

我在网上搜索但没有找到令人信服的答案.文件系统VFAT和FAT32是否相同,或它们之间是否存在差异?

filesystems fat32 fat

64
推荐指数
2
解决办法
16万
查看次数

FAT32格式存储上的文件系统链接

我知道FAT32,以及FAT16/12既不支持符号链接也不支持硬链接.不过我提出了这个想法:

FAT规范描述了每个文件都与目录条目相关联.根据我的理解,可以说目录中的文件条目以某种方式或其他方式指向文件的内容.

那么,我如何定义两个指向相同文件内容的目录条目?或者,什么可以阻止我这样做?

使用案例:我的汽车收音机有一个USB大容量存储设备,我想使用目录作为播放列表,因为收音机软件不支持播放列表.因此,对我来说,执行此操作时Windows的行为并不重要.

filesystems hardlink fat32 fat file-link

26
推荐指数
2
解决办法
2万
查看次数

如何使用SD卡以48 ksamples/s记录16位数据?

背景

我的电路板在SPI上集成了STM32微控制器和SD/MMC卡,并以48 ksamples/s采样模拟数据.我正在使用Keil Real-time Library RTX内核和ELM FatFs.

我有一个高优先级的任务,通过DMA以40个样本(40 x 16位)的块来捕获模拟数据; 数据通过长度为128的队列(构成大约107毫秒的样本缓冲)传递给第二个低优先级任务,该任务将样本块整理成2560字节缓冲区(这是512字节SD扇区大小和40个样本块大小).当此缓冲区已满(32个块或约27毫秒)时,数据将写入文件系统.

意见

通过检测代码,我可以看到每32个块,数据被写入并且写入大约需要6 ms.这持续到(在FAT16上)文件大小达到1 MB,当写操作需要440 ms时,此时队列填充并且中止日志记录.如果我将卡格式化为FAT32,则"long-write"事件之前的文件大小为4 MB.

发生这种情况的文件大小在FAT16和FAT32之间发生变化的事实告诉我,它不是卡的限制,而是文件系统在1 MB或4 MB边界上执行需要额外时间的事情.

似乎我的任务正在及时安排,并且ELM FatFs代码仅在1 MB(或FAT32为4)边界消耗时间.

这个问题

有解释或解决方案吗?这是一个FAT问题,或者更确切地说是ELM的FatFs代码?

我考虑过使用多个文件,但根据我的经验,FAT不能很好地处理单个目录中的大量文件,这也会失败.根本不使用文件系统并且写入原始卡是可能的,但理想情况下我想在带有标准驱动程序且没有特殊软件的PC上读取数据.

我想到尝试编译器优化来缩短写入时间; 这似乎有效果,但写入时间似乎变化多了.在-O2我确实得到了一个8 MB的文件,但结果不一致.我现在不确定文件大小和失败点之间是否存在直接关联; 我已经看到它在不同的文件长度上以这种方式失败,没有特定的边界.也许这是卡性能问题.

我进一步对代码进行了检测并采用了一种分治方法.这种观察结果可能会使问题过时,以前所有的观察结果都是错误的或是红色的.

我最后将其缩小为一个多扇区写入(CMD25)的实例,其中卡的"等待就绪"轮询对于块5中的前三个扇区有时需要174 ms.等待就绪的超时设置为500毫秒,所以它会很开心 - 等待那么长时间.在一般情况下,迭代地使用CMD24(单扇区写入)要慢得多 - 每个扇区140毫秒 - 而不是偶尔.

所以这似乎是卡的一种行为.我将努力尝试一系列卡SD和MMC.

filesystems embedded sd-card fat

15
推荐指数
1
解决办法
4077
查看次数

xcodebuild 7.3无法启用bitcode

我正在为iOS开发一个嵌入式框架.为了制作通用脂肪(使用模拟器和设备切片),我使用脚本创建了一个聚合目标,该脚本使用xcodebuild和lipo命令生成它,就像许多人一样.

使用XCode 7.x,我必须使用BITCODE_GENERATION_MODE = bitcode添加用户定义的设置才能启用它,但是自上次XCode 7.3发布以来,这已停止工作.

我已经尝试过在互联网上找到的所有内容,例如添加OTHER_CFLAGS="-fembed-bitcode",但任何事情都像以前一样工作......

我在构建日志中看到过这个:

enable_bitcode = NO

无论我做什么,ENABLE_BITCODE都是NO.

自XCode 7.3以来,有没有人尝试使用xcodebuild命令创建一个通用胖框架?

frameworks xcodebuild fat bitcode xcode7.3

13
推荐指数
1
解决办法
2942
查看次数

Windows文件系统中是否有针对每个文件的预先计算的哈希值?

我想通过哈希搜索文件副本.出于性能目的,我想知道NTFS/FAT文件系统中的每个文件是否存在存储的哈希/校验和.如果有,我不必全部计算它们来搜索我的文件.

如果有,如何使用.NET访问它?

如果有帮助,它将是JPEG文件.他们有校验和吗?

.net windows ntfs file fat

10
推荐指数
2
解决办法
4511
查看次数

chown命令返回不允许操作

我正在使用覆盆子pi,并且很难使用以下教程为我安装的外部硬盘驱动器授予权限:

http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/

我现在已经在该外部硬盘驱动器上创建了文件夹,当我执行ls -l命令时,我返回以下内容:

drwxr-xr-x 2 root root 512 Aug 28 23:24 test
Run Code Online (Sandbox Code Playgroud)

它位于: /media/USBHDD1/shares

现在我试图给它所有写入读取和执行权限,甚至将所有者和组更改为pi:pi

但是,chmod 777不起作用 - 它不会返回错误,只是似乎没有效果

当我使用时

sudo chown -R pi:pi test/
Run Code Online (Sandbox Code Playgroud)

我收到了错误

chown: changing ownership of `test/': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

这是一个linux问题,但我认为有背景和使用树莓派知识的人可以帮助我.

所需的额外信息:

当我运行pi@raspberrypi /media $ grep USBHDD1 /etc/mtab 它时返回:

/dev/sda1 /media/USBHDD1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
Run Code Online (Sandbox Code Playgroud)

linux usb-drive fat chown raspberry-pi

10
推荐指数
1
解决办法
4万
查看次数

c# - 如何提取FAT磁盘映像?

我实际上尝试使用DiskUtils提取Fat Disk Image但我没有得到正确的文件名...

我得到"\ TURNER~3\TOPPER~1.P~1"代替"\ TURNEROVER\TOPPERSHEATH.PPTX"

FatFileSystem FatImg = new FatFileSystem(MS); //MS = Fat Image MemoryStream
foreach(DiscDirectoryInfo Di in FatImg.Root.GetDirectories())
{
    foreach(DiscFileInfo Fi in Di.GetFiles())
    {
        Stream St = Fi.OpenRead(); // Correct Stream
        string FName = Fi.Name; //Wrong Name
    }
}
Run Code Online (Sandbox Code Playgroud)

这是因为DiscUtils不支持LFN [长文件名] ...

所以我正在寻找一个完美的库来提取这些文件,我试着自己制作一个...

有没有什么方法可以解析它[可能是DiscUtils]没有FileName错误...

c# diskimage fat

7
推荐指数
1
解决办法
2642
查看次数

SD卡写入限制 - 数据记录

当我的系统(Raspberry Pi)关闭时,我想跟踪/注册,通常是由于突然断电.

我想通过每隔10分钟向SD卡录一次心跳来做到这一点 - 所以每10分钟它就会转到SD并将当前时间/日期写入文件中.从长远来看,这会损害SD吗?

如果只有100k的写入周期,它会在几年内出现坏块.但是我已经读过有防止它的电路 - 它会阻止坏块吗?将日志分布在几个块中会更安全吗?

谢谢

hardware sd-card fat raspberry-pi

7
推荐指数
1
解决办法
1万
查看次数

FAT文件系统上的Python shutil.copy失败(Ubuntu)

问题:使用shutil.copy()将文件复制到Linux中的FAT16挂载文件系统失败(Python 2.7.x).失败是shutil内部错误并且实际上在shutil.chmod上失败,shutil.copy似乎执行.

Shell chmod也失败了,因为FAT不支持权限.

问题:这有什么好的方法吗?我知道我有几个选择,例如:

  1. 使用copyfile - 不理想,因为它需要完整路径,而不仅仅是目标目录,但可行
  2. 执行shell cp以复制文件
  3. 编写自己的复制功能,不会尝试更改文件模式

在Python或FAT挂载选项中有没有办法解决这个问题?我现在通过执行mount -t vfat -o umask = 000/dev/loop0/mnt/foo将文件系统挂载到我的程序中

捕获异常没有帮助,因为异常发生在shutil.copy中,并且shutil.copy()似乎在将目标文件从shutil.chmod()捕获IOException之前删除目标文件,然后将IOException传递给调用函数.

任何想法,或者我应该从1-3选择一个?

汉努

python linux mount shutil fat

6
推荐指数
1
解决办法
756
查看次数

如何检测FAT32数据区中的目录结尾?

我正在使用磁盘文件.由于目录结构中目录的大小为0,我想知道如何检测磁盘上目录文件的结尾.

DIR_Name[0] == 0x00
Run Code Online (Sandbox Code Playgroud)

上面检测目录结尾的方法似乎不可靠.我在wiki上发现FAT32中根目录的大小固定为512个条目,但其他子目录呢.我可能需要使用FAT和群集号遍历目录.

c filesystems directory fat32 fat

6
推荐指数
1
解决办法
929
查看次数