इलेक्ट्रॉनिक्स इंजीनियरों के लिए प्रोग्रामिंग भाषाएँ


22

मैं एक इलेक्ट्रॉनिक्स और संचार इंजीनियरिंग छात्र हूं, कॉलेज जाने से पहले, मुझे प्रोग्रामिंग और कंप्यूटर अनुप्रयोगों में रुचि है। मैंने विंडोज अनुप्रयोगों को डिजाइन करने और इसकी तकनीकों को सीखने पर ध्यान केंद्रित किया था, लेकिन अब, मुझे लगता है कि यह मेरे क्षेत्र में बेकार है ... मुझे कंप्यूटर विज्ञान और विकासशील सॉफ्टवेयर के बारे में सब कुछ सीखने की ज़रूरत नहीं है! (क्या मैं इस बारे में सही हूं?)

मैं वीबी .नेट, सी # और सी ++ जानता हूं। मेरे पास अपनी छुट्टी में बहुत समय है इसलिए मैं "इलेक्ट्रॉनिक्स क्षेत्र" में प्रोग्रामेटिक रूप से गहरा करना चाहता हूं। तो आप क्या सीखने या ध्यान केंद्रित करने की सलाह देंगे?

मैं उन भाषाओं को माइक्रोकंट्रोलर और अन्य एकीकृत सर्किट प्रोग्रामिंग में इस्तेमाल करना चाहता हूं। क्या C ++ पर्याप्त है या मुझे C को भी मास्टर करना चाहिए? कृपया अपने विचार मुझे बताएँ।


3
"मिलाप" या अधिक गंभीरता से, सादे सी समर्थन उपकरणों के लिए काफी पारंपरिक है, हालांकि वर्तमान में अजगर थोड़ा फैशनेबल है।
क्रिस स्ट्रैटन

जवाबों:


29

हाँ, यह लगभग निश्चित रूप से सी का उपयोग करने के लिए सीखने के लिए एक अच्छा कदम है और सी (सी ++ आपको एक उपयोगी शुरुआती बिंदु देगा, हालांकि लेफ्टनैबआउट नोट के रूप में , अभी भी लेने के लिए बहुत कुछ होगा, विशेष रूप से छोटे एम्बेडेड सिस्टम के लिए कोडिंग के बीच अंतर। विंडोज जैसी किसी चीज के लिए लिखने की तुलना में) यह सर्वव्यापी है।

एक निश्चित आकार (जैसे PIC, AVR, MSP430, आदि) के नीचे के अधिकांश माइक्रोकंट्रोलर C (या कोडांतरक) का उपयोग करते हैं क्योंकि कई उच्च गुणवत्ता (मुफ़्त और $$ संस्करण) हैं - उदाहरण के लिए कई व्यावसायिक कंपाइलर मुफ्त GCC कंपाइलर पर आधारित हैं: C कंपाइलर उपलब्ध ।
आपको PIC के लिए उत्कृष्ट JAL (मूल लेखक Wouter Van Ooijen जो यहां एक सदस्य है) जैसी अन्य भाषाएं मिलती हैं, PICBASIC, Ada वेरिएंट, लेकिन इसकी लोकप्रियता और संकलक की संख्या उपलब्ध होने के कारण, मैं कहूंगा कि C, पसंद की भाषा है अधिकांश के लिए। हालांकि निश्चित रूप से इसका मतलब यह नहीं है कि यह सबसे अच्छी भाषा है, सबसे लोकप्रिय भाषा का उपयोग स्पष्ट लाभ (प्रलेखन, समर्थन, पोर्टेबिलिटी, सहयोग, आदि)
के साथ आता है अधिक एआरएम वेरिएंट की तरह अधिक जटिल और बड़े 32-बिट माइक्रो के लिए, वहाँ भी हैं सी ++ और अन्य संकलक उपलब्ध हैं।

