Mikroişlemci / mikrodenetleyici programlama alanında deneyiminiz yoksa, muhtemelen önce C'yi öğrenmelisiniz, böylece Java'nın çoğu mikrodenetleyici projesi için ne zaman ve neden kötü bir seçim olduğunu anlayabilirsiniz.
Bağladığınız JVM'deki kısıtlamaları okudunuz mu? Aşağıdaki sorunları içerir:
- 512 bayt kadar az program belleği (KB değil ve kesinlikle MB değil)
- 768 bayt kadar az RAM (değişkenleriniz nereye gider. Bu kısıtlamaya göre 768 karakter dizeyle sınırlısınız.)
- 8 Mhz AVR'de saniyede yaklaşık 20k Java opcodu.
- Yalnızca java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, bir JVM kontrol sınıfı ve yerel bir IO sınıfı içerir. Java.util dosyasını içe aktaramazsınız. *; ve bu listede olmayan tüm sınıfları alın.
Bu kısıtlamaların ne anlama geldiğini bilmiyorsanız, alan ve hız kısıtlamaları nedeniyle projeyi gerçekten Java ile yapamayacağınız ortaya çıkarsa, B planına sahip olduğunuzdan emin olun.
Hala Java ile gitmek istiyorsanız, belki de cihazın sadece Java'yı bilen birçok kişi tarafından programlanmasını beklediğiniz için, daha büyük bir donanım almanızı şiddetle tavsiye ederim, muhtemelen gömülü Linux çalıştıran bir şey. Gömülü JVM'yi çalıştırmak için çekilecek bazı özellikler için Oracle'ın bu sayfasına bakın , tartışmalarının SSS bölümünde en az 32MB RAM ve 32MB Flash öneriyorlar. Bu, RAM'in yaklaşık 32.000 katı ve baktığınız AVR'nin 1.000 katıdır. Oracle'ın Java Embedded Intro sayfası JVM'nin kısıtlamaları hakkında daha ayrıntılı bilgi vermektedir. Onların ses tonları, tahmin edebileceğiniz gibi, benimkinden daha fazla Java dostu. Bu tür bir donanımın tasarımının 8 bit AVR'den çok daha zor olduğunu unutmayın.
Bilgisayar bilimleri yanlısı olan bir bilgisayar mühendisliği öğrencisiyim. Üniversitemin CS departmanı Java Kool-yardımını içti, bu yüzden mühendislik programındaki birçok öğrenci sadece Java'yı (bir programcı için üzücü bir durum olan) bilmeye geliyor, en azından eğer bazı Python veya C ++ öğreniyorlar C ...) öğrenmek istiyorum, bu yüzden profesörlerimden biri Java deneyimi olan öğrenciler için bir Ch Cheat Sheet yayınladı . Sadece 75 sayfa; Karar vermeden önce okumanızı veya gözden geçirmenizi öneririm. Bence C, gömülü bir proje geliştirmenin en verimli, dayanıklı ve profesyonel dilidir.
Dikkate alınacak diğer bir alternatif Arduino çerçevesi. Bu kullanan bir versiyonun bir kablo nesne veya başlıkları olmadan C ++ gibi dil. Birçok AVR çipinde çalışabilir, kesinlikle donanımlarıyla sınırlı değildir. Size doğrudan C'ye atlamaktan daha kolay bir öğrenme eğrisi verecektir.
Sonuç olarak,
Alt metin: Doğru olanı bulmak için bana beş deneme yaptı, ama sonunda - tekne olmasa da - gecemizi kurtarmayı başardım.