バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカード、FatFsとやってきたシリーズの振り返りとまとめ。
とりあえず最終回。
NAND-FlashRom、SDカード(SPIモード、SDモード)、FAT FileSysteのシミュレーションなどをやってきた。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
振り返り
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
というわけで、やりたいことはあらかたやり切ったってところだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、今回含めて133回かー。
長かったなー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
このシリーズでやったことは大体以下だったね。
- 不揮発性メモリ
- SD初期化(SPIモード)
- SD初期化(SDモード)
- SD読み書き(SPIモード)
- SD読み書き(SDモード)
- SD応答向上仕様
- FatFs メモリ上シミュレーション
- FatFs ファイル上シミュレーション
- SDカードディスクイメージ
- SDカード直接制御
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
不揮発性メモリに始まり、
SDカード関連の物理層の話や大量のコマンドの話。
さらに性能を最大限に引き出すための手法。
それが終わったかと思ったら、まだ全然目的に到達してないくて、
FatFsのシミュレーション。
シミュレーションもメモリ上だけでなくファイル上でやって、
そのファイルをバイナリエディタで直接参照してFAT32仕様を追っかけて・・・。
最後はSDカードを直接読み書きしたり、パーティションきっちゃったり。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
SDカードとFileSystemでシリーズを分けた方が良かったかもねー。
それぞれが結構なボリュームあったし。
感想とか
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/はてなフクロウ.png)
感想としてはどう?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
まぁいままでも何回か言ってたことだけど、
当たり前のことの裏側には結構大変な仕組みがあるんだなーって思ったねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
あと、SDカード仕様自体はNAND-FlashRomを抽象化してくれるんだけど、
性能を最大限に引き出そうと思うとやっぱりNAND-FlashRomの性質を考慮しないといけないってもの意外だったな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁNAND-FlashRomへのアクセス速度と汎用性はトレードオフなところあるからねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
FatFsのシミュレーションは新鮮だったかな。
ファイル操作とかはよくやるけど、FileSystemを意識してのファイル操作なんて考えたこともなかったから、
これこそ裏方の凄さってを感じた。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
FileSystemは「利用者から如何に見えないように動作するか」がポイントだから
普通は意識しないだろう。
今回は、それを意識しないと動作しないんで意識せざるを得ない状況になったってところだね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
最後にやったFatFsでSDカード直接制御。
あんまり意味ないってことだったけど、
WindowsからFATでフォーマットする際に自由に選べなったじゃん?
実際はFAT12/16/32とexFATがあって、
あと、それぞれAllocation Unitとかもあるけど、そこらへんが選べないんだよね。
FatFsだと自由に選べるから、Windowsに頼らないフォーマットをしたいってことであればかなり有効なのかなって思った。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/びっくりフクロウ.png)
なるほど!
言われてみるとそうだね。
WindowsではなくLinuxからフォーマットって手もあるけど、
Windowsから簡単に目的のフォーマットをする場合などは今回の手法がかなり使えるかもしれないね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
元々はプロトタイプECUで大容量の記憶デバイスが必要ってことで始まったけど、
なんとかなりそうな気はしてきたよー。
まぁ応答性とかはトレードオフなところはあるから、適時調整は入りそうだけど。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
記憶デバイスのWindowsとの相互運用性を考えるとFAT仕様は便利だからねー。
安定的に動作し始めたらデバッグ用途にも使えると思うよー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
確かに!
よし!
いろいろ試してみるよー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
頑張れー。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- 今回が本シリーズの最終回。
- SDカード、FileSystemのそれぞれだけでも結構なボリュームだった。
- SDカード直接制御のフォーマットはWindows上からのフォーマットの自由さを得るのに有効な場合がある。
- FileSystemはWindows等の他のシステムとの相互運用性確保に便利。
バックナンバーはこちら。
コメント