移植FAT文件系统,可以正常读写,但是当写入一段时间(5分钟左右)后,就会有掉数的情况。按照原子的方法,加入了FIFO,在主循环中不断读取FIFO的数据,有数据即写入SD卡,但是效果不明显。通过示波器观察,正常读写一次9KB的数据在10ms以内,但是会偶尔出现2-3s的写入时间(写入SD卡停顿),从而导致数据的丢失。
网上查了SD 卡内部的存储器是 AND Flash。擦写是比较慢的。SD 卡的名义块大小是 512 byte。但实际上,它所用的 Flash 页长度,如果比较新的话,是 8KB 或 16KB。SD 卡接口中的缓存积攒到一个页时,就发生了写入操作(停顿)。当 SD 卡存储容量已经较大时,还可能需要 Flash 块的擦除和合并(Merge),需要更长的时间。
SD卡写入时间不稳定 ,有过类似项目经历的大神说下该怎么解决吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
是啊 原子哥 我也觉得时间过长了。我是8路串口DMA接收,每路的数据量大概是36KB/S,发送端每秒发送9KB的数据,我在每路的DMA接收完成中断中写入FIFO,再在while循环中分8次查询每一路的FIFO值,有即写入SD卡。我在想会不会是我打开关闭文件过于频繁。。另外,这个仿真也没法找原因,单步的话都是正常。
一周热门 更多>