Jika Anda tidak berpengalaman dalam bidang pemrograman mikroprosesor / mikrokontroler, Anda mungkin harus belajar C terlebih dahulu, sehingga Anda dapat memahami kapan dan mengapa Java adalah pilihan yang buruk untuk sebagian besar proyek mikrokontroler.
Apakah Anda membaca batasan pada JVM yang Anda tautkan? Ini termasuk masalah-masalah berikut:
- Memori program sekecil 512 byte (bukan KB, dan jelas bukan MB)
- Hanya 768 byte RAM (di mana variabel Anda pergi. Anda dibatasi hingga 768 karakter string dengan batasan ini.)
- Tentang 20k Java opcodes per detik pada AVR 8 Mhz.
- Hanya menyertakan java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, kelas kontrol JVM, dan kelas IO asli. Anda tidak akan dapat melakukan impor java.util. *; dan dapatkan semua kelas yang tidak ada dalam daftar ini.
Jika Anda tidak terbiasa dengan arti pembatasan ini, pastikan Anda memiliki paket B jika ternyata Anda tidak dapat benar-benar melakukan proyek dengan Java karena batasan ruang dan kecepatan.
Jika Anda masih ingin menggunakan Java, mungkin karena Anda mengharapkan perangkat diprogram oleh banyak orang yang hanya mengenal Java, saya sangat menyarankan untuk mendapatkan perangkat keras yang lebih besar, kemungkinan sesuatu yang menjalankan Linux tertanam. Lihat halaman ini dari Oracle untuk beberapa spesifikasi yang akan diambil untuk menjalankan JVM yang tertanam, di FAQ diskusi mereka, mereka merekomendasikan minimal 32MB RAM dan 32MB Flash. Itu sekitar 32.000 kali RAM dan 1.0000 kali Flash AVR yang Anda lihat. Halaman Java Embedded Intro Oracle menjelaskan lebih detail tentang batasan JVM. Nada suara mereka, seperti yang Anda duga, jauh lebih ramah-Java daripada saya. Sadarilah bahwa jenis perangkat keras ini jauh lebih sulit untuk dirancang daripada AVR 8-bit.
Saya seorang mahasiswa teknik komputer dengan minor ilmu komputer. Departemen CS universitas saya telah meminum Java Kool-aid, jadi banyak siswa dalam program teknik hanya mengetahui Java (yang merupakan keadaan menyedihkan bagi seorang programmer, setidaknya mempelajari beberapa Python atau C ++ jika Anda tidak ingin belajar C ...), jadi salah satu profesor saya menerbitkan C Cheat Sheet untuk siswa dengan pengalaman Java selama satu tahun. Hanya 75 halaman; Saya sarankan Anda membaca atau membaca sepintas lalu sebelum membuat keputusan. Menurut pendapat saya, C adalah bahasa yang paling efisien, tahan lama, dan profesional untuk mengembangkan proyek tertanam.
Alternatif lain untuk dipertimbangkan adalah kerangka kerja Arduino . Ini menggunakan versi dilucuti dari bahasa Wiring , yang seperti C ++ tanpa objek atau header. Itu dapat berjalan pada banyak chip AVR, itu pasti tidak terbatas pada perangkat keras mereka. Ini akan memberi Anda kurva belajar yang lebih mudah daripada melompat langsung ke C.
Kesimpulannya,
teks Alt: Butuh lima kali mencoba menemukan yang tepat, tetapi saya berhasil menyelamatkan malam kami - jika bukan kapal - pada akhirnya.