मैं सही में कूदता और कुछ विकास बोर्डों को पकड़ता और कोडिंग प्राप्त करता। आप PIC16F (माइक्रोचिप डायरेक्ट पर कई स्टार्टर किट) जैसे कम-से-कम 8-बिट माइक्रो उठा सकते हैं
। रेंज का एक हिस्सा PIC24 की तरह 16-बिट माइक्रो, और किसी तरह का C / C ++ / एम्बेडेड लाइन एआरएम - STM32F4 एआरएम कोर्टेक्स एम 4 डिस्कवरी एक बहुत ही सस्ता देव बोर्ड है जो हड़पने के लायक हो सकता है।
प्रोग्रामेबल लॉजिक और हार्डवेयर डिस्क्रिप्शन लैंग्वेज (HDL - द बिग टू वेरिलॉग एंड वीएचडीएल) की तरफ है, यह Diglent या इसी तरह के एक FPGA या CPLD देव बोर्ड की पकड़ के लायक हो सकता है।

यदि आप एक देव बोर्ड की प्रतीक्षा नहीं करना चाहते हैं, तो आप MPLAB या MPLABX डाउनलोड कर सकते हैं और PIC विकास में अपना हाथ आज़माने के लिए उत्कृष्ट सिम्युलेटर का उपयोग कर सकते हैं। समान अन्य टूल के लिए भी जाता है, उदाहरण के लिए आप Xilinx ISE Webpack को मुफ्त में डाउनलोड कर सकते हैं और एचडीएल और प्रोग्रामर लॉजिक डिज़ाइन आज़मा सकते हैं।


9
PIC सस्ते हो सकते हैं, लेकिन एक लौ युद्ध शुरू करने के जोखिम पर, मैं चाहूंगा कि शिक्षण उपकरण के रूप में PIC का उपयोग करना आपको सामान्य उद्देश्य माइक्रोकंट्रोलर को प्रोग्राम करने के लिए सिखाने के बजाय PIC को प्रोग्राम करना सिखाता है। इसके लिए MSP, AVR (Arduino), कम अंत ARM Cortex या यहां तक ​​कि आदरणीय 8051 प्रोसेसर अधिक आसानी से हस्तांतरणीय कौशल प्रदान करेंगे।
u

बहुत बहुत धन्यवाद ... यह बहुत उपयोगी था। लेकिन आपके उत्तर को संक्षेप में प्रस्तुत करने के लिए: मुझे अभी जो कुछ भी चाहिए, वह C ++ पर काम करना और C में महारत हासिल करना, वेरिलॉग या VHDL या दोनों सीखना, और अभ्यास के लिए या शुरुआत के रूप में उन सिमुलेटर का उपयोग करने के लिए कुछ देव बोर्डों को हथियाना।
सिराज मुहम्मद

1
@ सिराजमुहम्मद - हां, इसके बारे में, वेरिलॉग और वीएचडीएल दोनों सीखने के अलावा, शायद यह आवश्यक नहीं है, क्योंकि आमतौर पर उन्हें एक साथ एक डिजाइन में इस्तेमाल किया जा सकता है (इसलिए उदाहरण के लिए आप वीएचडीएल में किसी और द्वारा डिज़ाइन किए गए सॉफ्ट कोर प्रोसेसर का उपयोग कर सकते हैं, आपका वेरिलॉग डिज़ाइन, और यह ठीक काम करेगा) तो बस एक चुनें।
ओली ग्लेसर

4
@Ian - मैं सुझाव दे नहीं कर रहा हूँ यह है ( "एक तस्वीर की तरह" इसलिए) किसी भी मामले में, यदि आप सी में प्रोग्रामिंग कर रहे हैं, मुझे नहीं लगता कि एक समग्र के बहुत है एक पीआईसी, बस एक उदाहरण है कि होने के लिए वहाँ से बाहर किसी भी छोटे micros के बीच अंतर। बेशक बाहर (विधानसभा और सभी) के अंदर एक सूक्ष्म को जानने के लिए उपयोगी है, लेकिन उच्च स्तर पर शुरू करने के लिए चीजों को बहुत समान दिखना चाहिए, बस उपकरण अलग हो रहे हैं। मुझे लगता है कि यह कुछ भी करने से पहले कुछ कोशिश करने लायक है।
ओली ग्लेसर

