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