2015年12月22日火曜日

DMAでFatFs









上から
1) ソフトウェアでファイル読み込み
2) DMAでファイル読み込み
3) ソフトウェアでファイル書き込み
4) DMAでファイル書き込み
です。

1がおよそ11msec、2がおよそ3.5msec、3がおよそ22msec、4がおよそ12msec、という感じです。読み込みでは3倍、書き込みでは1.8倍 くらいでしょうか。書き込みではあまり高速化していませんが、1ブロック書き込むごとにビジーが2.7msecほどあって、これが2回あるので、ビジー待機だけで5msec以上になります。このビジー待機はおよそ1回の書き込みごとに1回の待機となりますから、1回に数kbyteを書くのも512byteを書くのも同じ程度の時間になります。つまり書き込みは一度に大量に書くほど早くなります。


ということでSDカードの書き込み動作もできました。あとはマルチブロックR/Wを作れば大容量を転送した場合のデータレートを計測できるようになります。
エラーチェックはほとんどやっていないし、挿抜検出も行っていないので実用には程遠いですが。
それと本来の目的はDMAによるバックグラウンド書き込みをやりたいので、スタート地点にも立っていないといえますが。


ところで、今回検証に使用しているメモリはTranscendの32GB/C10のmicroSDです。すぐ見つかる場所にあったのがこのカードだけなので、他のメーカーとの比較は行っていません。個人的には東芝のカードが早そうな気がするので試したいのですが、何かのついでに購入したあとになります。

0 件のコメント:

コメントを投稿