組み込みシステムのプログラミングに最も適切な(最良の)言語の提案はありますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/649197

  •  19-08-2019
  •  | 
  •  

質問

ARM32プロセッサを搭載した約20MHz、6MBのRAMを搭載したデバイスの埋め込みコーディングを検討しています。誰でも組み込みシステムのプログラミングに最適な言語を提案できますか?私は検討しています:

  • ルア
  • TinyPy
  • C
  • Java ME
  • C#
  • 誰かがJavaScriptを提案しています

提案はありますか?ありがとう

編集-CとLuaが勝者のようです。乾杯!

編集-リアルタイムは問題ではなく、RAM / CPUが物事を決定するのが制限されます。

役に立ちましたか?

解決

ARM OMAPプロセッサでLuaを使用しました。 LuaはCと緊密に統合されているため、必要なときにいつでもメタルにアクセスできます。また、サイズが小さいため、幅広いプラットフォームに適しています。私はMac上のLuaでファームウェアのUIを開発し、それを組み込みプラットフォームに変更せずに持ち込みました。

OMAPプロセッサはJavaやPythonなどの他の言語を実行するのに十分なほど強力でしたが、コードを開始したときにどのハードウェアをターゲットとしていたのかわかりませんでした。 Luaは安全な賭けでした。

他のヒント

デバイスを最初から起動する場合、または非標準の周辺機器と直接インターフェイスする場合、Cが本当に唯一の方法です。

すでに組み込みOSを持っているか、問題なく移植できる場合は、より多くのscript-y言語を追加できる柔軟性があります。 WinCEを使用していない限り、C#は問題外です。その後、.NET Microに制限されます。

それを超えて、<!> quot; best <!> quot;デバイスの用途を説明せずにほとんど意味がありません。一部の言語では、特定のタスクのサポートが他の言語よりも優れています。

Cはおそらく、このような限られたCPUリソースに対する最善の策です。

ストレートCを使いたくなりますが、その後30年近くCを書いています。 LuaとTinyPyは私にとっては実験的すぎて新しいようです。組み込みデバイスは非常に堅牢である必要があります。

Java MEには良い点があります。埋め込みの世界でのC#については知りません。

このデバイスに期待することを指定することが重要です。何らかの制御アプリケーションですか?アルゴリズムを実装する必要がありますか?浮動小数点サポートはどうですか? GUI?パフォーマンスは重要ですか? OSを使用する予定ですか?

これらの質問に答えることは、プログラミング言語を選択するための重要な前提条件です。

とはいえ、組み込みシステムは信頼性が高い必要があるため、テスト済みのソリューションを探します。 CはおそらくARMチップで最も堅牢で最もサポートされているオプションですが、YMMVは特定のニーズによって異なります。

Cは確かに組み込みシステムで最も使用される言語です。 また、一般的な言語で最も話題になっているようです http://www.langpop.com/

編集:うーん。あなたが説明しているように見える「組み込み」とは、アプリケーションに自動化言語を追加することではなく、組み込みプラットフォームにアプリケーションを詰め込むことであることに気付きました。他の人が示唆しているように、本当に必要な場合を除き、埋め込み可能な言語をスキップし、アプリケーションをCでプログラムします。実際に使用するものを除き、実行時のオーバーヘッドはほとんどありません。

順不同で、Lua、JavaScript、およびTCLはすべて、埋め込みに非常に適しています。 Luaは私にとって最も簡単に埋め込むことができました。 Javascriptは最速です 。 3つすべてが信頼できないコードを適切に処理しますが、TCLは最も堅牢です。たとえば、信頼できないコードは信頼できないコードを実行できます(信頼できる場合)。

さまざまな代替言語をサポートするRTOSを使用できる場合を除き、CまたはC ++(コンパイラチェーンに応じて)を使用します。

あなたの決定は、このプロセッサで利用可能なツールによって決定される可能性が最も高くなります。

Cは、組み込みプロセッサで圧倒的に最もサポートされている言語です。そのため、間違いはありません。将来、他のチップ用のソフトウェアを作成する必要がある場合は、良い経験になるでしょう。

C ++は組み込みシステムでより一般的になりつつあります。それ以外は、優先順位(市場投入までの時間、リソースの使用、速度)、および使用するツールの品質に依存します。

C最高の

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top