問題タブ [fat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 組み込み C で RTOS を使用してマルチタスク ファイル システムを処理する最良の方法は?
CMX-RTX RTOS と Elm Chan FatFS を使用しています。タスクが整列してファイル システムにヒットするまでは、うまく機能します。
Chan FatFS に精通している方のために、ENTER_FS マクロと LEAVE_FS マクロを変更して、リソースを取得および解放しました。タスクが FS に入ろうとし、リソースが所有されている場合、リソースが解放されるまで待機状態になります。
これが複数のタスクから FS へのアクセスを処理する最良の方法であることに疑問を持ち始めています。FS がエラーを生成し、SD への単純なコマンドでさえ正しくない応答を取得するインスタンスが複数ありました。FS へのアクセスに 1 つのタスクのみを制限すると、これらのエラーは発生しません。
主な質問に移りますが、マルチタスク FS アクセスに対する皆さんの考え/推奨事項は何ですか? たとえば、私が最初に使用したより洗練された方法はありますか? それとも、FS にアクセスするためにさまざまなタスクによってフラグが立てられる単一のタスクでしょうか?
c - ディレクトリ内のファイル数が増えると、Linux の stat64() が遅くなるのはなぜですか?
フォルダー内の 1000 個のファイルに対して実行stat64()
したところ、1 秒もかかりませんでしたが、同じディレクトリに 5000 個のファイルがあると、時間が15s
.
stat64 ()
非線形的に遅くなるのはなぜですか? 私は時間が5秒になると予想していました
EDIT FATファイルシステムを使用してUSBからデータを読み取っています。
xcode - Git diff は、Windows のシンボリック リンクには存在しますが、Mac の FAT ファイル システムには存在しません
GITリポジトリを保存し、MacとWindowsの両方でreopsを使用するFAT外部ディスクがあります。FAT には権限がないため、ローカル ディスクから外部 FAT ディスクにファイルをコピーすると、ファイル モードが変更されたために git diff が作成されました。これを使用してgitオプションで解決しました:
Mac には git diff がありません。つまり、git diff はクリーンです。しかし、Windows で git diff を実行すると、次のように表示されます。
Xcodeを更新した後、Xcode 6を使用してプロジェクトをリンクするときに問題があったことを覚えています。私のフレームワークは、上の画像と同じフレームワークですが、Xcode では認識されず、リンクされていませんでした。そのため、それらを削除して再追加し、問題を解決しました。これが私が違いを持っている理由だと思います。差分の例を次に示します。
だった:
なる:
Mac でこの差分が表示されないのはなぜですか? iOS フレームワーク ファイルに差分があるのはなぜですか? また、差分の意味 (XSym、番号 [0022]、ハッシュコード) は?
編集:FATのシンボリックリンクに何らかの形で接続されているようです: http://www.tucuxi.org/os-x-vfat/ しかし、WindowsとMacで同じレポを同時に使用するという問題を解決する方法がわかりません。
filesystems - FAT16 ファイル システム
FAT に似たファイル システムを構築しています。次の設定があります。
| | MBR | FAT エリア | データエリア |
では、sector_size (バイト単位のセクターのサイズ)、cluster_size (セクター単位のクラスターのサイズ)、および disk_size (クラスター単位のディスクのサイズ) が与えられた場合、どのように FAT 領域の長さを計算できますか?
MBR がクラスター 0 から始まり、FAT 領域がクラスター 1 から始まることはわかっています。しかし、どの情報を使用して FAT 領域の長さを計算できるかわかりません。
また、ルート ディレクトリはデータ エリアの最初のクラスタから始まるので、ルート ディレクトリの長さもどのように計算できますか?
c - FAT BPB とリトル エンディアンの反転
私の CPU はリトル エンディアンです。ドキュメントによると、FAT 仕様のバイト オーダーに準拠しています。では、BS_jmpBoot の有効なアドレス、最初のセクターのバイト 0 ~ 3 を取得しているのに、BPB_BytesPerSec の有効な番号、最初のセクターのバイト 11 ~ 12 を取得していないのはなぜですか。
収量
BS_jmpBoot と OEMName が有効であるのに BPB_BytesPerSec が有効でない理由を突き止めたいと思います。誰かが私を啓発することができれば、私は非常に感謝しています.
ありがとう
編集: 助けてくれてありがとう、すべてがうまくいかなかったのは私のタイプでした. uesp が示唆したように、バイトを unsigned short に書き込むことで機能するようになりましたが (ちょっと)、これが機能しなかった理由を知りたいです:
生成された BPB_BytesPerSec = 0x0000
どのマシンでも書き込んでいるスペースを確認したいので、スペースを割り当てるために char 配列を使用したいと思います。または私はすべきではありませんか?
再度、感謝します!
file-io - パーティションが FAT なのか、NTFS なのか、それ以外なのかを検出する方法は?
パーティションを読み取る低レベルのプログラムを開発しています。ファイルを処理するために適切なライブラリをロードできるように、ファイルが FAT または NTFS またはその他の種類のファイル システム タイプにあるかどうかを知る必要があります。
これは組み込みソフトウェア設計であるため、パーティションへのアクセスを支援する運用システムはありません。そのため、自分でファイルを処理する方法を理解する必要があります。
u-boot - U-Boot: SPL - 未定義の参照 'file_fat_write'
spl_mmc.c で SD カードにファイルを書き込もうとしています。コンパイル中に gcc うめき声: 未定義の参照 'file_fat_write'。理由がわかりません。mmc_load_image_fat() の (元の) コードの直後:
err = file_fat_read(payloadname, (u8 *)spl_image.load_addr, 0);
次のコードを挿入します。
file_fat_write("foo", "foo", 3);
file_fat_read() と同じように include/fat.h でも宣言されているため、gcc がこの関数を認識しないのはなぜですか?
誰かが SPL からファットへの書き込みに成功しましたか?
ベスト、アンドレ