2

私の理解では、Windows は非決定論的であり、データ取得に使用すると問題が発生する可能性があります。32 ビット バスとデュアル コアを使用して、インライン asm を使用して Visual Studio 2005 で割り込みを処理したり、少なくともある種のフラグを設定して時間的に一貫性を持たせたりすることは可能ですか?

RTOS (リアルタイム オペレーティング システム) の方向性: カーネル モードでプログラミングを行う Windows CE は、私たちにとっては高すぎるかもしれません。

4

3 に答える 3

2

LabVIEWReal -timeRTXなどのWindows用のリアルタイムソリューションは高価です。スタンドアロンのRTOSは、多くの場合、より安価(または無料)ですが、Windowsの機能も必要な場合は、おそらくそれ以上先に進むことはできません。

コストが重要な場合は、仮想マシンで無料または低コストのRTOSを実行できます。これは機能しますが、RTOSとWindowsの間のハードウェアアクセスに関する協力はなく、直接通信メカニズムもありません(仮想(または実際の)ネットワーク上でTCP/IPを使用できます。

もう1つの方法は、スタンドアロンハードウェア(マイクロコントローラー開発ボードやSBCなど)でリアルタイムのデータ取得を実行し、USBまたはTCP/IPなどを介してWindowsと通信することです。タイミングジッタをマイクロ秒レベル以上に下げる方法が可能です。

于 2011-09-26T13:12:06.893 に答える
2

Windowsにはサードパーティのリアルタイム拡張機能があります。たとえば、 http: //msdn.microsoft.com/en-us/library/ms838340 (v = winembedded.5).aspxを参照してください。

于 2011-09-25T23:56:39.070 に答える
1

Windows は RTOS ではないため、魔法の答えはありません。ただし、システムをより「リアルタイムに使いやすい」ものにするためにできることがいくつかあります。

  1. システム リソースを盗む可能性のあるバックグラウンド プロセスを無効にします。
  2. マルチコア プロセッサを使用してコンテキスト切り替えの影響を軽減する
  3. プログラムがディスク I/O を行う場合は、それを独自のスピンドルに移動します。
  4. プロセスの優先度を調べます。プロセスが High または Realtime として実行されていることを確認します。
  5. プログラムがメモリを管理する方法に注意してください。過度のディスク ページングにつながるようなことは避けてください。
  6. Windows へのリアルタイム拡張を検討してください (既に言及されています)。
  7. 実際の RTOS への移行を検討してください。
  8. システムを (1) マイクロコントローラー/DSP/FPGA 上で実行されるリアルタイム コンポーネントと、(2) Windows PC 上で実行されるユーザー インターフェイス部分の 2 つに分割することを検討してください。
于 2011-09-26T14:23:42.397 に答える