バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
FatFs WinシミュレーションでSDカードに直接制御する話。
今回は「FatFsでSDカードのFAT認識」させてみる。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
実験手順
フクさん
想定実験手順は以下。
今回は「FatFsでSDカードのFAT認識」。
- FatFs改造方針を考える
- FatFs改造
- FatFsでSDカードのFAT認識 ← これの1回目/全2回
- FatFsでファイル書き込みとWindowsでの認識
- FatFsでFAT32フォーマットしてWindowsで認識
フクさん
そして、全体構成
太郎くん
とりあえず、ビルドして、実行してみれば良いのかな?
フクさん
そうだね。
論理ドライブ1として認識するはずだ。
太郎くん
よし。実行してみる。
FatFs対話モード実行
FatFs module test monitor (LFN, CP932, UTF-8)
PD#0 <== RAM Disk (135MB, 512 bytes * 276480 sectors)
PD#1 <== \\.\PhysicalDrive1 (14832MB, 512 bytes * 30375936 sectors)
PD#2 <== \\.\PhysicalDrive2 (Not Ready)
PD#3 <== \\.\PhysicalDrive3 (Not Ready)
PD#4 <== PhysicalDrive4 (Not Ready)
PD#5 <== PhysicalDrive5 (Not Ready)
PD#6 <== PhysicalDrive6 (Not Ready)
PD#7 <== PhysicalDrive7 (Not Ready)
PD#8 <== PhysicalDrive8 (Not Ready)
PD#9 <== PhysicalDrive9 (Not Ready)
Multiple partition is enabled. Logical drives are associated with the patitions as follows:
"0:" ==> PT#1 in PD#0
"1:" ==> PD#1
"2:" ==> PD#2
"3:" ==> PD#3
"4:" ==> PD#4
"5:" ==> PD#5
"6:" ==> PD#0
"7:" ==> PD#0
>fi 1
rc=0 FR_OK
>fj 1:
rc=0 FR_OK
>fs
FAT type = FAT16
Cluster size = 4096 bytes
Root DIR entries = 512
Sectors/FAT = 42
Number of FATs = 2
Number of clusters = 10660
Volume start sector = 8192
FAT start sector = 8196
Root DIR start sector = 8280
Data start sector = 8312
Volume name is BOOT
Volume S/N is CCB4-A9D5
4 files, 21288 bytes.
1 folders.
4210130 KiB total disk space.
42604 KiB available.
>
FatFs対話モード実行結果確認
太郎くん
うん。問題なく動いてる感じだねー。
太郎くん
以前やったディスクイメージ上でやった結果と一緒かな?
フクさん
まぁファイル数とかの状況が変わってるけど大体一緒だね。
ディスクイメージ上でやったとき
太郎くん
これはあっさり動作する感じか。
フクさん
理屈上は動作するはずだねー。たぶん。
太郎くん
まぁやってみればいいか。
まとめ
フクさん
まとめだよ。
- 「FatFsでSDカードのFAT認識」を実施。
- マウント「fi 1」及びvolume status「fs 1:」は読み出せた。
- VolToPart配列の定義が反映され論理ドライブ1にSDカードが配置。
あとは実際に読み書きをしてみる。(理屈上は動くはず)
- VolToPart配列の定義が反映され論理ドライブ1にSDカードが配置。
バックナンバーはこちら。
コメント