ARM32 プロセッサを搭載した、約 20MHz、6MB RAM のデバイスの組み込みコーディングを検討しています。組み込みシステムのプログラミングに最適/最も適切な言語を提案できる人はいますか? 私は考えています:
- ルア
- TinyPy
- C
- Java ME
- C#
- 誰かが JavaScript を提案しました
助言がありますか?ありがとう
編集 - C と Lua が勝者のようです。乾杯!
編集 - リアルタイムは問題ではありません。RAM/CPU が制限されているためです。
デバイスをゼロから立ち上げたり、非標準の周辺機器と直接接続したりする場合は、C が本当に唯一の方法です。
すでに組み込み OS を持っているか、問題なく移植できる場合は、より柔軟にスクリプト言語を追加できる可能性があります。WinCE を使用していない限り、C# は問題外です。その場合、.NET Micro に制限されます。
それを超えて、「最高」は、デバイスが何に使用されるかを説明しなければ、ほとんど意味がありません. 一部の言語は、特定のタスクを他の言語よりも適切にサポートしています。
このような限られた CPU リソースには、おそらく C が最適です。
私はストレートな C を使いたくなるかもしれませんが、30 年近く C を書いています。Lua と TinyPy は、私にはあまりにも新しく、実験的なものに思えます。組み込みデバイスは非常に堅牢である必要があります。
Java ME には良い点があります。組み込みの世界での C# については知りません。
私はARM OMAP プロセッサで Lua を使用しました。Lua は C と緊密に統合されているため、必要なときにいつでも金属を使用できます。また、サイズが小さいため、幅広いプラットフォームに適しています。Mac の Lua でファームウェアの UI を開発し、それを変更せずに組み込みプラットフォームに持ち込みました。
OMAP プロセッサは、Java や Python などの他の言語を実行するのに十分なほど強力でしたが、コードを書き始めた時点では、どのハードウェアをターゲットにしているのかわかりませんでした。ルアは安全な賭けでした。
このデバイスに何を期待するかを指定することが重要です。ある種の制御アプリケーションですか?アルゴリズムを実装する必要がありますか? 浮動小数点のサポートはどうですか? GUI?パフォーマンスは重要ですか? OSを使用する予定はありますか?
これらの質問に答えることが、プログラミング言語を選択するための重要な前提条件です。
とはいえ、組み込みシステムは信頼できるものでなければならないので、テスト済みのソリューションを使用します。C はおそらく ARM チップにとって最も安定しており、最もサポートされているオプションですが、YMMV は特定のニーズによって異なります。
Cは確かに組み込みシステムで最も使用されている言語です。また、一般的に最も話題になっている言語のようですhttp://www.langpop.com/
C最高
編集:うーん。あなたが説明しているように見える「組み込み」は、自動化言語をアプリケーションに追加することではなく、アプリケーションを組み込みプラットフォームに押し込むことであることに気付きました。他の人が示唆しているように、本当に必要でない限り、組み込み可能な言語をスキップして、C でアプリケーションをプログラミングします。実際に使用するものを除いて、実行時のオーバーヘッドはほとんどありません。
順不同で、Lua、JavaScript、および TCL はすべて組み込みに適しています。Lua は私にとって組み込みが最も簡単でした。Javascriptが最速かもしれません。3 つすべてが信頼できないコードを適切に処理しますが、TCL は最も堅牢です。たとえば、信頼できないコードは信頼できないコードを実行できます (信頼されている場合)。
さまざまな代替言語をサポートする RTOS を利用できる場合を除き、C または C++ (コンパイラ チェーンによって異なります) を使用することをお勧めします。
あなたの決定は、このプロセッサで利用可能なツールによって決定される可能性が最も高いです.
C は、組込みプロセッサで最もサポートされている言語であるため、C を使用することは間違いありません。将来、他のチップ用のソフトウェアを作成する必要がある場合、C は良い経験になるでしょう。
組み込みシステムでは C++ の人気が高まっています。さらに、優先順位 (市場投入までの時間、リソースの使用、速度) と、使用するツールの品質によって異なります。