11

私はFreeRTOSを使用していくつかのデバイスのファームウェアを作成した会社で働いています。最近、私たちの新機能の要求は、ファームウェアエンジニアができる仕事の量を超えていますが、今のところ、新しい人を雇う余裕はありません。小さな変更を加える場合でも、ファームウェア担当者は非常に低いレベルで変更を加える必要があります。

私は、FreeRTOS用のある種のインタプリタ言語プロジェクトを探していました。これにより、より高いレベルで新しい機能を実装できるようになります。理想的には、すべての機能を自分で実装するのではなく、デバイスを一般的なコンピューターに近づけてドライバーを作成できるようにしたいと考えています。

Java、Python、または同様のバイトコードを解釈するFreeRTOSプロジェクトはありますか?

私はグーグルを見てきましたが、私自身はファームウェアエンジニアではないので、正しいキーワードを探しているかどうかわかりません。

みんな、ありがとう

4

4 に答える 4

6

コードが移植可能である場合、RTOS、またはOSでさえここではそれほど重要ではないと思います。入出力スキームによっては、おそらく少し移植する必要があります。

埋め込み可能なスクリプト言語に関して、私がよく知っている2つはLUAPAWNです。

組み込みシステムに移植されたPythonや他のそのような言語のバージョンがあると思いますが、それらは組み込みLinuxの種類である傾向があります。プラットフォームによっては(8K ROMを搭載した小さなMCUなのか、組み込みPCなのかはわかりません)、オプションになる可能性があります。

于 2010-04-07T01:16:50.083 に答える
2

FreeRTOSやその他のマイクロコントローラースレッドライブラリ(e2eコミュニティでは「RTOS」と大まかに呼ばれます)を使用するために「作成」されたインタプリタ言語はありません。

ただし、(a)Cで記述され、(b)マイクロコントローラーに組み込むのに十分小さい組み込みシステムで使用した経験のある言語には、次のものがあります。

  • LUA(ほとんどすべて、一部のPICにも適しています)
  • Python(とにかく、1MB以上のRAMを備えたほとんどのARMアーキテクチャに適しています)

私はそれを直接経験したことはありませんが、RubyはPythonと同じくらい簡単に埋め込むことができます。

于 2010-06-21T18:36:31.813 に答える
1

FreeRTOS固有のインタープリターを探す代わりに、特定のマイクロコントローラー、または一般的なマイクロコントローラー用のインタープリターを探すことをお勧めします。それらをFreeRTOSとインターフェースしたり、インタープリターをタスクに変えたりすることが可能かもしれません。

FreeRTOS(pic32)でLuaに行こうとしている人がいるようです。

于 2012-04-03T11:09:16.660 に答える
0

あなたの質問は、最終的には、低レベルのRTOSメカニズムよりも抽象化のレベルを上げる方法を見つけることに帰着すると思います。インタプリタ言語はCよりもいくらか高いレベルの抽象化で機能することはおそらく真実ですが、イベント駆動型フレームワークとステートマシンに基づくメソッドを適用することで、それよりもはるかに優れた結果を得ることができます。このようなイベント駆動型フレームワークは数十年前から存在しており、あらゆる種類のドメインの無数の組み込みシステムで実証されています。今日、コード生成が可能な組み込みシステム(Rational-Rose RT、Rhapsodyなど)のほぼすべてのモデリングツールには、このようなステートマシンフレームワークのバリアントが含まれています。

ただし、イベント駆動型のステートマシンフレームワークは、大きなツールがなくても使用できます。たとえば、QPステートマシンフレームワーク(state-machine.com)は、従来のRTOSで実行できるすべてのことを、より効率的に実行するだけでなく、RTOSでは実行できない多くのことを実行します。

ステートマシンで最新のイベント駆動型プログラミングパラダイムを使い始めると、問題は変化します。15レベルの複雑なif-elseステートメントに悩まされることはなくなり、セマフォやその他の低レベルのRTOSメカニズムについて心配する必要がなくなります。代わりに、ステートマシンとそれらの間で交換されるイベントについてより高いレベルの抽象化で考え始めるでしょう。この飛躍的な進歩を体験した後は、生のRTOSとスパゲッティコードに戻る必要はありません。

于 2010-04-08T20:22:05.977 に答える