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

【FatFs】車載外部ストレージ その124【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認識 ← これの2回目/全2回
  • FatFsでファイル書き込みとWindowsでの認識
  • FatFsでFAT32フォーマットしてWindowsで認識
フクさん
フクさん

そして、全体構成

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

あれ?前回FAT認識は出来たと思ったけど。

フクさん
フクさん

volume statusを確認しただけだからね。
リスト表示、ファイルの内容表示もしておいた方が良いだろう。

太郎くん
太郎くん

あ、なるほど。
確かにそうかも。

フクさん
フクさん

じゃ、リスト表示とファイル内容の表示をやってみよう。

リスト表示とファイル内容の表示

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
>fl
D-HS- 2021/04/16 16:04          0  System Volume Information
----A 2021/04/16 16:05      11200  long_file_name_file.txt
----A 2021/04/20 20:18      10000  long_file_name_file_by_fatfs.txt
   2 File(s),      21200 bytes total
   1 Dir(s),    43626496 bytes free
>fo 1 long_file_name_file_by_fatfs.txt
rc=0 FR_OK
>fd
00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000010: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000020: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000030: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000040: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000050: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000060: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
00000070: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
>fc
rc=0 FR_OK
>

リスト表示とファイル内容の表示の結果確認

太郎くん
太郎くん

おー。ばっちり読めてるんじゃない!?

フクさん
フクさん

うん。バッチリだ。

太郎くん
太郎くん

ファイルが2つあるのは以前のディスクイメージの時に作ったやつだね。

ディスクイメージ上でやったとき

フクさん
フクさん

これでファイルシステムの認識はOK。
あとは書き込みができるかってとこだな。

太郎くん
太郎くん

読み出しがばっちりなんだし、書き込みもできるんじゃん?

フクさん
フクさん

OS側に保護されてたりすると失敗するんだよねー。
まぁこれもやってみればわかるけど。

太郎くん
太郎くん

じゃ、次回は書き込みだね。

まとめ

フクさん
フクさん

まとめだよ。

  • FatFsでSDカード内のファイルリスト表示。
    • 「fl 1:」
  • FatFsでSDカード内のファイル内容表示。
    • 「fo 1 long_file_name_file_by_fatfs.txt」
    • 「fd」
    • 「fc」
  • 共に問題無く処理できた。

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

コメント

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