यदि आप माइक्रोप्रोसेसर / माइक्रोकंट्रोलर प्रोग्रामिंग क्षेत्र में अनुभवहीन हैं, तो आपको संभवतः C सबसे पहले सीखना चाहिए, ताकि आप समझ सकें कि जावा कब और क्यों अधिकांश माइक्रोकंट्रोलर परियोजनाओं के लिए खराब विकल्प है।
क्या आपने जेवीएम से जुड़े प्रतिबंधों को पढ़ा है? इसमें निम्नलिखित समस्याएं शामिल हैं:
- 512 बाइट्स प्रोग्राम मेमोरी (KB नहीं, और निश्चित रूप से MB नहीं)
- कम से कम 768 बाइट्स RAM (जहाँ आपके वैरिएबल चलते हैं। आप इस प्रतिबंध द्वारा स्ट्रिंग्स के 768 वर्णों तक सीमित हैं।)
- 8 मेगाहर्ट्ज AVR पर लगभग 20k जावा ऑपकोड प्रति सेकंड।
- केवल java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, एक JVM नियंत्रण वर्ग और एक देशी IO वर्ग शामिल हैं। आप एक आयात java.util नहीं कर पाएंगे। *; और इस सूची में नहीं सभी वर्गों को मिलता है।
यदि आप इन प्रतिबंधों से परिचित नहीं हैं, तो सुनिश्चित करें कि आपके पास एक प्लान B है यदि यह पता चला है कि आप वास्तव में जावा के साथ अंतरिक्ष और गति प्रतिबंधों के कारण प्रोजेक्ट नहीं कर सकते हैं।
यदि आप अभी भी जावा के साथ जाना चाहते हैं, तो शायद इसलिए कि आप डिवाइस को बहुत से लोगों द्वारा प्रोग्राम किए जाने की उम्मीद करते हैं, जो केवल जावा को जानते हैं, मैं दृढ़ता से बड़ा हार्डवेयर प्राप्त करने का सुझाव देता हूं, कुछ ऐसी चीज जो एम्बेडेड लिनक्स चलाता है। ओरेकल के इस पृष्ठ को एम्बेडेड JVM को चलाने के लिए शूट करने के लिए कुछ स्पेक्स के लिए, उनकी चर्चा के अक्सर पूछे जाने वाले प्रश्नों में, वे न्यूनतम 32MB RAM और 32MB फ़्लैश की सलाह देते हैं। यह लगभग 32,000 बार रैम और 1,0000 बार फ्लैश ऑफ एवीआर जिसे आप देख रहे हैं। ओरेकल का जावा एंबेडेड इंट्रो पेज जेवीएम के प्रतिबंधों के बारे में अधिक विस्तार से बताता है। जैसा कि आप अनुमान लगा सकते हैं, उनका स्वर बेहतर है, मेरे मुकाबले एक अच्छा सौदा अधिक जावा-अनुकूल है। ज्ञात हो कि इस तरह के हार्डवेयर को 8-बिट एवीआर की तुलना में डिजाइन करना अधिक कठिन होता है।
मैं कंप्यूटर इंजीनियरिंग का छात्र हूँ और कंप्यूटर साइंस में मामूली हूँ। मेरे विश्वविद्यालय के सीएस विभाग ने जावा कूल-सहायता को पिया है, इसलिए इंजीनियरिंग कार्यक्रम में बहुत सारे छात्र केवल जावा को जानते हैं (जो एक प्रोग्रामर के लिए दुख की स्थिति है, कम से कम कुछ पायथन या सी ++ सीखें यदि आप नहीं करते हैं C सीखना चाहते हैं ...), इसलिए मेरे एक प्रोफेसर ने जावा अनुभव के एक वर्ष के लिए छात्रों के लिए एक सी चीट शीट प्रकाशित की । यह केवल 75 पृष्ठ है; मेरा सुझाव है कि निर्णय लेने से पहले आप इसे पढ़ें या स्किम करें। मेरी राय में, सी सबसे कुशल, टिकाऊ और पेशेवर भाषा है जिसमें एक एम्बेडेड प्रोजेक्ट विकसित करना है।
विचार करने के लिए एक अन्य विकल्प Arduino ढांचा है। यह वायरिंग भाषा के एक स्ट्रिप्ड डाउन संस्करण का उपयोग करता है , जो ऑब्जेक्ट्स या हेडर के बिना C ++ की तरह है। यह कई एवीआर चिप्स पर चल सकता है, यह निश्चित रूप से उनके हार्डवेयर तक सीमित नहीं है। यह आपको सी में सीधे कूदने की तुलना में एक आसान सीखने की अवस्था देगा।
अंत में,
ऑल्ट टेक्स्ट: मुझे पाँचों को सही खोजने की कोशिश करता है, लेकिन मैं अपनी रात को बाहर निकालने में कामयाब रहा - अगर नाव नहीं - अंत में।