C ++ के अलावा अन्य प्रोग्रामिंग विकल्प


14

क्या मैं C ++ के अलावा किसी भी प्रोग्रामिंग भाषा का उपयोग करके अपने Arduino को प्रोग्राम कर सकता हूं? यदि हां, तो कौन सी प्रोग्रामिंग भाषाएं? Arduino पर अपना कोड संकलन और लोड करने के लिए मुझे किस सॉफ़्टवेयर की आवश्यकता होगी?



दुर्भाग्य से, यह एक गैर -आर्डीनो का एक प्रभावी डुप्लिकेट है। प्रश्न: यहां देखें मुझे लगता है कि मेरे द्वारा जुड़ा हुआ प्रश्न बीटा समाप्त होने के बाद यहां स्थानांतरित किया जाना चाहिए, लेकिन अभी तक नहीं।
अपनोर्टन

@anorton वैकल्पिक IDEs के बारे में यह प्रश्न पूछ रहा है। यह प्रश्न डुप्लिकेट नहीं है क्योंकि यह वैकल्पिक प्रोग्रामिंग भाषाओं के बारे में बात करता है।
tstew

@ user2202326 क्षमा करें ... मुझे लगता है कि उस धागे पर आईडीई की तुलना में अलग-अलग भाषाओं के साथ जवाब देने वाले अधिक लोग याद करते हैं, लेकिन, जाहिर है, मैं गलत था। लगे रहो।
अपनोर्टन

यदि आप C # से परिचित हैं तो आप Netduino में देख सकते हैं (Visual Studio जाने का तरीका है, लेकिन C # कोड को संकलित करने के अन्य तरीके हैं)। मुझे नहीं पता कि आपके पास क्या बोर्ड है और यदि यह हालांकि संगत है। netduino.com
जेसन डाउन

जवाबों:


5

कुछ आमतौर पर ज्ञात:

सिद्धांत रूप में आपको अन्य भाषाओं का समर्थन करने के लिए avr-gcc का विस्तार करने में सक्षम होना चाहिए, हालांकि यह कोई छोटा उपक्रम नहीं है। मुझे यह भी चेतावनी देनी चाहिए कि सी के अलावा अन्य भाषाओं के लिए समर्थन आमतौर पर भाषा घटकों पर कुछ काफी वजनदार प्रतिबंधों के साथ आता है - उदाहरण के लिए, यहां तक ​​कि सी ++ के साथ भी नई वस्तुओं को तत्काल रूप से बदलने के लिए हतोत्साहित किया जाता है mallocऔर freeमेमोरी स्पेस और साइकिल दोनों में बहुत महंगा है।

Google का उपयोग करने के अलावा, निम्नलिखित संदर्भ लागू होते हैं यहां क्लिक करें।


8

सिद्धांत रूप में, AVR असेंबली को आउटपुट करने वाले किसी भी संकलक का उपयोग किया जा सकता है (कोड आकार, रैम उपयोग आदि पर modulo सीमाएं)।

AVR बैकेंड LLVM और GCC दोनों के लिए मौजूद है - इसलिए सिद्धांत रूप में, कुछ प्रयासों के साथ, अधिकांश भाषाएं जो LLVM और GCC के फ्रंट-एंड द्वारा समर्थित हैं, उन्हें AVR में संकलित किया जा सकता है। एक बड़ा सवाल लाइब्रेरी सपोर्ट आदि का होगा।

कभी भी कम नहीं, यहाँ प्रश्न की भावना के लिए कुछ विषम विकल्प हैं, बजाय इसके पत्र [1] के।

  • AMForth , एक अगली बोली को Arduino पर फ्लैश किया जा सकता है।
  • AVR-Ada : AVR माइक्रो-नियंत्रकों के लिए Ada
  • बुनियादी : वापस गोटो लाओ!

ओह, और आप कच्चे AVR असेंबली लिख सकते हैं !

[१] - मैंने हालांकि ये कोशिश नहीं की है!


2

कुछ लोग जावास्क्रिप्ट नोड.जेएस आधारित सिस्टम पर भी काम कर रहे हैं। एक जो पहले से ही सार्वजनिक रूप से उपलब्ध है, वह एस्पप्रिनो है और दूसरा टेसल है जो वसंत 2014 में लॉन्च होता है।


1

क्योंकि avr-g ++ को सभी मानक C / C ++ का समर्थन करना चाहिए क्योंकि इनलाइन असेंबली को कोड करना संभव है। इस arduino.cc फोरम थ्रेड पर अधिक जानकारी


इनलाइन असेंबली C / C ++ मानकों का हिस्सा नहीं है, लेकिन gcc और microsoft c संकलक इसका समर्थन करते हैं, हालांकि असंगत रूप से।
tbodt

सच है, और इसलिए avr_gcc करते हैं।
Faux_Clef

वैसे भी कुछ भी नहीं निष्पादन योग्य कोड हेक्स में लिखता है।
Faux_Clef

1

मुझे आश्चर्य है कि किसी ने AVR असेंबली का उल्लेख नहीं किया है !

असेंबली को अक्सर सबसे दिलचस्प या प्रोग्रामिंग का एक आसान तरीका नहीं माना जाता है, लेकिन फिर भी, यह सभी AVR आधारित arduino के साथ 100% संभव है। एसएएम बोर्ड संभवतः इस स्वाद के साथ काम नहीं करेंगे, लेकिन उनकी प्रोग्रामिंग में विधानसभा का उपयोग करना अभी भी संभव है।

सभी Arduino बोर्ड (पोस्टिंग के अनुसार) Atmel स्टूडियो के माध्यम से असेंबली प्रोग्रामिंग का समर्थन करते हैं , The SDK Atmel आधारित चिप्स के लिए बनाया गया है।

असेंबली को सभी Atmel उपकरणों द्वारा भली-भांति समर्थन किया जाता है, और काम करने के लिए किसी बूट लोडर की आवश्यकता नहीं होती है, इसलिए सभी कार्यक्रम स्वाभाविक रूप से वास्तविक समय होते हैं।


2
ध्यान दें कि असेंबली को gcc टूलचिन द्वारा भी समर्थन किया जाता है, जो Arduino IDE इंस्टॉल में शामिल है।
एडगर बोनट

@EdgarBonet सही है, यही वजह है कि __asm__("Assembly code here")किसी भी स्केच में इन-लाइन असेंबली को जोड़ने का काम करता है। अधिकांश कार्यक्रमों के लिए, यह एक बुरा विचार है, हालांकि, इस पद्धति के साथ प्लेटफ़ॉर्म स्वतंत्रता प्राप्त करना मुश्किल है।
तुस्कीओमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.