バックナンバーはこちら。
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カードに作成されたテキストファイルを確認
リスト表示で「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」を作成。
- リストでファイルが生成されていることを確認。
- ファイルを読み出して書き込まれているデータが正しいことを確認。
バックナンバーはこちら。
コメント