2
"यदि आप पहले से ही सी ++ जानते हैं तो बहुत मुश्किल नहीं होना चाहिए"? मैं उस पर सहमत नहीं होता, कोई व्यक्ति जो "VB .Net, C C और C ++" जानता है, शायद बाद में एक उच्च-स्तरीय, वस्तु-उन्मुख RAII शैली का उपयोग करता है और अच्छी तरह से मैनुअल पर समझ पाने के लिए कुछ समय की आवश्यकता हो सकती है स्मृति प्रबंधन।
बायीं करवट लेना

23

C जानें, और MSP430 या ARM Cortex की तरह एक सस्ता माइक्रोकंट्रोलर डेवलपमेंट बोर्ड प्राप्त करें, और कम से कम कुछ C प्रोग्राम लिखें और लोड करें।

मेरे पास एक कंप्यूटर विज्ञान की डिग्री और एक सॉफ्टवेयर डेवलपमेंट बैकग्राउंड है, ज्यादातर गेम्स के लिए C ++ प्रोग्रामिंग और अब iOS गेम्स और ऐप्स हैं, लेकिन मेरी आखिरी नौकरी एक सेमी-प्रो EE गिग थी जो ARM Cortex M3 सिस्टम के लिए फर्मवेयर प्रोग्रामिंग का एक गुच्छा बनाने के साथ शुरू हुई थी , और फिर कुछ बुनियादी सर्किट डिजाइन और बोर्ड लेआउट और सरल बोर्डों के एक जोड़े को डिजाइन करने का तरीका सीखने के साथ मेरे साथ समाप्त हुआ। इसलिए मुझे मूल रूप से हार्डवेयर / सॉफ़्टवेयर डिज़ाइन को किसी ऐसे व्यक्ति के रूप में उपयोग करने के लिए सबसे अच्छी प्रोग्रामिंग भाषा का उपयोग करने की समस्या का सामना करना पड़ा जो इसके दोनों सिरों के लिए जिम्मेदार था।

सी बिल्कुल वही भाषा है जिसे आपको जानना आवश्यक है। यह उन लोगों के लिए आसान है जो C ++ में प्रोग्राम करते हैं और वास्तव में C के फीचर सेट पर खुद को यह कहने के लिए प्रतिबंधित नहीं करना है कि "यह वही बात है" लेकिन यह नहीं है। विशेष रूप से सी ++ जिस तरह से विकसित और इकट्ठा हुआ है, और जिस तरह से मुख्यधारा के सी ++ प्रोग्रामर उन सुविधाओं का उपयोग करते हैं, यह वास्तव में एक सी + + अनुप्रयोग के विपरीत एक बड़े सी अनुप्रयोग पर काम करने के लिए एक बहुत अलग बात है। आपका फर्मवेयर एसडीके सी पुस्तकालयों का एक गुच्छा होगा, जो कुछ भी एमसीयू पर फिट होगा वह एक सी लाइब्रेरी होगा, कोई भी ओएस जो एमसीयू पर समझ में आता है, उसे सी, आदि में लिखा जाएगा।

कहा कि, चूंकि MCU के कई टूलचाइन्स उनके संकलक के रूप में GCC का उपयोग करते हुए समाप्त होते हैं, यदि आप एक सभ्य MCU परिवार का उपयोग कर रहे हैं, तो आपके पास निश्चित रूप से C ++ कंपाइलर उपलब्ध होगा। लेकिन आपको अपने द्वारा उपयोग की जाने वाली सुविधाओं, विशेष रूप से मानक पुस्तकालय की चीजों के बारे में बहुत सावधान रहना होगा, क्योंकि बाइनरी के साथ समाप्त करना बहुत आसान है जो आपके डिवाइस पर फिट होने के लिए बहुत बड़ा है। मुझे लगता है कि एम्बेडेड उपकरणों पर C ++ का उपयोग करने के लिए एक अच्छा मामला है, C ++ में कुछ अच्छी विशेषताएं हैं जिनमें कूड़े या कोई आकार या गति जुर्माना नहीं है, आपको बस यह जानना होगा कि आप क्या कर रहे हैं और कोड लिखें स्पेक्ट्रम के सी-स्टाइल एंड पर एसटीएल स्पेक्ट्रम की तुलना में स्मार्ट फीचर उपयोग के मामले में आगे।

