バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
FatFs WinシミュレーションでSDカードに直接制御する話。
今回は「FatFsでFAT32フォーマットしてWindowsで認識」。
実際にFatFsでフォーマットしてみる。
登場人物
博識フクロウのフクさん
![指差しフクロウ](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)
想定実験手順は以下。
今回は「FatFsでFAT32フォーマットしてWindowsで認識」。
- FatFs改造方針を考える
- FatFs改造
- FatFsでSDカードのFAT認識
- FatFsでファイル書き込みとWindowsでの認識
- FatFsでFAT32フォーマットしてWindowsで認識 ← これの2回目/全2回
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そして、全体構成
![FatFS、FileSystem、DiskIO、DeviceIoControl、読み書き実施、SDHC、WindowsAPIを駆使してSDを直接制御](https://www.simulationroom999.com/blog/wp-content/uploads/2021/05/02_FatFs改造方針-1024x576.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
で、今回は実際にFatFsでフォーマットするんだよね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
早速やってみよう。
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
>di 1
rc=0
Sector size = 512
Number of sectors = 30375936
>fm 1 2 4096
The volume will be formatted. Are you sure? (Y/n)=Y
rc=0 FR_OK
>fi 1
rc=0 FR_OK
>fj 1:
rc=0 FR_OK
>fs
FAT type = FAT32
Cluster size = 4096 bytes
Sectors/FAT = 29664
Number of FATs = 1
Number of clusters = 3793264
Volume start sector = 63
FAT start sector = 160
Root DIR start cluster = 2
Data start sector = 29824
No volume label
Volume S/N is 52B3-8956
0 files, 0 bytes.
0 folders.
4210130 KiB total disk space.
15173052 KiB available.
>
FatFsでフォーマット実行結果確認
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
これはフォーマットできた・・・のか?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
お!
WindowsもSDカート認識して、
中はまっさらだ!
(実際にはWindowsが勝手に作るSystem Volume Informationフォルダがあるけど)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
これでFatFsでフォーマットが出来ることが確認できたわけだ。
もう少し試したい事
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
これで、やることはやり切った感じかな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
あー、実はもう一個試したいことがあるんだよねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
え?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁもしかしたらダメかもしれないけど、
パーティション分けをしてみようかなって。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
そんなことできるの???
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
仕様上はできそう。
ま、ダメ元なんでダメだったら無理ってことで。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁやってみるかー。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- FatFsでFAT32フォーマットを実施。
- フォーマットOK。
- WindowsでFAT32が認識されることを確認。
- 問題なく認識。
- パーティション分けも試したくなった。
- ダメもとで実施予定。
バックナンバーはこちら。
コメント