2016-06-25 6 views
2

私はZynqボードでアプリケーションの開発を開始します。私の仕事は基本的に、Microblaze上で動作する既存のアプリケーションをデュアルコアARMに移植することです。PetalinuxとFreeRTOSの定性的比較

私は何についてO.私はこの分野で全く経験がないので、新しいシステムで使うことができます。

1)Petalinux(両方のコアを使用)

2)Petalinux + FreeRTOS(両方のコアを使用)

3)FreeRTOS(使用のみコア: 4つの主なアプローチがあるように思わ)

4)Baremetal(コアのみを使用)

何私のアプリケーションが関係していることは、イーサネットおよび複数のカスタムリンク間のデータの大きな量を移動することですので、それは割り込みやコマンドの多くを提供するために持っています多くのDMAオペライオン。

ベアメタルやFreeRTOSに関して、割り込みサービスでPetalinuxが導入したオーバーヘッドはいくらですか?このような作業のために、OSなしで動作する単一のコアアプリケーション、またはOSのオーバーヘッド(セマフォやミューテックスなどの同期メカニズム)を持つPetalinuxアプリケーションのほうが速いと思いますか?

私は質問が正確ではなく、あまりにも曖昧であることを知っていますが、フィールドでの経験がないため、いくつかの初期ヒントが強く必要です。

ありがとうございます。

答えて

1

あなたが言っているように、これはあまりにも漠然としているので、あなたのアプリケーションに本当に依存しているからです。あなたがLinuxや起動時に利用できるすべての「もの」を必要とする場合は問題ではありません。実際のリアルタイム動作、高速起動時間、シンプルさが必要で、Linux特有のものは一切必要ない場合は、FreeRTOSが最良の選択肢かもしれません。ここには、BSDスタイルソケットインタフェース(Linuxなど)を使用するZynq FreeRTOS TCPプロジェクトがあります。http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCPIP_FAT_Examples_Xilinx_Zynq.html

+0

コメントありがとうございました。私の主な疑問は、オーバーヘッドの大きいpetalinuxアプリケーションと、コアとFreeRTOSソリューションの両方を使用するパフォーマンスのトレードオフです。私が探しているのは、主に割り込みサービスの速度です。 – Alessandro

1

通常、パフォーマンスは大きく異なるべきではありません。 Linuxをうまく最適化するコンパイラでコンパイルすると、ベアメタルに比べて高速になる可能性があります。

ハードリアルタイムLinuxが必要な場合は、あなたには適していません。

あり、アルテラの良いホワイトペーパーがあるが、あまりにもザイリンクスのために収まる必要があります。 whitepaper on real time jitter

+0

非常に便利な答えです。代わりに、カーネルとユーザー空間の間のメモリコピーはどうでしょうか?私は大きくEthernet(TCPを使用)に依存しなければならないので、petalinuxソリューションを使用するとバスの占有量が(かなり)高くなるのではないかと疑問に思っています – Alessandro

+0

ハードウェアの実装には大きな違いがあります。 アームを使用しないでイーサネットIPコアを持つソリューションが存在します(Linuxも同様)。一般的にリアルタイムイーサネットは不可能です(リアルタイム実装がいくつかあります)が、ほとんどの場合、それは必要ではありません。 もう1つのことは、あなたのためのリアルタイム、秒あたりのパケット、1us、1ms、1秒遅れは何ですか? –

+0

私はハードリアルタイムではなく、スループットに興味があります – Alessandro