क्या मैं C ++ के अलावा किसी भी प्रोग्रामिंग भाषा का उपयोग करके अपने Arduino को प्रोग्राम कर सकता हूं? यदि हां, तो कौन सी प्रोग्रामिंग भाषाएं? Arduino पर अपना कोड संकलन और लोड करने के लिए मुझे किस सॉफ़्टवेयर की आवश्यकता होगी?
क्या मैं C ++ के अलावा किसी भी प्रोग्रामिंग भाषा का उपयोग करके अपने Arduino को प्रोग्राम कर सकता हूं? यदि हां, तो कौन सी प्रोग्रामिंग भाषाएं? Arduino पर अपना कोड संकलन और लोड करने के लिए मुझे किस सॉफ़्टवेयर की आवश्यकता होगी?
जवाबों:
कुछ आमतौर पर ज्ञात:
सिद्धांत रूप में आपको अन्य भाषाओं का समर्थन करने के लिए avr-gcc का विस्तार करने में सक्षम होना चाहिए, हालांकि यह कोई छोटा उपक्रम नहीं है। मुझे यह भी चेतावनी देनी चाहिए कि सी के अलावा अन्य भाषाओं के लिए समर्थन आमतौर पर भाषा घटकों पर कुछ काफी वजनदार प्रतिबंधों के साथ आता है - उदाहरण के लिए, यहां तक कि सी ++ के साथ भी नई वस्तुओं को तत्काल रूप से बदलने के लिए हतोत्साहित किया जाता है malloc
और free
मेमोरी स्पेस और साइकिल दोनों में बहुत महंगा है।
Google का उपयोग करने के अलावा, निम्नलिखित संदर्भ लागू होते हैं यहां क्लिक करें।
सिद्धांत रूप में, AVR असेंबली को आउटपुट करने वाले किसी भी संकलक का उपयोग किया जा सकता है (कोड आकार, रैम उपयोग आदि पर modulo सीमाएं)।
AVR बैकेंड LLVM और GCC दोनों के लिए मौजूद है - इसलिए सिद्धांत रूप में, कुछ प्रयासों के साथ, अधिकांश भाषाएं जो LLVM और GCC के फ्रंट-एंड द्वारा समर्थित हैं, उन्हें AVR में संकलित किया जा सकता है। एक बड़ा सवाल लाइब्रेरी सपोर्ट आदि का होगा।
कभी भी कम नहीं, यहाँ प्रश्न की भावना के लिए कुछ विषम विकल्प हैं, बजाय इसके पत्र [1] के।
ओह, और आप कच्चे AVR असेंबली लिख सकते हैं !
[१] - मैंने हालांकि ये कोशिश नहीं की है!
कुछ लोग जावास्क्रिप्ट नोड.जेएस आधारित सिस्टम पर भी काम कर रहे हैं। एक जो पहले से ही सार्वजनिक रूप से उपलब्ध है, वह एस्पप्रिनो है और दूसरा टेसल है जो वसंत 2014 में लॉन्च होता है।
क्योंकि avr-g ++ को सभी मानक C / C ++ का समर्थन करना चाहिए क्योंकि इनलाइन असेंबली को कोड करना संभव है। इस arduino.cc फोरम थ्रेड पर अधिक जानकारी
मुझे आश्चर्य है कि किसी ने AVR असेंबली का उल्लेख नहीं किया है !
असेंबली को अक्सर सबसे दिलचस्प या प्रोग्रामिंग का एक आसान तरीका नहीं माना जाता है, लेकिन फिर भी, यह सभी AVR आधारित arduino के साथ 100% संभव है। एसएएम बोर्ड संभवतः इस स्वाद के साथ काम नहीं करेंगे, लेकिन उनकी प्रोग्रामिंग में विधानसभा का उपयोग करना अभी भी संभव है।
सभी Arduino बोर्ड (पोस्टिंग के अनुसार) Atmel स्टूडियो के माध्यम से असेंबली प्रोग्रामिंग का समर्थन करते हैं , The SDK Atmel आधारित चिप्स के लिए बनाया गया है।
असेंबली को सभी Atmel उपकरणों द्वारा भली-भांति समर्थन किया जाता है, और काम करने के लिए किसी बूट लोडर की आवश्यकता नहीं होती है, इसलिए सभी कार्यक्रम स्वाभाविक रूप से वास्तविक समय होते हैं।
__asm__("Assembly code here")
किसी भी स्केच में इन-लाइन असेंबली को जोड़ने का काम करता है। अधिकांश कार्यक्रमों के लिए, यह एक बुरा विचार है, हालांकि, इस पद्धति के साथ प्लेटफ़ॉर्म स्वतंत्रता प्राप्त करना मुश्किल है।