【FatFs】車載外部ストレージ その123【SDカード直接制御⑥】

【FatFs】車載外部ストレージ その123【SDカード直接制御⑥】 車載外部ストレージ

バックナンバーはこちら。
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で認識
フクさん
フクさん

そして、全体構成

FatFS、FileSystem、DiskIO、DeviceIoControl、読み書き実施、SDHC、WindowsAPIを駆使してSDを直接制御
太郎くん
太郎くん

とりあえず、ビルドして、実行してみれば良いのかな?

フクさん
フクさん

そうだね。
論理ドライブ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カードが配置。
      あとは実際に読み書きをしてみる。(理屈上は動くはず)

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました