2016-12-06 10 views
-1

私は誰かの家にあるスマートサーモスタット用のファームウェアを開発しています。現在の実装は、単一のコアプロセッサ上で実行されるマルチスレッドソリューションです(Cortex-Mを熟知しているのでそれを投げ捨てることができます)。そして、私はいくつかのシェルフRTOSを使用しています。シングルコアとマルチコアプロセッサのファームウェア開発

私がそのプロジェクトを行い、デュアル/マルチコアプロセッサーに移動/移植すると、どのように機能しますか? RTOSは各コアでどのスレッドを実行する必要があり、RTOSはそこからすべてを管理していますか?マルチコア環境でより効率的に動作するように、各スレッドで実行する必要のあるリファクタリングがある程度ありますか?または、RTOSはREADY状態のスレッドを取り出し、空き時間のあるコアでそのタスクを実行しますか?

+1

回答できません。確かに、それはあなたが使用するスケジューラ( "RTOS")のサポートと機能に完全に依存します。あなたが考える "RTOS"のドキュメントを調べましたか? – JimmyB

+1

さらに、「スマートサーモスタット」アプリケーションは、最初にマルチコアの使用を正当化できるようには聞こえません。 – JimmyB

+0

@JimmyBマルチコアシステムオンチップの価格と可用性を考えると、私は、必要とされる「正当化」の方法があまりないと思います。あなたは10ドルで1つを得ることができます、DRAMが含まれています。サーモスタットはラズベリーパイのようなプラットフォームで走っていると考えてください。 –

答えて

0

一般的に言えば、マルチコアマシンで実行しているということは重要ではありません。 OSがスレッドを利用可能なコアにスケジュール設定するのは、そのためです。もちろん、あなたのRTOSはマルチコアプラットフォームをサポートする必要があります!

あなたのコードが並行性を適切に処理しない場合、特にメモリバリアを適切に処理できない場合は、すべてが1つのコアで連続して実行されているという事実によって隠されたバグが発生する可能性があります。一度あなたがミックスに第2のコアを投げると、そのようなバグが浮上する傾向がありますが、通常は重要なデモ中またはリリース後に最初に行います。そのため、コードを設計して、並列処理でバグフリーになるようにしてください。

関連する問題