उन लोगों पर ज़्यादा ध्यान न दें, जो कहते हैं कि आप MCU पर LU या पायथन का उपयोग सही एम्बेडेड दुभाषिया ब्लाह, ब्लाह के साथ कर सकते हैं। यह सच है, मैंने इसे पूरा किया है और यह मजेदार है, लेकिन फिलहाल यह खिलौना परियोजनाओं और सामान के लिए अधिक है जो हैक डे पर दिखाई देता है। मुझे लगता है कि हम इस प्रकार की चीज़ों को अधिक देखेंगे क्योंकि मूर का नियम लगातार छोटे से छोटे प्रोसेसर पर भी लागू होता है, यह कुछ ऐसा है जो उन खेलों के साथ होता है जहाँ बहुत अधिक असेंबली हुआ करती थी, फिर वे C और C ++ के साथ आयोजित हुए। हर किसी की तुलना में, और अब सब कुछ इतनी तेजी से होता है, और डेवलपर उत्पादकता इतनी महत्वपूर्ण है कि एम्बेडेड उच्च-स्तरीय भाषाओं के साथ या उच्च स्तर की भाषा में एक समान विकास किया जाता है। फिर भी, यह कुछ साल पहले होगा जब आप कंपनियों को फर्मवेयर प्रोग्रामर को पायथन और लुआ पृष्ठभूमि के साथ काम पर रखते हुए देखेंगे।

विधानसभा पर बहुत अधिक समय खर्च न करें। किसी भी असेंबली प्रोग्रामिंग के अनुसार, अवधारणाओं से परिचित होना बुरा नहीं है, लेकिन यह संभव नहीं है कि आप खुद को बहुत कुछ कर पाएं। खेलों के साथ इस पारंपरिक ज्ञान की तरह है और यह एम्बेडेड है कि यह "जानना अच्छा है" विधानसभा, अक्सर उन लोगों द्वारा दोहराया जाता है जो वास्तव में उन क्षेत्रों में काम नहीं करते हैं। लेकिन वास्तव में यह बहुत कम संभावना है कि आप किसी भी विधानसभा को कभी भी लिखेंगे, और यदि आप ऐसा करते हैं तो शायद अनुकूलन के लिए कुछ पंक्तियां होंगी या हार्डवेयर के साथ कुछ ऐसा होगा जिसके लिए आपके पास एपीआई नहीं है (लेकिन आप आप एक लिखने के बाद कि विधानसभा की कुछ पंक्तियों को लपेटता है)। मैंने कई खेलों और उस बोर्ड / फर्मवेयर डिज़ाइन परियोजना पर काम किया है और विधानसभा की कुल पंक्तियों की संख्या जो मैंने व्यावसायिक परियोजनाओं के लिए लिखी है, शायद कम किशोरावस्था में है। यह


1
यह कहने योग्य है कि असेंबली की आपकी कुछ पंक्तियाँ इनलाइन असेंबली स्टेटमेंट ( asm()), आपके सी कोड में अच्छी तरह से अंतर्निहित होंगी । यह हर तरह से एक विजयी संयोजन है। उदाहरण के लिए, उच्च स्तरीय लेकिन कभी-कभी असेंबली के साथ कॉम्पैक्ट होने पर, समय को सही होने की आवश्यकता होती है। avr-gccToolchain पहले से ही इस सी मैक्रो के साथ एक बहुत करता है, तो आप नोटिस कभी इतना।
एलेक्स

