ブログみるアプリ
日本中の好きなブログをすばやく見られます
無料ダウンロード
ブログ村とはIDが異なります
メインカテゴリーを選択しなおす
フォロー
【FatFs】車載外部ストレージ その129【SDカード直接制御⑫】
FatFsパーティション分け用のコード修正。 VolToPart配列を変更するだけ。 VolToPart配列で物理ドライブ1に4つのパーティションを認識できるように設定。 パーティション1~4。 パーティション0は自動検知でパーティション1相当になる。 パーティション分けの時のみ使用。
2021/05/31 20:11
【FatFs】車載外部ストレージ その128【SDカード直接制御⑪】
FatFsでFAT32フォーマットを実施。 フォーマットOK。 WindowsでFAT32が認識されることを確認。 問題なく認識。 パーティション分けも試したくなった。 ダメもとで実施予定。
2021/05/30 20:05
【FatFs】車載外部ストレージ その127【SDカード直接制御⑩】
SDカードをFatFsでフォーマットしてみる。 物理的に壊れることはない。はず。 RAMディスクに対してフォーマットしたことはある。 FatFs対話モードのコマンドは「fm」。 fm <ld#> [<fs type> [<au size> [<align> [<N fats> [<N root>]]]]]
2021/05/29 19:26
【FatFs】車載外部ストレージ その126【SDカード直接制御⑨】
前回FatFsで作成したファイルの確認。 ファイル名:long_file_name_file_by_fatfs_to_sdcard.txt ファイルサイズ:20000byte 内容:'d'を連続で20000文字 Windows上でファイルの確認。 問題無くファイルを確認できた。
2021/05/28 19:25
【FatFs】車載外部ストレージ その125【SDカード直接制御⑧】
FatFs WinシミュレーションでSDカードに直接制御する話。 「FatFsでファイル生成して書き込み、リスト表示、内容表示」してみた。 問題無く動作。 ファイル名OK。 ファイルサイズOK。 書き込まれた内容OK。 あとは、同じようにWindowsからもこのファイルが見えるかを確認する必要がある。
2021/05/27 19:45
【FatFs】車載外部ストレージ その124【SDカード直接制御⑦】
「FatFsでSDカードのFAT認識」の続き。 FatFsでSDカード内のファイルリスト表示。 「fl 1:」 FatFsでSDカード内のファイル内容表示。 「fo 1 long_file_name_file_by_fatfs.txt」 「fd」 「fc」 共に問題無く処理できた。
2021/05/26 21:06
【FatFs】車載外部ストレージ その123【SDカード直接制御⑥】
「FatFsでSDカードのFAT認識」を実施。 マウント「fi 1」及びvolume status「fs 1:」は読み出せた。 VolToPart配列の定義が反映され論理ドライブ1にSDカードが配置。 あとは実際に読み書きをしてみる。(理屈上は動くはず)
2021/05/25 20:31
【FatFs】車載外部ストレージ その122【SDカード直接制御⑤】
FatFs内のVolToPart配列について説明。 マルチボリューム、マルチパーティション想定したパラメータ。 PARTITION構造体について説明。 物理ドライバ番号とパーティション番号が格納される。 これにより、論理ドライブ番号、物理ドライブ番号、パーティション番号が紐づけられる。
2021/05/24 19:38
【FatFs】車載外部ストレージ その121【SDカード直接制御④】
OSから見たマウント解除方法説明。 CreateFileに「\\.\d」を指定すると論理ドライブのハンドルを取得できる。 DeviceIoControlに以下の制御コードを渡すことでOSの論理ドライブアクセスを禁止できる。 FSCTL_LOCK_VOLUME。 FSCTL_DISMOUNT_VOLUME。
2021/05/23 19:55
【FatFs】車載外部ストレージ その120【SDカード直接制御③】
FatFs改造のソースコード差分提示。 次回から以下に注力する形で開設予定。 dismount_volume関数。 DeviceIoControlがポイントとなる。 main.cのVolToPart配列。 論理ドライブと物理ドライブ関連。
2021/05/22 19:57
【FatFs】車載外部ストレージ その119【SDカード直接制御②】
FatFs改造方針。 DeviceIoControl関数を使用する。 余談として、ファイルアクセス以外にデバイスアクセスにもReadFile、WriteFileを使用する。 DeviceIoControlの制御コードにFileSystem関連のものがあるので、これでリムーバブルディスクの直接制御はできそう。
2021/05/21 20:02
【FatFs】車載外部ストレージ その118【SDカード直接制御①】
Windows上からSDカード直接制御に意味があるのか?特にない。面白そうだからやる。 方針を提示。まずは改造。 その後、FatFs-Windows間で相互運用できるかを確認。 一応OS側で保護されているが、HDDにアクセスしないように気を付ける。リムーバブルディスクにしかアクセスできないはず。
2021/05/20 20:46
【FatFs】車載外部ストレージ その117【SDカードディスクイメージ⑦】
Windows上でSDカードに作成されたテキストファイルを確認。 ファイルの存在を確認OK。 ファイルの内容を確認OK。 ディスク関連はブラックボックスのまま使用してしまうことが多いが、概念だけでも知っておくといろいろな確認手段が得られる。 今後の方針としてWindows上からSD直接制御。
2021/05/19 19:52
【FatFs】車載外部ストレージ その116【SDカードディスクイメージ⑥】
LinuxでディスクイメージをSDカードへ書き込み。 ddコマンドで書き込み。 Windowsで確認前にLinuxでSDカード確認してみた。 ファイルが作成されていることを確認。 サイズが正しいことを確認。 ファイルの中身が正しいことを確認。 viで「:%!xxd」を実行するとバイナリモード。
2021/05/18 19:59
【FatFs】車載外部ストレージ その115【SDカードディスクイメージ⑤】
FatFsで適当なテキストファイルを作成。 なんとなくやばそうだが、問題ない。たぶん。 事前にリスト確認。 「long_file_name_file_by_fatfs.txt」を作成。 リストでファイルが生成されていることを確認。 ファイルを読み出して書き込まれているデータが正しいことを確認。
2021/05/17 19:55
【FatFs】車載外部ストレージ その114【SDカードディスクイメージ④】
Windowsで作成したテキストファイルの有無をFatFsで確認。 「long_file_name_file.txt」があることが確認。 サイズもあってる。 Windowsで作成したテキストファイルの中身をFatFsで確認。 「0123456789」の繰り替しのテキストファイルなことを確認。
2021/05/16 20:03
【FatFs】車載外部ストレージ その113【SDカードディスクイメージ③】
ディスクイメージをWindows側に持ってきてFatFsシミュレータのプロジェクトフォルダへコピー。 PhysicalDrive2というファイル名はFatFsシミュレータがDisk2と認識するルールに則った名称。 FatFsシミュレータでディスクイメージ認識はOK。 fsコマンドで確認できた。
2021/05/15 19:46
【FatFs】車載外部ストレージ その112【SDカードディスクイメージ②】
WindowsでSDカードをFATでフォーマット。 FAT12/FAT16/FAT32が選択できないのでFATを指定するのみ。 領域サイズで自動選択。 テキストファイルをSDカード内に作成。 LinuxでSDカードのディスクイメージ作成。 dfコマンドでデバイス確認。 ddコマンドでディスクイメージ作成。
2021/05/14 19:43
【FatFs】車載外部ストレージ その111【SDカードディスクイメージ①】
SDイメージシミュレーションの手順説明。 その手順及び構成を図解。 ポイントはLinuxのddコマンドでSDカードのディスクイメージの吸い上げと書き戻し。 VMware Workstation PlayerとUbuntuが必要。 今回はWinodws PC前提だが他のLinux環境でも問題無い。
2021/05/13 19:49
【FatFs】車載外部ストレージ その110【ファイル上シミュレーション⑰】
扱ったのはFAT32。 他にFAT12、FAT16があるが、違いはFAT領域のクラスタサイズとディレクトエントリ構造体。 基本的な追い方は一緒。 組み込み機器ではPCで出来て当たり前がとても困難。 「車輪の再発明」という揶揄が適切ではない状況の方が多い。 日ごろから「出来て当たり前」の仕組みを考えると吉。
2021/05/12 21:23
【FatFs】車載外部ストレージ その109【ファイル上シミュレーション⑯】
フォルダの中のディレクトリエントリの構成を図解。 カレントディレクトリ、親ディレクトリ、LFN→SFNの構成。 ファイルの実体が配置されてるクラスタ確認。 ここの考え方は通常の「8.3形式」のファイルと同一。 該当クラスタのFAT領域に於けるクラスタチェーンを確認。
2021/05/11 19:39
【FatFs】車載外部ストレージ その108【ファイル上シミュレーション⑮】
ディレクトリエントリが指し示すフォルダの中のデータはフォルダ内のディレクトリエントリ。 つまり入れ子になっている。 ルートディレクトリ以外のディレクトリは「.」と「..」の名称のディレクトリが存在。 「.」がカレントディレクトリ。 「..」が親ディレクトリ。 相対PATH用の仕様。
2021/05/10 19:23
【FatFs】車載外部ストレージ その107【ファイル上シミュレーション⑭】
ロングファイルネームなフォルダやファイルのディレクトリエントリの関係性を確認。 LFNが先に現れ、最後にSFN。 VFAT未対応FileSystemはLFNをスキップしてSFNだけを参照している。 SFNにフォルダ内のディレクトリエントリの先頭クラスタが埋まっている。
2021/05/09 20:23
【FatFs】車載外部ストレージ その106【ファイル上シミュレーション⑬】
ロングファイルネームなフォルダやファイルのディスクイメージ上で確認を試みる。 まずはルートディレクトリエントリから。 存在するファイルとフォルダが3つのはずだが、ディレクトリエントリとしては5つ存在。 5つのうち3つがロングファイルネーム仕様を満たす仕掛け。 ファイル名もasciiからUnicodeになってる。
2021/05/08 20:02
【FatFs】車載外部ストレージ その105【ファイル上シミュレーション⑫】
FatFsのVFAT仕様確認方法。 とりえあず、ロングファイルネームなフォルダとファイルを作成してディスクイメージの中身を確認する方針。 FatFs対話モードでフォルダとファイルを作成。 「long_file_name_folder」作って、その中に「long_file_name_file.txt」を作成。
2021/05/07 19:50
【FatFs】車載外部ストレージ その104【ファイル上シミュレーション⑪】
FATは基本「8.3形式」というファイル命名規則になっている。 ファイル名8文字、拡張子3文字。 VFAT仕様によりその制限を突破している。 VFAT未対応FileSystemからは「long_file_name.txt」が「long_f~1.txt」のような形で見える用にして互換性を確保している。
2021/05/06 20:03
【FatFs】車載外部ストレージ その103【ファイル上シミュレーション⑩】
FAT領域の位置確認。 FAT領域参照。 FAT32の場合、32bit長データを1要素としてクラスタチェーンを表現している。 FAT16の場合は16bit長データを1要素としている。 基本的には該当クラスタがどのクラスタ番号に繋がるかの数値が埋まっている。 0x0fffffffがチェーン終端となる。
2021/05/05 21:25
【FatFs】車載外部ストレージ その102【ファイル上シミュレーション⑨】
test.txtの内容のクラスタ位置を確認。 ファイルの中身を確認。 指定した7000[byte]のデータが並んでいたのを確認。 しかし、7000[byte]が並んでいるのたまたま。クラスタの空き方によっては並ぶ保証は無い。 FAT領域のクラスタチェーンでクラスタの関係性を表現している。
2021/05/04 22:11
【FatFs】車載外部ストレージ その101【ファイル上シミュレーション⑧】
ルートディレクトリエントリを確認。 ディレクトリエントリが並んでおり、作成したtest.txt、test2.txtが存在。 ファイルの中身の情報はDIR_FstClusHIとDIR_FstClusLOで指定されたクラスタから特定。 BPB_RootClusでルートディレクトリエントリのクラスタ番号から特定する。
2021/05/03 22:28
【FatFs】車載外部ストレージ その100【ファイル上シミュレーション⑦】
ルートディレクトリエントリを直接特定できるパラメータはない。 以下パラメータが必要。 PT_System、BPB_RsvdSecCnt、BPB_FATSz32、BPB_NumFATs。 MBR、BPB、予約領域、FAT領域を積み上げていくとルートディレクトリエントリの位置が分かる。
2021/05/02 21:11
【FatFs】車載外部ストレージ その99【ファイル上シミュレーション⑥】
BPB(BIOS Parameter Block)のFAT32におけるオフセット36以降のフィールドの説明。 FAT12/16とFAT32で構成が違うが、ここではFAT32で説明。 重要パラメータはBPB_FATSz32、BPB_RootClus。 上記が分かるとルートディレクトリエントリの位置が分かる。
2021/05/01 20:05
2021年5月 (1件〜100件)
「ブログリーダー」を活用して、KEIさんをフォローしませんか?