我有一张通过 SPI 模式连接到微控制器的 SD 卡(或 SDHC 卡)。我正在使用Chan 的 FAT库。我向它写入来自 8192 字节缓冲区的数据(由于 RAM 不足,缓冲区不能更大)。这种写入是定期执行的。通常,在缓冲区再次填充之前,写入已准备好。但是偶尔(也取决于缓冲区填充速度)会出现问题,并且在必须写入新缓冲区之前写入尚未准备好,从而导致数据丢失。
顺便说一句,扇区大小也设置为 8192 字节,但其他似乎没有影响。
可以用范围监控写作,并表明有时写作需要很长时间。例如,比平时长四倍。
这里发生了什么,也许我该如何防止这种情况发生?这与读取、修改、写入序列有关吗?我需要外部 RAM 缓冲区吗?还是有更好的方法来提高性能?