9
यह लिखने के बजाय READ असेंबली में सक्षम होना अधिक महत्वपूर्ण है। यह आपको यह समझने की अनुमति देता है कि कंपाइलर माइक्रो को क्या करने के लिए कह रहा है, और बहुत कम मामलों में कंपाइलर के गलत होने पर स्पॉट करने में सक्षम हो सकता है। आपको अपने डिबग टूल से अधिकतम लाभ प्राप्त करने और उनके द्वारा प्रदान की जाने वाली एकल चरण कार्यक्षमता का उपयोग करने के लिए कुछ विधानसभा समझ की भी आवश्यकता है।
u

1
निश्चित रूप से इससे सहमत हैं। मुझे लगता है कि एक इच्छुक प्रोग्रामर के लिए सबसे अच्छा अभ्यास एक खिलौना भाषा संकलक और कोड जनरेटर लिख रहा है जो कम से कम कार्यों, सरणियों और संरचनाओं को संभालता है, यह जानने के लिए कि स्टैक फ्रेम कैसा दिखता है और विधानसभा में प्रोग्रामिंग भाषा के मूल तत्व क्या दिखते हैं ।
सबप्टिमस

3
@ इयान - अगर आप इसे लिखना नहीं जानते हैं तो असेंबलर को पढ़ने में सक्षम होना बेकार है। आपको इसे पढ़ने और इसकी तुलना करने की आवश्यकता है कि अगर आपने इसे लिखा है तो आपने क्या किया होगा।
रॉकेटमैग्नेट सेप

2
@Rocketmagnet - आप यह जांचने के लिए बाहर नहीं हैं कि संकलक ने सबसे कुशल विधानसभा कार्यान्वयन उत्पन्न किया है। आवश्यकता यह है कि आपके पास उत्पन्न कोडांतरक को पढ़ने और जाँचने की क्षमता है कि कार्यान्वित कोड का तर्क आपके इरादे से मेल खाता है। यह अन्य मानव भाषाओं का उपयोग करने के समान है। मैं जितना बोल या लिख ​​सकता हूं, उससे कहीं ज्यादा फ्रेंच, जर्मन और लैटिन को पढ़ और समझ सकता हूं।
u

10

मैं हर किसी के साथ सहमत हूं कि आपको सी में बहुत सक्षम होने की आवश्यकता है।

मैं कम से कम एक विधानसभा भाषा भी सीखने की सलाह दूंगा। ऐसा करने से आप बहुत बेहतर C प्रोग्रामर बन जाएंगे। आपको यह जानने की जरूरत है कि हुड के नीचे क्या चल रहा है, और यह पीसी की दुनिया की तुलना में एम्बेडेड दुनिया में बहुत अधिक सच है।

कोडांतरक को समझना कि आपका C जनरेट कर रहा है, आपको गति और कॉम्पैक्टनेस के संदर्भ में अधिक इष्टतम C लिखने देगा। तेज़ कोड का अर्थ है:

  • आप एक धीमी सस्ता MCU का उपयोग कर सकते हैं और एक प्रतियोगी को कम कर सकते हैं।
  • बेहतर EMC अनुपालन के लिए आप घड़ी की दर को कम कर सकते हैं।
  • कम बिजली के अनुप्रयोग में MCU नींद में अधिक समय बिता सकता है, सीधे बैटरी जीवन में वृद्धि कर सकता है।

अधिक कॉम्पैक्ट कोड का मतलब है कि आप कम मेमोरी वाले सस्ते MCU का उपयोग कर सकते हैं। या अधिक सुविधाओं के लिए जगह है।


दूसरी भाषा जिसे आप सीखने पर विचार कर सकते हैं, वह है वेरिलॉग । यह एक हार्डवेयर वर्णन भाषा है, और यह वास्तव में सी के लिए बिल्कुल अलग है, न केवल जिस तरह से यह दिखता है, बल्कि इसकी कार्यक्षमता में भी। वेरिलॉग सरू पीएसओसी 3 और 5 जैसे बहुत शक्तिशाली चिप्स का लाभ उठाने का रास्ता खोलेगा । यह एनालॉग और डिजिटल रिप्रोग्रामेबल हार्डवेयर के साथ एक माइक्रोकंट्रोलर है, जो आपको कुछ अद्भुत चीजें करने की अनुमति देता है जो किसी भी अन्य एमसीयू के साथ करना बहुत मुश्किल है। आप FPGA डिज़ाइन भी कर सकेंगे ।


