マイクロプロセッサ/マイクロコントローラプログラミングの分野に慣れていない場合は、Cを最初に学習して、Javaがほとんどのマイクロコントローラプロジェクトに適さない場合とその理由を理解できるようにしてください。
リンクしたJVMの制限を読みましたか?次の問題が含まれます。
- わずか512バイトのプログラムメモリ(KBではなく、MBではありません)
- わずか768バイトのRAM(変数が移動する場所。この制限により、文字列は768文字に制限されます。)
- 8 Mhz AVRで毎秒約20kのJavaオペコード。
- java.lang.Object、java.lang.System、java.io.PrintStream、java.lang.StringBuffer、JVMコントロールクラス、およびネイティブIOクラスのみが含まれます。java.util。*をインポートすることはできません。このリストにないすべてのクラスを取得します。
これらの制限の意味をよく理解していない場合は、スペースと速度の制限のために実際にJavaでプロジェクトを実行できないことが判明した場合は、プランBがあることを確認してください。
それでもJavaを使いたい場合は、おそらくJavaしか知らない多くの人がデバイスをプログラムすることを期待しているため、組み込みLinuxを実行する可能性がある、より大きなハードウェアを入手することを強くお勧めします。組み込みJVMを実行するために撮影するいくつかの仕様については、Oracleのこのページを参照してください。彼らの議論のFAQで、最低32MBのRAMと32MBのフラッシュを推奨しています。それはあなたが見ているRAMの約32,000倍とAVRのフラッシュの1,0000倍です。OracleのJava Embedded Introページでは、JVMの制限について詳しく説明しています。彼らの声のトーンは、ご想像のとおり、私のものよりもはるかにJavaフレンドリーです。この種のハードウェアは、8ビットAVRよりも設計がはるかに難しいことに注意してください。
私はコンピュータサイエンスの未成年のコンピュータエンジニアリング学生です。私の大学のCS部門はJava Kool-aidを飲んでいるので、エンジニアリングプログラムの多くの学生はJavaしか知りません(これはプログラマにとって悲しい状況です。少なくとも、PythonまたはC ++を習得しなければCを学びたい...)なので、私の教授の1人が、Javaの1年の経験を持つ学生向けのCチートシートを公開しました。わずか75ページです。決定する前に、それを読むか、読み飛ばすことをお勧めします。私の意見では、Cは組み込みプロジェクトを開発するための最も効率的で耐久性のある専門的な言語です。
考慮すべきもう1つの代替策は、Arduinoフレームワークです。これは、オブジェクトやヘッダーのないC ++のような、Wiring言語の簡略版を使用しています。多くのAVRチップで実行でき、ハードウェアに限定されません。Cに直接ジャンプするよりも簡単に習得できます。
結論として、
Altテキスト:適切なものを見つけるために5回試行しましたが、最終的には、ボートではないにしても、私たちはなんとか夜を救出しました。