arm开发板断电后重启,fat32格式的tf卡变只读,有什么方法避免? 10C

arm开发板跑的是linux系统,支持tf卡热拔插。重启断电后低概率出现tf卡变为read-only,执行mount -o rw,remount /mnt/sdcard后正常了。出错原因应该是断电导致fat32格式的tf卡的簇出错了,加上linux的保护机制使其只读。软件或者硬件上有什么方法避免???

5个回答

这是硬件原理造成的,SD卡或TF卡如果突然掉电时还在写数据,是很不安全的。最根本的解决办法是在供电电路上加一个大电容,延长掉电时间,存储卡尽快读完数据。软件上尽量避免长时间写数据。

qq_25585887
TWLI 谢谢你的回答,之前看到过加个大电容的方法,但是没想通,供电电路上加个大电容不是等效于晚点慢慢断电吗?没什么区别吧,电容还能系统供电,应用还在跑,除非检测断电推出app?点解?
大约 2 年之前 回复

可以用支持容错的 exfat代替 fat32

weixin_42645732
无爱的丘比特 把格式转化下然后再加一个备用开发板电池就尽量避免了
大约 2 年之前 回复
qq_25585887
TWLI 同时也感谢你的回答。Sure?linux已经很好支持fat32,exfat需要移植。很多产品也是在用fat32?理应有比较好的处理。
大约 2 年之前 回复

加上大电容以后,可以延长供电时间,让程序有机会做一些掉电之前的处理,前提是在加上大电容以后,还要配合掉电检测电路才能实现刚才说的做掉电之前的处理程序。这是配合的设计。

用带自校验的文件系统,比如ext4,这个加载时会自检并恢复。

使用fsck_modos进行修复。因为fat文件系统的特性,异常掉电是有一定概率会损坏文件系统的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问