さまざまなハードウェア(avr、arm7、tms55xx…)およびさまざまなrtose(freeRTOS、rtx、dsp / bios)用の組み込みアプリケーションを作成しています。そして、それらの毎秒は、PCまたは別のデジタルデバイスと通信する必要があります。相互作用ロジックが非常に高度な場合があります。ですから、私は一般的な方法論(ステートマシンプログラミングスタイルなど)、プロトコル仕様、またはライブラリに興味があり、そのようなものの開発を簡素化することができます。
5 に答える
私は、データ受け渡しとRPCメカニズムの両方のための組み込みシステム上のgoogleのプロトコルバッファに非常に満足しています。送信されるデータはバイナリエンコードされ、送信されるデータのデコードに必要な処理は最小限であるため、XMLベースのシステムよりもかなり軽量です。これは、リンクの埋め込み側でのCPU使用率に大きなプラスです。
さまざまな言語用のライブラリがすぐに利用できますが、最も重要なのは組み込みアプリ用のCです。
OpenJAUS。
それは、反射的で、構成可能で、標準化された(ish)Workscross-language-cross-platformです。
プロトコルバッファ(きちんとしたメッセージングスタック)よりもはるかに多くのフレームワークを提供します。ロボット工学に焦点を当てていますが、制御システムで機能します。
理論的には、JAUSユーザーインターフェイスはJAUS準拠のデバイスを操作でき、JAUSシステムはシステムシステムに構成することを目的としています。
それらが意味をなさない場合は、この提案を無視してください。
これは、組み込みシステムと「軽量」または最小限の実装に関するCORBAに関するEmbedded.comの記事です。上記の商用ソリューションは、QNX、VxWorks、LynxOS向けです。また、Embedded.comのRPCに関する別の記事(これはTI DSPトレーナーによって作成され、特にDSPを参照しているため、DSP / BIOSに関連している可能性があります)。
Embedded.comの記事検索を使用することを強くお勧めします。おそらく、役立つと思われる同様の記事がたくさんあります。
VxWorksは、 QNX Neutrinoと同様に、RPCをサポートします。
「自分でロールする」は常に私のソリューションであり、標準への準拠やシステム間の互換性は問題ではありません(つまり、私のシステムが私のシステムと通信する)。おそらく柔軟性と保守性を犠牲にして、必要なことだけを実行することが「軽量」を実現するための最良の方法です。
最近開発しました:https ://github.com/EmbeddedRPC/erpc チャンスを与えてください;)
プロトコルはステートマシンに自然に適合しているため、非常に軽量なオープンソースのQPステートマシンフレームワーク(state-machine.com)を使用できる可能性があります。AVR、MSP430、ARM7 / ARM9、TMS320C28x、PSoC、HC08、M16C / R8C、H8、8051、PIC18、PIC24 / dsPIC、ARM Cortex-M3 / M0、および多くのQPポートとさまざまなコンパイラの例をすぐに使用できますその他。