"एक विधानसभा भाषा" से आपका क्या अभिप्राय है? मुझे पता है कि एक भाषा है जिसे असेंबली कहा जाता है, क्या इसकी शाखाएँ या ऐसा कुछ है? क्या आप कुछ नाम बता सकते हैं? और आपके उत्तर के लिए बहुत बहुत धन्यवाद।
सिराज मुहम्मद

4
प्रत्येक प्रकार के सीपीयू या एमसीयू की अलग-अलग निर्देशों के साथ अपनी विधानसभा भाषा होती है। वे सभी काफी समान हैं, लेकिन महत्वपूर्ण अंतर के साथ। जो भी MCU आप उपयोग कर रहे हैं, उसके लिए असेंबली भाषा सीखें।
राकेटमग्नेट

1
ठीक यही कहने वाला था। इलेक्ट्रॉनिक्स इंजीनियरिंग में C और असेंबली का सबसे अधिक उपयोग किया जाता है, क्योंकि आप आमतौर पर निम्न स्तर की चीजों से निपटते हैं। ऑब्जेक्ट ओरिएंटेड वास्तव में अच्छी तरह से उपयोग नहीं किया गया है, सी / असेंबली से जिस तरह की निम्न स्तर की सोच आती है, वह उस पर भी लागू होगी जो आप के साथ काम करते हैं।
मुज़

9

MSEE के रूप में जो 8 साल से डिफेंस इंडस्ट्री में काम कर रहा है, मैं आपको बता सकता हूं कि समझ कैसे LabVIEW (एक ग्राफिकल, सख्ती से टाइप की गई, डेटाफ़्लो भाषा) में अच्छी तरह से प्रोग्राम करने का मतलब है कि आप कभी भी काम से कम नहीं होंगे।

LabVIEW हार्डवेयर इंजीनियरों के लिए एक प्रोग्रामिंग भाषा के रूप में शुरू हुआ, आप इस तथ्य में देख सकते हैं कि कोड सर्किट आरेख की तरह दिखता है। हालांकि, पिछले 25 वर्षों में LabVIEW ऑब्जेक्ट ओरिएंटेशन और मल्टी-थ्रेडिंग के समर्थन के साथ एक पूर्ण विकसित, सुविधा संपन्न भाषा में विकसित हुआ है। वास्तव में, मैं तर्क दूंगा कि कोई अन्य प्रोग्रामिंग भाषा, पाठ आधारित या अन्यथा नहीं है, जो लैबव्यू की तुलना में बहु-थ्रेडेड एप्लिकेशन को प्रोग्राम करना आसान है; यह डेटा-प्रवाह प्रतिमान के कारण बड़े हिस्से में है। जैसे-जैसे सीपीयू कोर की संख्या में वृद्धि जारी है, लैबव्यू एक सामान्य उद्देश्य भाषा के रूप में अधिक से अधिक प्रासंगिक हो जाएगा।

LabVIEW को जानने का एक और लाभ यह है कि आप LabVIEW FPGA मॉड्यूल का उपयोग करके प्रोग्रामिंग FPGAs के केवल एक पत्थर को फेंक देते हैं जो आपके LabVIEW कोड को लेता है और XHDx कंपाइलर को पास करने से पहले इसे VHDL को पर्दे के पीछे पहुंचा देता है। तुम भी LabVIEW रियल-टाइम मॉड्यूल जो VxWorks या Phar गोद का उपयोग करता है के माध्यम से प्रोग्रामिंग के लिए वास्तविक समय कोड पर संक्रमण के लिए अपने LabVIEW कौशल का उपयोग कर सकते हैं ।

नोट: मैं एक प्रमाणित लैब व्यू डेवलपर हूं।

यहाँ छवि विवरण दर्ज करें


