プラットフォーム: ARM9
プログラミング言語 C
要件 - プレーン C、外部ライブラリなし、ブーストなし。
OS - REX RTOS
組み込みプラットフォームで 2 つのスレッドを実行しています -
- 1 つは、ハードウェアとのすべての通信とデータ転送を処理するドライバー レベルです。
- 2 番目のスレッドは、ハードウェアとの間のデータを使用するアプリケーションを実行します。
アプリケーション スレッドをドライバー スレッドから切り離すことで、ハードウェアとハードウェア ドライバー スレッドの実装を変更できますが、アプリケーション スレッドへの影響は最小限に抑えることができます。
私の課題は、ハードウェアから受信したデータが動的である可能性があることです。つまり、実行時に決定されるため、アプリケーションスレッドがハードウェアへの/からの各要求に対してどれだけのメモリを確保する必要があるかが事前にわかりません。
私は、ドライバー スレッドがアプリケーション スレッドに、読み取るデータが非常に多いことを通知できると考えていました。次に、アプリケーション スレッドはメモリを割り当て、ドライバー スレッドにデータの読み取りを要求します。それに応じてデータを処理するのは、アプリケーション スレッド次第です。このように、すべてのメモリ管理はアプリケーション スレッド内で行われます。