为了愈加清楚的阐明多扇区与单扇区读写的不同,独自开一贴进行具体的阐明。
在FatFs文件体系时,发现为了进步SD卡的读写速度,需求一个多扇区读写的函数。当然许多人都会榜首反应为,用循环调用单扇区读写函数不就能完成吗?如:
uint8 i;
for (i=0; i < count; i++)
{
MMCWriteSingleBlock(); // 单扇区写
MMCReadSingleBolck(); // 单扇区读
}
事实上确实能够这样完成,可是,如果是依照这样的方法完成就没有多扇区读写的优势了。速度是没有任何进步的。所以咱们查阅SD卡技能能够得到如下时序:
先看看SD卡的单扇区与多扇区的读写时序,能够发现,其时序根本一向。仅仅多扇区读函数在读取完成后需求发送一个中止指令。完成函数如下:
检查时序,再关于一下函数十分简单了解,自己就不再细说了。其实SD卡写的函数也是相同的,先看看如下时序:
相同咱们发现单扇区写和多扇区写的时序根本共同,仅仅多扇区写函数多了一个“send stop transmission token ”。即中止令牌,函数如下:
比照以上时序和函数十分简单了解,不在叙说。
通过以上时序和函数的完成咱们知道,多扇区的读写函数比用单扇区读写函数循环履行功率高许多,当然函数里面的一些代码进行恰当的修正将会进一步进步履行功率,在此就不多说,有编程经历的网友都知道怎样更改。
再看看主函数的完成:
试验成果如下:
IMG_3424.JPG(40.69 KB)
2010-5-23 08:10
IMG_3427.JPG(45.85 KB)
2010-5-23 08:10