10

Ada がマルチタスク/マルチスレッドをサポートするオープンソース/無料のクロスコンパイラを利用できるのはどの RTOS ですか?

Ada を使用してプログラムしたい Atmel AT90USB162 チップがあります。私の最初のオプションは、プログラミングに AVR-Ada を使用することでしたが、タスク処理をサポートしていないため、選択の余地がありません (現在、タスク処理がサポートされている方法についての手がかりがありません)。ですから、より強力なアプローチが必要です。QNX を使用することも考えましたが、私のチップ スタンドよりもはるかに複雑です。

AVR チップが uC/OS-II と FreeRTOS をサポートしているという情報を入手しました。FreeRTOS または uC/OS-II 用の無料の Ada クロスコンパイラはありますか?

ありがとう。

4

4 に答える 4

7

私は最初の RTEMS 開発者の 1 人であり、RTEMS プロジェクトが陸軍の研究プログラムから従来のフリー ソフトウェア プロジェクトに移行して以来、そのリーダーを務めてきました。RTEMS を優れたコミュニティと共に高品質の製品として維持するために、私たちは懸命に努力しています。

AVR は非常に小さなターゲットであり、RTEMS ポートは不完全です。RTEMS への移植が完了したとしても、GNAT/RTEMS をサポートするのに十分なアドレス空間を持つ AVR はないと思います。GNAT は、GNU/Linux の場合と同様に各 Ada タスクを POSIX スレッドにマップし、「実際の Ada」環境のランタイム フットプリントは大きくなります。PowerPC の 400K コード範囲の最小限の実行可能ファイルを思い出します。比較すると、RTEMS の最小限の C 実行可能ファイルは、同じターゲット上でおそらく 32 ~ 40k の範囲にあります。

私は AVR-Ada にはあまり詳しくありませんが、完全な Ada 環境を提供する可能性は非常に低いことに同意します。

RTEMS プロジェクトには、GNU ツールの構築とテストに使用するスクリプトがあります。独自の奇妙なターゲット向けのツールの作成に興味がある場合は、良いガイドになる可能性があります。組み込みターゲットの場合、手順はそれほど変わりません。

Marc C.. あなたはハンツビルにいるので、時々一緒に昼食をとらなければなりません。私たちのオフィスは、ブリッジ ストリートのほぼ向かいにあります。多くの RTEMS ユーザーに会うことは本当にありません。:(

于 2012-02-09T21:21:24.330 に答える
7

RTEMSは、少なくとも一部のアーキテクチャでは GNAT をサポートしています。ただし、Atmel AVR アーキテクチャについて言及されているため、これはおそらくアーキテクチャ上の制約 (ほとんどの場合利用可能なメモリ) のためにサポートされていません。RTEMS は非常に成熟しており (Linux が発明される前はオープン ソースでした)、多くのプロジェクトで非常に有用であることが証明されています。

もう 1 つのオプションは、Ada でサポートするMarteOSです。ただし、アーキテクチャのサポートは非​​常に限られています (当初は x86 のみ)。

したがって、プロジェクトの制約に応じて、次の 3 つのオプションがあります。

  1. AVR にとどまり、Ada のタスクをサポートする独自のランタイムを作成します。
  2. タスクの実行時サポートが本当に必要かどうかを再検討してください。また
  3. Ada をサポートする RTOS でサポートされているアーキテクチャにアップグレードします。

(私は、2004 年から 2005 年頃に、ARM9TDMI コアに基づく独自のプロジェクトで、GNAT Ada で RTEMS を初めて使用しました。)

于 2011-10-25T13:29:53.563 に答える
6

さて、私が知っている唯一のAdaコンパイラは、Gnatです。これで、質問は「GnatがタスクでサポートするRTOSは何ですか?」になります。

ACTは、サポートされているプラ​​ットフォームのリストをここに保持します。右側の列は、ほとんどがRTOSまたは疑似RTOSのように見えます。FreeRTOSとuC/OS-IIはリストに含まれていないようです。

リストの一番下にある「ベアボード」の下に、「AVRマイクロコントローラーELF形式(Windowsでホストされている)」というエントリがあります。それはあなたが探しているものかもしれません。ただし、ベアボードポートもタスクをサポートしていない可能性が高いと思います。実際、それについて考えると、それはACTのAVR-Adaの名前かもしれません。ACTに確認する必要があります。

また、より難解なgccターゲットの多くで「無償」のバイナリを見つけるのは非常に難しいことに注意してください。これは、ソースからコンパイラを自分でビルドすることを余儀なくされるか(心の弱い人のためにリモートでさえも)、実際にACTからサポートパッケージを購入して入手する可能性があることを意味します。

于 2011-10-25T13:04:01.693 に答える
3

AVR 移植がより完全なものになることを楽しみにしています! 開発メーリング リストに参加して質問するよう学生に勧めてください。

RTEMS は VxWorks と同じクラスの RTOS です。これにより、小型の 8 ビットおよび (一部の) 16 ビット CPU に適合するように調整する必要がある豊富な機能セットが提供されます。私たちの課題は、目指す「Tiny/RTEMS」機能プロファイルを特定することでした。RTEMS は非常にスケーラブルですが、そのクラスの CPU でどの機能セットが意味を持つかがわからない場合、具体的な目標はありません。ユーザーの要件と目標を定義するのを手伝ってください。

また、すべてのターゲット アーキテクチャに対して無料のシミュレータで実行される BSP を用意したいと考えています。SimulAVR は、積極的に移植作業を行っていたときに使用していたものです。AdaCore は avrtest と呼ばれるものを使用していましたが、より制限がありました。便利ですが制限がありました。

于 2012-02-13T22:28:26.720 に答える