問題タブ [fatfs]

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.

0 投票する
2 に答える
1874 参照

c - FATfs を使用した STMF4 および USB OTG

STM32F407 Discovery Boardインターフェースに使用していますUSB OTG FSCubeMx and Keil開発に使用しています。

まず最初に、PC0 - USB_Power (Discovery Board 用) を有効にしました。USB が適切に動作するように、状態は RESET です。
PA9 - VBUS を GPIO 入力として有効にしました。
私のシステムは 168MHz で動作しています。
MAX_SS(Max Sector size) - 4096 を使用しました (このオプションは Cube Mx で使用できます)。
ホストとして USB を有効にし、CubeMX が提供する FATFS を使用しました。
MSC(Mass Storage Class)を有効化。

コード:

ここで起こっているのは、CSV ファイルを作成していて、ループごとに新しいデータを追加していることです。そして、私はそうすることに本当に成功しています。この特定のコードを使用して、非常に長い (500KB ほど長くない) csv ファイルを作成しました。

しかし、ここで理解できない異常を発見しました。

この部分をコードに追加すると、作成されたファイルはなく、コントロールがこの関数に到達するたびに反復されます。

この関数が作業コードにどのように影響しているかを理解できません。APPLICATION_STARTAPPLICATION_IDLEは 2 つの異なるものだと確信しています。コードのこの部分にコメントすると、ストレージが終わらない限り、すべて問題なくファイルを作成できます。

これが問題であることを理解するのに数時間(2日程度)かかりました。
最小ヒープ サイズ - 0x2000 および最小スタック サイズ - 0x4000 を増やしてみました (このオプションは、cubeMx のリンカー設定で使用できます。ファイルの生成中に、プロジェクト名、場所、およびすべてを指定する場所のみ)

私はアイデアがないので、どんな提案も役に立ちます。