OPPでの電話帳データ転送が遅い原因を調べていましたが、やはりSPIフラッシュへの書き込み(プログラム)に問題がありました。SPIフラッシュでは、消去やプログラムに時間がかかりますが、これらの動作終了を通知する端子がAT25DFには用意されていません。しょうがないので、ソフトでステータスをポーリングしながら待つのですが、ずっとポーリングを続けるのももったいないので、10msの待ちを入れてポーリング間隔を10msにしていたのが原因でした。改めてデータシートを読み直してみると、ページあたりの平均書き込み時間は1ms。そこでポーリング間隔を1msに修正してみると。

3秒台になりました。ざっと倍。毎秒20KBも出ていませんが、頻繁に転送するわけでもないので、この程度で満足して、次の作業に進むことにします。

3秒台になりました。ざっと倍。毎秒20KBも出ていませんが、頻繁に転送するわけでもないので、この程度で満足して、次の作業に進むことにします。