【FatFs】車載外部ストレージ その115【SDカードディスクイメージ⑤】

【FatFs】車載外部ストレージ その115【SDカードディスクイメージ⑤】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDイメージをPCとFatFsで認識&編集をするシミュレーションの話。
今回は「FatFsで適当なテキストファイルを作成」

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

シミュレーション手順

フクさん
フクさん

手順はこんな感じ。
前回は「Windowsで作成したテキストファイルをFatFsで確認」まで確認。

  • WindowsでSDカードをFATでフォーマット
  • 適当なテキストファイルをSDカード内に作成
  • LinuxでSDカードのディスクイメージ作成
  • そのディスクイメージをFatFsシミュレータで読み込み
  • Windowsで作成したテキストファイルをFatFsで確認
  • FatFsで適当なテキストファイルを作成
  • LinuxでディスクイメージをSDカードへ書き込み
  • Windows上でSDカードに作成されたテキストファイルを確認
SDイメージシミュレーション構成、VMware、Ubuntu、SDHC、ddコマンドdump、ddコマンドで書き戻し、EXE、FatFS、読み書き実施、DiskImage
太郎くん
太郎くん

リスト表示で「long_file_name_file.txt」が存在しているのと、
そのフィアルサイズがあっているのを確認したね。
ファイルの中身のデータもあってた。

FatFsで適当なテキストファイルを作成・・・するが本当に大丈夫なのか?

フクさん
フクさん

で、今回はこのディスクイメージに対して
FatFsでファイルを追加する。

太郎くん
太郎くん

だ、大丈夫なの?
ディスクイメージを壊しちゃったりしない?

フクさん
フクさん

問題無いはずだけどねー。
まぁディスクイメージが壊れたからと言って、物理的に何かが壊れるわけじゃないし、サクサクっとやってしまおう。

太郎くん
太郎くん

(うーん、なんかスゲーな。)

FatFsで適当なテキストファイルを作成

フクさん
フクさん

ざっとやってみた。

FatFs module test monitor (LFN, CP932, UTF-8)

PD#0 <== RAM Disk (135MB, 512 bytes * 276480 sectors)
PD#1 <== PhysicalDrive1 (Not Ready)
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 disabled.
Each logical drive is associated with the same physical drive number.

>fi 2
rc=0 FR_OK
>fj 2:
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
   1 File(s),      11200 bytes total
   1 Dir(s),    43638784 bytes free
>fo 6 long_file_name_file_by_fatfs.txt
rc=0 FR_OK
>fw 10000 0x61
10000 bytes written.
>fc
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 16
00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
>fc
rc=0 FR_OK
>

動作状況確認

太郎くん
太郎くん

最初、リスト表示では
「System Volume Information」
「long_file_name_file.txt」
があるだけのところに
「long_file_name_file_by_fatfs.txt」
を作成&書き込み属性でopen。

太郎くん
太郎くん

「long_file_name_file_by_fatfs.txt」
に10000[byte]の0x61こと’a’を書き込み。
そしてclose

太郎くん
太郎くん

再度リスト表示すると
「long_file_name_file_by_fatfs.txt」
が作られていて、サイズも10000[byte]なので合ってる。

太郎くん
太郎くん

念のため、「long_file_name_file_by_fatfs.txt」を読み取ろモードでopenして、中身を確認したところ、ちゃんと’a’が埋まってる。
というわけでFatFsとしてはちゃんと動作してるってところか。

フクさん
フクさん

大正解。

太郎くん
太郎くん

この後の手順としては、またSDカードにディスクイメージを書き戻す・・・?

太郎くん
太郎くん

うーん、大丈夫か―?

フクさん
フクさん

まぁ大丈夫でしょー。たぶん。

まとめ

フクさん
フクさん

まとめだよ。

  • FatFsで適当なテキストファイルを作成。
    • なんとなくやばそうだが、問題ない。たぶん。
  • 事前にリスト確認。
  • 「long_file_name_file_by_fatfs.txt」を作成。
  • リストでファイルが生成されていることを確認。
  • ファイルを読み出して書き込まれているデータが正しいことを確認。

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

コメント

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