5
सभी उत्पादन LabVIEW मैंने देखा है इस तरह से अधिक लग रहा है: thedailywtf.com/Articles/Labview-Spaghetti.aspx मुझे संदेह नहीं है कि इस तरह के कोड को बनाए रखने के इच्छुक लोगों के लिए एक मजबूत नौकरी बाजार है।
बजे

@markrages को मैंने कोड पर बनाए रखने और / या विस्तार करने के लिए कहा है जो लगभग उतना ही बुरा था जितना शायद बुरा था क्योंकि डायनेमिक VI कॉल और ग्लोबल्स भी थे। यह समस्या दोधारी तलवार है जो LabVIEW है। एक तरफ वे इसे एक ऐसी भाषा के रूप में विपणन करते हैं जिसे कोई भी इंजीनियर प्रोग्राम कर सकता है, हालांकि सॉफ्टवेयर आर्किटेक्चर में किसी ठोस आधार के बिना, आप अंत में इस तरह कोड प्राप्त कर सकते हैं। शुक्र है कि NI ने LabVIEW 2012 के साथ इस मुद्दे को पर्याप्त रूप से OOP- आधारित अभिनेता ढांचे के लिए सरल राज्य मशीन से शुरू होने वाले आर्किटेक्चर के लिए अच्छी तरह से लिखित और टिप्पणी किए गए टेम्पलेट प्रदान करके संबोधित किया है।
घेराबंदी

@ बुकमार्क समस्या दुगुनी है। एक, प्रबंधन इंजीनियरों को खतरनाक होने के लिए सिर्फ पर्याप्त प्रशिक्षण देता है। मैं कहता हूँ कि 9/10 LabVIEW प्रोग्रामर मुझे अपनी कंपनी में मिले हैं, जिन्होंने प्रशिक्षण लिया है, केवल पहले दो बुनियादी पाठ्यक्रमों को लिया है जो अनिवार्य रूप से आपको सिर्फ सिंटैक्स सिखाते हैं। दूसरे, LabVIEW एक सुविधा संपन्न भाषा बन गई है जो आज तक किसी भी आधुनिक भाषा को टक्कर देती है क्योंकि यह ग्राफिकल प्रबंधन सोचती है कि यह आसान होना चाहिए। Managemnt एक सॉफ्टवेयर इंजीनियर को कभी भी जटिल सर्किट को माध्यम बनाने के लिए कार्य नहीं करेगा, फिर भी उन्हें एक जटिल सॉफ़्टवेयर समस्या पर ईई को फेंकने में कोई समस्या नहीं है यदि वे "
लैबव्यू को

@ चिह्न: सही जब मुझे याद दिलाया गया कि मुझे LabVIEW क्यों पसंद आया, तो मैंने आपकी टिप्पणी देखी और मुझे याद आया कि मुझे इससे क्यों नफरत है। ओह, हताशा के घंटे एक ही बार में वापस आ गए।
जॉनी बी गुड

6

यदि आप माइक्रोकंट्रोलर्स की निम्न-स्तरीय प्रोग्रामिंग करना चाहते हैं, तो आपको असेंबली-लैंगॉज प्रोग्रामिंग (बेहतर विभिन्न आर्किटेक्चर बेहतर) के साथ सहज होना चाहिए, और हां, आप C ++ का उपयोग करने की तुलना में C का उपयोग बहुत अधिक करेंगे।

सामान्य इंजीनियरिंग कार्य के लिए, गणित-उन्मुख भाषाओं जैसे कि मैटलैब (भी शिलाब और जीएनयू ऑक्टेव) का उपयोग आमतौर पर मॉडलिंग और प्रोटोटाइप के लिए किया जाएगा।

इसके अलावा, सॉफ्टवेयर और हार्डवेयर के लिए कई IDE स्क्रिप्ट करने योग्य होते हैं, आमतौर पर TCL या LUA का उपयोग करते हैं, इसलिए सामान्य रूप से स्क्रिप्टिंग भाषाओं के साथ कुछ परिचित (भी पर्ल, पायथन, पीएचपी, जावास्क्रिप्ट, आदि) उपयोगी होंगे।

