これについて助けが必要です。
Windows DLL によってエクスポートされた関数が Windows exe から呼び出されると、待ち時間またはコンテキスト シフト時間が発生します。
これをどのように結論付けたかは、ほとんどの場合、DLL エクスポート関数が 1 ミリ秒未満で完了することが見られるということです。しかし、DLL 関数が呼び出されてから戻るまでのタイムスタンプが 600 ミリ秒である場合もあります。これにより、バッファ オーバーフローが発生し、スレーブ側でデータが失われます。実際に私が使っているのは USB から SPI へのコンバーターです。DLL は USB フィードを取り込み、相手側で SPI データを送信します。したがって、この関数が戻るのに最大 600 ミリ秒かかる場合、SPI スレーブのデータが失われます。
DLL の関数のプロファイリングでは、15 ミリ秒以上かかることはありません (ただし、この大きさの SPI 読み取りと書き込みは、15 MHz の SPI 速度を考慮するとかなり大きく、4 バイトを読み取ります)。
SOコンテキストシフトタイムですか?DLL のコードを exe 自体に組み込むことは役に立ちますか? 私が見た唯一の遅延は、この DLL の関数呼び出しの間だけです。アプリケーションが Win 7 のマッチングでより多くの CPU 時間を取得できるように、プリエンプションを行わないようにする方法はありますか。私はビジュアルスタジオを使用しています。
提案してください。これについてあなたの助けに感謝します。
ありがとう、サクル