chevron_left

メインカテゴリーを選択しなおす

cancel
KEI
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/02/11

arrow_drop_down
  • 【FatFs】車載外部ストレージ その98【ファイル上シミュレーション⑤】

    BPB(BIOS Parameter Block)について簡単に説明。 重要なパラメータだけ抽出。 FatFsでの具体的な数値を抽出。 セクタ、クラスタ、予約領域、FAT領域の数が分かる。 FAT領域は破損を想定してい冗長性を持たせ多重化されている場合がある。 SDカードの場合は1個なことが多い。

  • 【FatFs】車載外部ストレージ その97【ファイル上シミュレーション④】

    FatFs Win32 ファイル上シミュレーションのディスクイメージを確認。 PhysicalDrive1で生成されている。 MBR(Master Boot Record)を確認 FAT32であることを確認。 BPB(BIOS Parameter Block)が63セクタ目にあることを確認。

  • 【FatFs】車載外部ストレージ その96【ファイル上シミュレーション③】

    FatFs Win32 ファイル上シミュレーション起動。 マウント、フォーマットをして、ファイルを2つ作成。 fjコマンドでカレントディレクトリ指定。 flコマンドでファイルが作られていることを確認。 ファイルの中身も確認。 次回からディスクイメージの中を見ていく。

  • 【FatFs】車載外部ストレージ その95【ファイル上シミュレーション②】

    FatFsのファイル上シミュレーションの話。 diskio.cを改造する。 FatFs Win32のdiskio.cを改造。修正差分確認。 改造の概要説明。物理ドライブ走査数をMAX_DRIVE分に修正して認識できる物理ドライブの数を増加。 物理ドライブ1以上を指定されたらディスクイメージファイルをオープン。

  • 【FatFs】車載外部ストレージ その94【ファイル上シミュレーション①】

    FatFs Win32のソースコード群確認。 「diskio.c」を改造すればディスクイメージをファイルにできそう。 diskio.cはWindowsXP時代のHDDアクセス用にAPIが残っている。 このAPIをうまく流用すると楽かもしれない。 認識する物理ドライブをRAM Diskに加えて10個追加する方針。

  • 【FatFs】車載外部ストレージ その93【メモリ上シミュレーション⑤】

    ファイル読み取りのコマンド呼び出しの流れは書き込み時と一緒。 オープン時のmode指定を読み取りmodeにする。 ddコマンドでディスクイメージをdumpできる。 512byte単位なので若干使い勝手は悪い。 次回からメモリ上でなく、ファイル上にディスクイメージを構築できるようチャレンジ。

  • 【FatFs】車載外部ストレージ その92【メモリ上シミュレーション④】

    flコマンドでルートディレクトリ参照。 引数はpathなので「0:」のような表現になる。 ファイルオープン時にmode指定。 modeはビットアサインになってる。 ファイルへの書き込みコマンド「fw」はお試しようのため、自由に書き込みが出来るコマンドにはなっていない。 対話モードは複数ファイルは開けない。

  • 【FatFs】車載外部ストレージ その91【メモリ上シミュレーション③】

    FatFsでファイルアクセス前の準備の部分を実施。 物理ドライブへのアクセス初期化。 FATにフォーマット。 論理ドライブマウント。 volume status参照。 FATことFile Allocation Tableはクラスタの繋がりを表現している。 これによりファイルサイズの伸縮を実現している。

  • 【FatFs】車載外部ストレージ その90【メモリ上シミュレーション②】

    FatFsと対話するためのコマンド群がある。 「?」でhelpが確認できる。 パラメータ指定に物理ドライブと論理ドライブの指定があるので注意。 ファイルアクセスの前にフォーマットやマウントなどの処理が必要。 上記が済めば、一般的なファイルアクセスAPIが使用できる。

  • 【FatFs】車載外部ストレージ その89【メモリ上シミュレーション①】

    FatFsのビルド環境準備。 Visual Studio 2017 expresを使用。 プロジェクトに設定されているWindows SDKが入っていない場合があるので構成プロパティで設定変更が必要。 FatFs起動。 WindowsXP以前だとPCのHDDに直接アクセスできたらしい。

  • 【FileSystem】車載外部ストレージ その88【FatFs②】

    FatFsをDownloadしてきた。日本語サイトではなく、英語サイトから。FatFs sample projects for various platformsの方を落とす。FatFs sampleの中身確認。様々なマイコン向けのサンプルあり。(stm32,lpc23xx)win32がWindows向けのサンプル。

  • 【FileSystem】車載外部ストレージ その87【FatFs①】

    FAT解説ページの紹介。 FatFsの作者であるChaNさんの解説ページ。 今後の方針。 FatFsをPC上で動作させる。 現状でもメモリ空間にFATを構築することはできるサンプルが存在。 SDカードのディスクイメージを吸い上げて、それに対して読み書きとかできたらいいな。(希望)

  • 【FileSystem】車載外部ストレージ その86【SD応答向上仕様㉟】

    CMD43(Q_MANAGEMENT)について説明。 CommandQueueに登録されてるTaskを全部かTask ID別に停止でいる。 Sequential CQ mode時にTask ID単位の停止は禁止されている。 停止した際の挙動は未規定の未保証。 SDカード関連の話はこれで完了。

  • 【FileSystem】車載外部ストレージ その84【SD応答向上仕様㉝】

    CMD38(ERASE)のFULEについて説明。 完全フォーマットとかで使われる仕様。 CMD38(ERASE)のFULEのサポート有無はSD_STATUSで確認できる。 通常のERASEと違い、全領域ERASEであっても1秒以内に完了する仕様となっている。 間違って使わないように消去範囲を明示する必要はある。

  • 【FileSystem】車載外部ストレージ その83【SD応答向上仕様㉜】

    CMD38(ERASE)について説明。 CMD38のリクエストパラメータは32bit長Erase Function。 Eraseが通常の消去、Discardは管理破棄、FULEは全領域Erase。 busy待ちはAU_SIZE、ERASE_SIZE、ERASE_TIMEOUT、ERASE_OFFSETから算出する。

  • 【FileSystem】車載外部ストレージ その82【SD応答向上仕様㉛】

    CMD32(ERASE_WR_BLK_START)、CMD33(ERASE_WR_BLK_END)について説明。 リクエストパラメータ、レスポンスフォーマットは一緒。32bit長アドレス。 R1フォーマット。 SDUC時はCMD22(ADDRESS_EXTENSION)で5bitの拡張アドレスを指定する。

  • 【FileSystem】車載外部ストレージ その81【SD応答向上仕様㉚】

    消去系コマンドの説明。 CMD32(ERASE_WR_BLK_START)。 CMD33(ERASE_WR_BLK_END)。 CMD38(ERASE)。 消去系コマンドはCQモード時のみ使用可能。 CommandQueueと連携することで効果が得られるためと思われる。

  • 【FileSystem】車載外部ストレージ その80【SD応答向上仕様㉙】

    CMD19(SEND_TUNING_BLOCK)の電気回路的な話。 CMD19を使用して以下を確認するのが目的。 最大オーバーシュート、アンダーシュートの確認。 最大の伝播遅延の確認。 最小の伝播遅延の確認。 電気回路の難しいところはハード屋さんがやってくれるはずなのでサポートを万全にすることを意識する。

  • 【FileSystem】車載外部ストレージ その79【SD応答向上仕様㉘】

    CMD19(SEND_TUNING_BLOCK)はSDカードバスのチューニング 1.8[V]駆動モードの時に利用できる。 1.8[V]駆動モードじゃない場合はillegal command扱い。 カードから送られてくるデータが固定なのはSDカード毎に検査が変わらないようにするため。

  • 【FileSystem】車載外部ストレージ その78【SD応答向上仕様㉗】

    CMD19(SEND_TUNING_BLOCK)の説明。 リクエストとレスポンスは普通。 CMD19は固定データがData Blockとして送られてくる。 Fh、Eh、Dh、Bh、7hが多い。 DAT[3:0]の回線上を見ると何かしら見えてくるかも?

  • 【FileSystem】車載外部ストレージ その77【SD応答向上仕様㉖】

    Task ID関連について情報整理した。 端的に言うとTask ID = Command Queue番号 = (STATUS_TASK_XXのXXの部分)。 まだ語っていないコマンド群あり。 チューニング(CMD19)。 ERASE(CMD32、CMD33、CMD38)。 アボート(CMD43)

  • 【FileSystem】車載外部ストレージ その76【SD応答向上仕様㉕】

    「CMD46(Q_RD_TASK)で読み出し」と「CMD47(Q_WR_TASK)で書き込み」について説明。 共にリクエストパラメータはTask IDのみ。 事前にTask IDに紐づけて情報を渡しているため、Task ID以外の情報は不要。 Task IDの概念がややこしいので整理が必要。

  • 【FileSystem】車載外部ストレージ その75【SD応答向上仕様㉔】

    「CMD13(SEND_STATUS/SEND_TASK_STATUS)でCQの状態を確認」について説明。 CMD13は以前やったものなので、復習。 task statusを参照して、ReadyになってるTaskは次のCMD46(Q_RD_TASK)かCMD47(Q_WR_TASK)を投げて良い。

  • 【FileSystem】車載外部ストレージ その74【SD応答向上仕様㉓】

    CMD44(Q_TASK_INFO_A)とCMD45(Q_TASK_INFO_B)の制約について説明。 2つのコマンドは必ず連続している必要がある。CMD44の後にCMD45以外だとエラー。 CMD44の後にCMD45で初めてタスク登録完了。 複数のCMD44が来た場合は、最後のCMD44が有効。

  • 【FileSystem】車載外部ストレージ その73【SD応答向上仕様㉒】

    CMD45(Q_TASK_INFO_B)で開始Blockアドレスを指定について説明。 リクエストパラメータは32bit長のStart block address。 CMD44(Q_TASK_INFO_A)とCMD45(Q_TASK_INFO_B)は2つで1つの意味になる。 これらのコマンド利用には制約がある。

  • 【FileSystem】車載外部ストレージ その72【SD応答向上仕様㉑】

    CMD44(Q_TASK_INFO_A)のリクエストパラメータのNumber of Blocksについて説明。 CMD44(Q_TASK_INFO_A)のエラーハンドリングについて説明。 SD側のリソース都合のエラーもIllegal Commandとして返ってくる点に注意が必要。

  • 【FileSystem】車載外部ストレージ その71【SD応答向上仕様⑳】

    CMD44(Q_TASK_INFO_A)のリクエストパラメータPriorityは1だったら優先。 Voluntary CQ modeの時のみ有効なパラメータ。 Task IDはCQの数に依存。 CQの数はPerformance Enhancement Registerから取得できる。

  • 【FileSystem】車載外部ストレージ その70【SD応答向上仕様⑲】

    CMD44(Q_TASK_INFO_A)のリクエストパラメータ説明。 リクエストパラメータのDirectionは「読む」か「書く」かの指定。 リクエストパラメータのExtended AddressはSDUCのように2TByteを超える場合に使用。 SDUCの仕様上の最大容量は128Tbyte。

  • 【FileSystem】車載外部ストレージ その69【SD応答向上仕様⑱】

    CQ Modeのステートマシンを見せた。 CQ Modeの基本フローを書き出し。 CQ Modeは読み書き処理の予約ができ、その予約はTask IDで識別される。 Task IDをもって、実際の読み書き結果を取得する。 「CMD49(WRITE_EXTR_SINGLE)でEnable CQ=1にする」は前回出た話。

arrow_drop_down

ブログリーダー」を活用して、KEIさんをフォローしませんか?

ハンドル名
KEIさん
ブログタイトル
シミュレーションの世界に引きこもる部屋
フォロー
シミュレーションの世界に引きこもる部屋

にほんブログ村 カテゴリー一覧

商用