हार्डवेयर डिज़ाइन के लिए, आपको वेरिलॉग और / या वीएचडीएल कौशल की आवश्यकता होगी।


6

क्या C ++ पर्याप्त है? शायद।

कृपया याद रखें कि C का उपयोग सभी mcu के 90-99% जैसे किसी चीज़ में किया जाता है: वहाँ से बाहर है, इसलिए C आपके पुनरारंभ पर होना चाहिए।

लेकिन जब से आप एक उच्च स्तर के आदमी हैं आप Arduino के साथ खेलना शुरू कर सकते हैं: क्योंकि वे क्रमादेशित हैं सी + + के साथ, और यह एक मोटा विचार देता है कि सी ++ अभी mcu दुनिया में क्या कर सकता है।


3

माइक्रोकंट्रोलर्स के लिए (और मैं केवल माइक्रोकंट्रोलर्स को संबोधित करूंगा), मुझे लगता है कि C C ++ की तुलना में बहुत बेहतर प्रवेश भाषा है। असेंबली अगला कदम होगा, आपको यह समझने में मदद करने के लिए शानदार होगा कि आपका सी कंपाइलर आपको कैसे खराब कर रहा है, कीड़े पैदा कर रहा है, घड़ी की टिक को चुरा रहा है, आदि और अपने मंच से सबसे अधिक प्रदर्शन निचोड़ रहा है। यह सब मान रहे हैं कि आप एक माइक्रोकंट्रोलर के बारे में बात कर रहे हैं - न कि एक आर्डिनो, बेसिक स्टैम्प, या कोई अन्य प्लेटफॉर्म जिसमें लिपटे हुए माइक्रोकंट्रोलर शामिल हैं।

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


2

यदि आप प्रोसेसर के साथ काम करते हैं, तो आप C और उनके प्रकार के कोडांतरक कोड को जान सकते हैं, लेकिन आपको अपने आप को यह भी सिखाना चाहिए कि कैसे एक यूनिक्स कमांड लाइन शेल का उपयोग करें जैसे कि बैश और इसके साथ जाने वाले टूल जैसे कि sed ed, awk, vim / vi, find, tar, gzip, ... साथ ही पायथन जिसे आप कई प्लेटफार्मों पर उपयोग कर सकते हैं और "चीजों को प्राप्त करने" का एक अच्छा तरीका है।


2

यदि आप एक गंभीर एम्बेडेड डेवलपर बनना चाहते हैं तो आपको C सीखना चाहिए। आपको असेंबलर भी पता होना चाहिए, हालांकि आप शायद ही कभी इसका उपयोग करेंगे।


0

मैं पहले इलेक्ट्रॉनिक्स इंजीनियर को परिभाषित करता हूँ कि फर्मवेयर से बोर्ड डिज़ाइन और चिप डिज़ाइन के माध्यम से हार्डवेयर डिज़ाइन में शामिल कोई व्यक्ति। कुछ मामलों में आप फर्मवेयर करेंगे, जैसा कि ऊपर कहा गया है कि आपको "सी" की आवश्यकता होगी। सॉफ्टवेयर को डीप डाउन करना एक उपकरण बन जाता है, C / C ++ से लेकर लिस्प की पूरक भाषाओं में कुछ COMP विज्ञान अवधारणाओं को समझना, जैसे कि भाषाओं की तुलना में अधिक महत्वपूर्ण होगा। आपको अपने डिज़ाइन प्रयासों का समर्थन करने के लिए सॉफ़्टवेयर की आवश्यकता होगी, लेकिन यह एक भौतिक कार्यान्वयन में क्या किया जा सकता है, इसकी मूलभूत सीमाओं को समझने में पूर्वता नहीं लेता है। डिजिटल डिज़ाइन वेरीलॉग / VHDL नहीं है, भले ही डिज़ाइन उन भाषाओं में व्यक्त किया गया हो। पूर्ण रीति-रिवाज और इन-सिलिको डिजाइन में आप लिस्प को भाषाओं और सी - कार्यात्मक भाषाओं की तरह देखेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.