उपकरणों के नियंत्रण के लिए सॉफ्टवेयर: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Computer software written to control machines not typically thought of as computers}} एंबेडेड सॉफ़्टवेयर कंप्...")
 
No edit summary
Line 1: Line 1:
{{Short description|Computer software written to control machines not typically thought of as computers}}
{{Short description|Computer software written to control machines not typically thought of as computers}}
एंबेडेड [[सॉफ़्टवेयर]] कंप्यूटर सॉफ़्टवेयर है, जो मशीनों या उपकरणों को नियंत्रित करने के लिए लिखा जाता है, जिसे आमतौर पर कंप्यूटर के रूप में नहीं माना जाता है, जिसे आमतौर पर [[अंतः स्थापित प्रणालियाँ]] के रूप में जाना जाता है। यह विशेष रूप से विशेष [[इलेक्ट्रॉनिक हार्डवेयर]] के लिए विशिष्ट है जिस पर यह चलता है और इसमें समय और मेमोरी की कमी होती है।<ref>{{cite web|title=Stroustrup on C++ for embedded (bottom p.2)|url=http://www.stroustrup.com/abstraction-and-machine.pdf|access-date=9 December 2012}}</ref> इस शब्द का प्रयोग कभी-कभी [[फर्मवेयर]] के साथ परस्पर विनिमय के लिए किया जाता है।<ref>{{Cite book|last=Emilio|first=Maurizio Di Paolo|url=https://books.google.com/books?id=NixnBAAAQBAJ&q=This+term+is+sometimes+used+interchangeably+with+firmware.&pg=PA60|title=हाई-स्पीड डेटा अधिग्रहण और नियंत्रण के लिए एंबेडेड सिस्टम डिज़ाइन|date=2014-09-01|publisher=Springer|isbn=978-3-319-06865-7|language=en}}</ref>
एंबेडेड [[सॉफ़्टवेयर]] कंप्यूटर सॉफ़्टवेयर है, जो मशीनों या उपकरणों को नियंत्रित करने के लिए लिखा जाता है, जिसे सामान्यतः कंप्यूटर के रूप में नहीं माना जाता है, जिसे सामान्यतः [[अंतः स्थापित प्रणालियाँ]] के रूप में जाना जाता है। यह विशेष रूप से विशेष [[इलेक्ट्रॉनिक हार्डवेयर]] के लिए विशिष्ट है जिस पर यह चलता है और इसमें समय और मेमोरी की कमी होती है।<ref>{{cite web|title=Stroustrup on C++ for embedded (bottom p.2)|url=http://www.stroustrup.com/abstraction-and-machine.pdf|access-date=9 December 2012}}</ref> इस शब्द का प्रयोग कभी-कभी [[फर्मवेयर]] के साथ परस्पर विनिमय के लिए किया जाता है।<ref>{{Cite book|last=Emilio|first=Maurizio Di Paolo|url=https://books.google.com/books?id=NixnBAAAQBAJ&q=This+term+is+sometimes+used+interchangeably+with+firmware.&pg=PA60|title=हाई-स्पीड डेटा अधिग्रहण और नियंत्रण के लिए एंबेडेड सिस्टम डिज़ाइन|date=2014-09-01|publisher=Springer|isbn=978-3-319-06865-7|language=en}}</ref>


[[File:SMSC LAN91C110 ethernet chip.jpg|thumb|SMSC LAN91C110 (SMSC 91x) चिप का क्लोज़-अप, एक एम्बेडेड [[ईथरनेट]] चिप]]एक सटीक और स्थिर विशेषता यह है कि एम्बेडेड सॉफ़्टवेयर के कोई भी या सभी कार्यों को मानव इंटरफ़ेस के माध्यम से शुरू/नियंत्रित नहीं किया जाता है, बल्कि इसके बजाय मशीन-इंटरफ़ेस के माध्यम से किया जाता है।<ref>{{cite web|title=आई.सी.एस. एम्बेडेड सॉफ्टवेयर पर|url=http://www.ics-control.com|access-date=22 July 2013|url-status=dead|archive-url=https://web.archive.org/web/20130322031258/http://ics-control.com/|archive-date=22 March 2013}}</ref>
[[File:SMSC LAN91C110 ethernet chip.jpg|thumb|SMSC LAN91C110 (SMSC 91x) चिप का क्लोज़-अप, एक एम्बेडेड [[ईथरनेट]] चिप]]एक सही और स्थिर विशेषता यह है कि एम्बेडेड सॉफ़्टवेयर के कोई भी या सभी कार्यों को मानव इंटरफ़ेस के माध्यम से प्रारंभ/नियंत्रित नहीं किया जाता है, बल्कि इसके अतिरिक्त मशीन-इंटरफ़ेस के माध्यम से किया जाता है।<ref>{{cite web|title=आई.सी.एस. एम्बेडेड सॉफ्टवेयर पर|url=http://www.ics-control.com|access-date=22 July 2013|url-status=dead|archive-url=https://web.archive.org/web/20130322031258/http://ics-control.com/|archive-date=22 March 2013}}</ref>
उदाहरण के लिए निर्माता [[कारें]], टेलीफोन, मोडेम, [[रोबोट]], उपकरण, खिलौने, सुरक्षा प्रणाली, [[पेसमेकर]], टीवी और सेट-टॉप बॉक्स और डिजिटल घड़ियों के इलेक्ट्रॉनिक्स में एम्बेडेड सॉफ़्टवेयर का निर्माण करते हैं।<ref>{{cite web|title=एंबेडेड सिस्टम के तरीके और प्रौद्योगिकियां|url=http://www.computer.org/portal/web/certification/Embedded-Systems|access-date=9 December 2012|archive-url=https://web.archive.org/web/20131029203328/http://www.computer.org/portal/web/certification/Embedded-Systems|archive-date=29 October 2013|url-status=dead}}</ref> यह सॉफ़्टवेयर बहुत सरल हो सकता है, जैसे कि कुछ [[किलोबाइट]] मेमोरी के साथ [[ 8 बिट ]] [[ microcontroller ]] पर चलने वाले प्रकाश नियंत्रण, प्रसंस्करण जटिलता के उपयुक्त स्तर के साथ संभवतः लगभग सही संगणना ढांचे के साथ निर्धारित<ref>{{citation|title=Intelligence for Embedded Systems|first1=Cesare|last1=Alippi|publisher=Springer|year=2014|isbn=978-3-319-05278-6}}.</ref> ([[यादृच्छिक एल्गोरिदम]] पर आधारित एक पद्धति)। हालांकि, एम्बेडेड सॉफ़्टवेयर [[राउटर (कंप्यूटिंग)]], ऑप्टिकल नेटवर्क तत्वों, हवाई जहाज, [[मिसाइल]] और [[प्रक्रिया नियंत्रण]] प्रणाली जैसे अनुप्रयोगों में बहुत परिष्कृत हो सकता है।<ref>http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf {{Bare URL PDF|date=March 2022}}</ref>
उदाहरण के लिए निर्माता [[कारें]], टेलीफोन, मोडेम, [[रोबोट]], उपकरण, खिलौने, सुरक्षा प्रणाली, [[पेसमेकर]], टीवी और सेट-टॉप बॉक्स और डिजिटल घड़ियों के इलेक्ट्रॉनिक्स में एम्बेडेड सॉफ़्टवेयर का निर्माण करते हैं।<ref>{{cite web|title=एंबेडेड सिस्टम के तरीके और प्रौद्योगिकियां|url=http://www.computer.org/portal/web/certification/Embedded-Systems|access-date=9 December 2012|archive-url=https://web.archive.org/web/20131029203328/http://www.computer.org/portal/web/certification/Embedded-Systems|archive-date=29 October 2013|url-status=dead}}</ref> यह सॉफ़्टवेयर बहुत सरल हो सकता है, जैसे कि कुछ [[किलोबाइट]] मेमोरी के साथ [[ 8 बिट ]] [[ microcontroller | माइक्रो नियंत्रक]] पर चलने वाले प्रकाश नियंत्रण, प्रसंस्करण जटिलता के उपयुक्त स्तर के साथ संभवतः लगभग सही संगणना ढांचे के साथ निर्धारित<ref>{{citation|title=Intelligence for Embedded Systems|first1=Cesare|last1=Alippi|publisher=Springer|year=2014|isbn=978-3-319-05278-6}}.</ref> ([[यादृच्छिक एल्गोरिदम]] पर आधारित एक पद्धति है)। चुकी, एम्बेडेड सॉफ़्टवेयर [[राउटर (कंप्यूटिंग)]], ऑप्टिकल नेटवर्क तत्वों, हवाई जहाज, [[मिसाइल]] और [[प्रक्रिया नियंत्रण]] प्रणाली जैसे अनुप्रयोगों में बहुत परिष्कृत हो सकता है।<ref>http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf {{Bare URL PDF|date=March 2022}}</ref>




== ऑपरेटिंग सिस्टम ==
== ऑपरेटिंग प्रणाली ==
मानक कंप्यूटरों के विपरीत जो आम तौर पर [[macOS]], [[Microsoft Windows]] या [[Linux]] जैसे ऑपरेटिंग सिस्टम का उपयोग करते हैं, एम्बेडेड सॉफ़्टवेयर किसी ऑपरेटिंग सिस्टम का उपयोग नहीं कर सकते हैं। जब वे एक का उपयोग करते हैं, तो विभिन्न प्रकार के ऑपरेटिंग सिस्टम को चुना जा सकता है, आमतौर पर एक [[रीयल-टाइम ऑपरेटिंग सिस्टम]]। एम्बेडेड सॉफ़्टवेयर के लिए कोड आमतौर पर C (प्रोग्रामिंग भाषा) या [[C++]] में लिखा जाता है, लेकिन विभिन्न उच्च-स्तरीय प्रोग्रामिंग भाषाएँ, जैसे कि [[जावा (प्रोग्रामिंग भाषा)]], [[पायथन (प्रोग्रामिंग भाषा)]] और [[जावास्क्रिप्ट]], अब माइक्रोकंट्रोलर्स को लक्षित करने के लिए भी आम उपयोग में हैं। अंतः स्थापित प्रणालियाँ।<ref>{{cite conference |title= आईओटी डोमेन में एम्बेडेड के लिए प्रोग्रामिंग प्रतिमान बदलना|last1= Mazzei |first1= Daniele |last2= Montelisciani |first2= Gabriele |last3= Baldi |first3= Giacomo |last4= Fantoni |first4= Gualtiero |date= 2015 |publisher= IEEE |pages= 239–244 |conference=  Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on |location=Milan |doi= 10.1109/WF-IoT.2015.7389059}}</ref> [[सभा की भाषा]] का भी अक्सर उपयोग किया जाता है, खासकर बूटिंग और [[ बाधा डालना ]] हैंडलिंग में। Ada (प्रोग्रामिंग लैंग्वेज) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।
मानक कंप्यूटरों के विपरीत जो सामान्यतः पर [[macOS|मैक ओएस]], [[Microsoft Windows|माइक्रोसॉफ्ट विंडोज]] या [[Linux|लिनक्स]] जैसे ऑपरेटिंग प्रणाली का उपयोग करते हैं, एम्बेडेड सॉफ़्टवेयर किसी ऑपरेटिंग प्रणाली का उपयोग नहीं कर सकते हैं। जब वे एक का उपयोग करते हैं, तो विभिन्न प्रकार के ऑपरेटिंग प्रणाली को चुना जा सकता है, सामान्यतः एक [[रीयल-टाइम ऑपरेटिंग सिस्टम|रीयल-टाइम ऑपरेटिंग प्रणाली]]। एम्बेडेड सॉफ़्टवेयर के लिए कोड सामान्यतः C (प्रोग्रामिंग भाषा) या [[C++]] में लिखा जाता है, लेकिन विभिन्न उच्च-स्तरीय प्रोग्रामिंग भाषाएँ, जैसे कि [[जावा (प्रोग्रामिंग भाषा)]], [[पायथन (प्रोग्रामिंग भाषा)]] और [[जावास्क्रिप्ट]], अब माइक्रोकंट्रोलर्स को लक्षित करने के लिए भी आम उपयोग में हैं। अंतः स्थापित प्रणालियाँ।<ref>{{cite conference |title= आईओटी डोमेन में एम्बेडेड के लिए प्रोग्रामिंग प्रतिमान बदलना|last1= Mazzei |first1= Daniele |last2= Montelisciani |first2= Gabriele |last3= Baldi |first3= Giacomo |last4= Fantoni |first4= Gualtiero |date= 2015 |publisher= IEEE |pages= 239–244 |conference=  Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on |location=Milan |doi= 10.1109/WF-IoT.2015.7389059}}</ref> [[सभा की भाषा]] का भी अक्सर उपयोग किया जाता है, खासकर बूटिंग और [[ बाधा डालना ]] हैंडलिंग में। Ada (प्रोग्रामिंग लैंग्वेज) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।


== एप्लिकेशन सॉफ़्टवेयर से अंतर ==
== एप्लिकेशन सॉफ़्टवेयर से अंतर ==
[[File:MicroVGA TUI demoapp.jpg|thumb|MicroVGA का उपयोग कर एंबेडेड सिस्टम [[टेक्स्ट यूजर इंटरफेस]]<ref group="nb" name="MicroVGA">For more details of MicroVGA see this [http://www.microvga.com/pdf/uvga-text-ds.pdf PDF].</ref>]]अधिकांश उपभोक्ता [[अनुप्रयोग प्रक्रिया सामग्री]] से परिचित हैं जो कंप्यूटर पर कार्यक्षमता प्रदान करते हैं। हालाँकि एम्बेडेड सॉफ़्टवेयर अक्सर कम दिखाई देता है, लेकिन कम जटिल नहीं है। एप्लिकेशन सॉफ़्टवेयर के विपरीत, एम्बेडेड सॉफ़्टवेयर में निश्चित हार्डवेयर आवश्यकताएँ और क्षमताएँ होती हैं, और तृतीय-पक्ष हार्डवेयर या सॉफ़्टवेयर को जोड़ना सख्ती से नियंत्रित होता है।
[[File:MicroVGA TUI demoapp.jpg|thumb|MicroVGA का उपयोग कर एंबेडेड प्रणाली [[टेक्स्ट यूजर इंटरफेस]]<ref group="nb" name="MicroVGA">For more details of MicroVGA see this [http://www.microvga.com/pdf/uvga-text-ds.pdf PDF].</ref>]]अधिकांश उपभोक्ता [[अनुप्रयोग प्रक्रिया सामग्री]] से परिचित हैं जो कंप्यूटर पर कार्यक्षमता प्रदान करते हैं। हालाँकि एम्बेडेड सॉफ़्टवेयर अक्सर कम दिखाई देता है, लेकिन कम जटिल नहीं है। एप्लिकेशन सॉफ़्टवेयर के विपरीत, एम्बेडेड सॉफ़्टवेयर में निश्चित हार्डवेयर आवश्यकताएँ और क्षमताएँ होती हैं, और तृतीय-पक्ष हार्डवेयर या सॉफ़्टवेयर को जोड़ना सख्ती से नियंत्रित होता है।


एंबेडेड सॉफ़्टवेयर को निर्माण समय पर सभी आवश्यक [[डिवाइस ड्राइवर]]ों को शामिल करने की आवश्यकता होती है, और डिवाइस ड्राइवर विभिन्न हार्डवेयर उपकरणों के लिए लिखे जाते हैं। ये डिवाइस ड्राइवर, जिन्हें BSP ([[ बोर्ड समर्थन पैकेज ]]) कहा जाता है, हार्डवेयर-विशिष्ट ड्राइवर और अन्य रूटीन वाले सॉफ़्टवेयर की परत बनाते हैं जो एक विशेष ऑपरेटिंग सिस्टम (पारंपरिक रूप से एक रीयल-टाइम ऑपरेटिंग सिस्टम, या RTOS) को एक विशेष हार्डवेयर वातावरण में कार्य करने की अनुमति देते हैं। (एक कंप्यूटर या सीपीयू कार्ड), आरटीओएस के साथ ही एकीकृत। सॉफ्टवेयर सीपीयू और चुने गए विशिष्ट चिप्स पर अत्यधिक निर्भर है। अधिकांश एम्बेडेड सॉफ़्टवेयर इंजीनियरों के पास रजिस्टरों और संचार प्रणाली के उपयोग को निर्धारित करने के लिए [[ ढांच के रूप में ]]्स पढ़ने और घटकों के लिए डेटा शीट पढ़ने का कम से कम ज्ञान होता है। [[बिट हेरफेर]] का उपयोग करने के साथ-साथ [[दशमलव]], [[हेक्साडेसिमल]] और बाइनरी अंक प्रणाली के बीच रूपांतरण उपयोगी है।<ref>{{cite web |title=एम्बेडेड सॉफ्टवेयर पर स्ट्राउस्ट्रप|url=http://www.www.stroustrup.com/Programming/25_embedded.ppt |access-date=9 December 2012 |url-status=dead |archive-url=https://web.archive.org/web/20130203113844/http://www.stroustrup.com/Programming/25_embedded.ppt |archive-date=3 February 2013 }}</ref>
एंबेडेड सॉफ़्टवेयर को निर्माण समय पर सभी आवश्यक [[डिवाइस ड्राइवर]]ों को शामिल करने की आवश्यकता होती है, और डिवाइस ड्राइवर विभिन्न हार्डवेयर उपकरणों के लिए लिखे जाते हैं। ये डिवाइस ड्राइवर, जिन्हें BSP ([[ बोर्ड समर्थन पैकेज ]]) कहा जाता है, हार्डवेयर-विशिष्ट ड्राइवर और अन्य रूटीन वाले सॉफ़्टवेयर की परत बनाते हैं जो एक विशेष ऑपरेटिंग प्रणाली (पारंपरिक रूप से एक रीयल-टाइम ऑपरेटिंग प्रणाली, या RTOS) को एक विशेष हार्डवेयर वातावरण में कार्य करने की अनुमति देते हैं। (एक कंप्यूटर या सीपीयू कार्ड), आरटीओएस के साथ ही एकीकृत। सॉफ्टवेयर सीपीयू और चुने गए विशिष्ट चिप्स पर अत्यधिक निर्भर है। अधिकांश एम्बेडेड सॉफ़्टवेयर इंजीनियरों के पास रजिस्टरों और संचार प्रणाली के उपयोग को निर्धारित करने के लिए [[ ढांच के रूप में ]]्स पढ़ने और घटकों के लिए डेटा शीट पढ़ने का कम से कम ज्ञान होता है। [[बिट हेरफेर]] का उपयोग करने के साथ-साथ [[दशमलव]], [[हेक्साडेसिमल]] और बाइनरी अंक प्रणाली के बीच रूपांतरण उपयोगी है।<ref>{{cite web |title=एम्बेडेड सॉफ्टवेयर पर स्ट्राउस्ट्रप|url=http://www.www.stroustrup.com/Programming/25_embedded.ppt |access-date=9 December 2012 |url-status=dead |archive-url=https://web.archive.org/web/20130203113844/http://www.stroustrup.com/Programming/25_embedded.ppt |archive-date=3 February 2013 }}</ref>
वेब एप्लिकेशन का उपयोग अक्सर हार्डवेयर के प्रबंधन के लिए किया जाता है, हालांकि प्रदर्शन के लिए XML फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल सिस्टम आमतौर पर उपयोग किए जाते हैं, हालांकि SQL डेटाबेस अक्सर अनुपस्थित होते हैं।
वेब एप्लिकेशन का उपयोग अक्सर हार्डवेयर के प्रबंधन के लिए किया जाता है, चुकी प्रदर्शन के लिए XML फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल प्रणाली सामान्यतः उपयोग किए जाते हैं, चुकी SQL डेटाबेस अक्सर अनुपस्थित होते हैं।


सॉफ़्टवेयर विकास के लिए एक [[क्रॉस कंपाइलर]] के उपयोग की आवश्यकता होती है, जो कंप्यूटर पर चलता है लेकिन लक्षित डिवाइस के लिए निष्पादन योग्य कोड उत्पन्न करता है। डिबगिंग के लिए एक [[इन-सर्किट एमुलेटर]] और डीबगिंग हार्डवेयर जैसे [[JTAG]] या JTAG#सीरियल वायर डिबग डिबगर्स के उपयोग की आवश्यकता होती है। सॉफ्टवेयर डेवलपर्स के पास अक्सर संपूर्ण कर्नेल (OS) स्रोत कोड तक पहुंच होती है।
सॉफ़्टवेयर विकास के लिए एक [[क्रॉस कंपाइलर]] के उपयोग की आवश्यकता होती है, जो कंप्यूटर पर चलता है लेकिन लक्षित डिवाइस के लिए निष्पादन योग्य कोड उत्पन्न करता है। डिबगिंग के लिए एक [[इन-सर्किट एमुलेटर]] और डीबगिंग हार्डवेयर जैसे [[JTAG]] या JTAG#सीरियल वायर डिबग डिबगर्स के उपयोग की आवश्यकता होती है। सॉफ्टवेयर डेवलपर्स के पास अक्सर संपूर्ण कर्नेल (OS) स्रोत कोड तक पहुंच होती है।


स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ सिस्टम 16 केबी फ्लैश और 4 केबी रैम में चलते हैं, जिसमें सीपीयू 8 मेगाहर्ट्ज पर काम करता है, अन्य सिस्टम समकालीन कंप्यूटरों को टक्कर दे सकते हैं।<ref>{{cite web|title=एम्बेडेड सीपीयू का उदाहरण|url=http://www.st.com/internet/mcu/product/216844.jsp|access-date=9 December 2012}}</ref> इन स्पेस आवश्यकताओं के कारण C++ के बजाय C या [[एम्बेडेड सी ++]] में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे [[ बुनियादी ]] (जबकि उदाहरण के लिए Parallax Propeller#BASIC संकलक संकलित BASIC का उपयोग कर सकते हैं) और [[जावा प्रोग्रामिंग भाषा]]<!--at least was used, with ARM (and others) JVM bytecode in hardware--> (जावा एमई एंबेडेड 8.3<ref>{{cite web |url=https://www.oracle.com/technetwork/java/embedded/javame/embed-me/downloads/java-embedded-java-me-download-2162242.html |title=जावा एमई एंबेडेड|work=Oracle Technology Network}}</ref> उदाहरण के लिए उपलब्ध है <!--STMicroelectronics--> [[ARM Cortex-M4]], [[Cortex-M7]] माइक्रोकंट्रोलर और पुराने [[ARM11]] जिनका प्रयोग [[Raspberry Pi]] और [[Intel Galileo]] Gen. 2 में किया जाता है) आमतौर पर उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के दौरान{{snd}} [[माइक्रोपायथन]]{{snd}} हालांकि माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा। एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट | माइक्रो: बिट) की [[32-बिट]] सूची और <!--say e.g. here? CC3200 seems to be ARM, so only other non-ARM:?-->[[16-बिट]] [[तस्वीर माइक्रोकंट्रोलर]]
स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ प्रणाली 16 केबी फ्लैश और 4 केबी रैम में चलते हैं, जिसमें सीपीयू 8 मेगाहर्ट्ज पर काम करता है, अन्य प्रणाली समकालीन कंप्यूटरों को टक्कर दे सकते हैं।<ref>{{cite web|title=एम्बेडेड सीपीयू का उदाहरण|url=http://www.st.com/internet/mcu/product/216844.jsp|access-date=9 December 2012}}</ref> इन स्पेस आवश्यकताओं के कारण C++ के बजाय C या [[एम्बेडेड सी ++]] में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे [[ बुनियादी ]] (जबकि उदाहरण के लिए Parallax Propeller#BASIC संकलक संकलित BASIC का उपयोग कर सकते हैं) और [[जावा प्रोग्रामिंग भाषा]]<!--at least was used, with ARM (and others) JVM bytecode in hardware--> (जावा एमई एंबेडेड 8.3<ref>{{cite web |url=https://www.oracle.com/technetwork/java/embedded/javame/embed-me/downloads/java-embedded-java-me-download-2162242.html |title=जावा एमई एंबेडेड|work=Oracle Technology Network}}</ref> उदाहरण के लिए उपलब्ध है <!--STMicroelectronics--> [[ARM Cortex-M4]], [[Cortex-M7]] माइक्रोकंट्रोलर और पुराने [[ARM11]] जिनका प्रयोग [[Raspberry Pi]] और [[Intel Galileo]] Gen. 2 में किया जाता है) सामान्यतः उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के दौरान{{snd}} [[माइक्रोपायथन]]{{snd}} चुकी माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा। एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट | माइक्रो: बिट) की [[32-बिट]] सूची और <!--say e.g. here? CC3200 seems to be ARM, so only other non-ARM:?-->[[16-बिट]] [[तस्वीर माइक्रोकंट्रोलर]]


== संचार प्रोटोकॉल ==
== संचार प्रोटोकॉल ==
प्रोसेसर के बीच और एक प्रोसेसर और अन्य घटकों के बीच संचार आवश्यक है। [[ स्मृति पता ]] के अलावा, हार्डवेयर स्तर के सामान्य प्रोटोकॉल में I²C, [[सीरियल पेरिफेरल इंटरफेस बस]], [[ आनुक्रमिक द्वार ]], [[ 1-तार ]], इथरनेट और [[यूनिवर्सल सीरियल बस]] शामिल हैं।
प्रोसेसर के बीच और एक प्रोसेसर और अन्य घटकों के बीच संचार आवश्यक है। [[ स्मृति पता ]] के अलावा, हार्डवेयर स्तर के सामान्य प्रोटोकॉल में I²C, [[सीरियल पेरिफेरल इंटरफेस बस]], [[ आनुक्रमिक द्वार ]], [[ 1-तार ]], इथरनेट और [[यूनिवर्सल सीरियल बस]] शामिल हैं।


एम्बेडेड सिस्टम में उपयोग के लिए डिज़ाइन किए गए संचार प्रोटोकॉल NicheStack TCP/IPv4 और CMX सिस्टम सहित कंपनियों से [[बंद स्रोत]] के रूप में उपलब्ध हैं। [[ओपन-सोर्स मॉडल]] | ओपन-सोर्स प्रोटोकॉल [[यूआईपी (माइक्रो आईपी)]], [[एलडब्ल्यूआईपी]] और अन्य से उत्पन्न होते हैं।
एम्बेडेड प्रणाली में उपयोग के लिए डिज़ाइन किए गए संचार प्रोटोकॉल NicheStack TCP/IPv4 और CMX प्रणाली सहित कंपनियों से [[बंद स्रोत]] के रूप में उपलब्ध हैं। [[ओपन-सोर्स मॉडल]] | ओपन-सोर्स प्रोटोकॉल [[यूआईपी (माइक्रो आईपी)]], [[एलडब्ल्यूआईपी]] और अन्य से उत्पन्न होते हैं।


== यह भी देखें ==
== यह भी देखें ==

Revision as of 12:28, 9 March 2023

एंबेडेड सॉफ़्टवेयर कंप्यूटर सॉफ़्टवेयर है, जो मशीनों या उपकरणों को नियंत्रित करने के लिए लिखा जाता है, जिसे सामान्यतः कंप्यूटर के रूप में नहीं माना जाता है, जिसे सामान्यतः अंतः स्थापित प्रणालियाँ के रूप में जाना जाता है। यह विशेष रूप से विशेष इलेक्ट्रॉनिक हार्डवेयर के लिए विशिष्ट है जिस पर यह चलता है और इसमें समय और मेमोरी की कमी होती है।[1] इस शब्द का प्रयोग कभी-कभी फर्मवेयर के साथ परस्पर विनिमय के लिए किया जाता है।[2]

SMSC LAN91C110 (SMSC 91x) चिप का क्लोज़-अप, एक एम्बेडेड ईथरनेट चिप

एक सही और स्थिर विशेषता यह है कि एम्बेडेड सॉफ़्टवेयर के कोई भी या सभी कार्यों को मानव इंटरफ़ेस के माध्यम से प्रारंभ/नियंत्रित नहीं किया जाता है, बल्कि इसके अतिरिक्त मशीन-इंटरफ़ेस के माध्यम से किया जाता है।[3]

उदाहरण के लिए निर्माता कारें, टेलीफोन, मोडेम, रोबोट, उपकरण, खिलौने, सुरक्षा प्रणाली, पेसमेकर, टीवी और सेट-टॉप बॉक्स और डिजिटल घड़ियों के इलेक्ट्रॉनिक्स में एम्बेडेड सॉफ़्टवेयर का निर्माण करते हैं।[4] यह सॉफ़्टवेयर बहुत सरल हो सकता है, जैसे कि कुछ किलोबाइट मेमोरी के साथ 8 बिट माइक्रो नियंत्रक पर चलने वाले प्रकाश नियंत्रण, प्रसंस्करण जटिलता के उपयुक्त स्तर के साथ संभवतः लगभग सही संगणना ढांचे के साथ निर्धारित[5] (यादृच्छिक एल्गोरिदम पर आधारित एक पद्धति है)। चुकी, एम्बेडेड सॉफ़्टवेयर राउटर (कंप्यूटिंग), ऑप्टिकल नेटवर्क तत्वों, हवाई जहाज, मिसाइल और प्रक्रिया नियंत्रण प्रणाली जैसे अनुप्रयोगों में बहुत परिष्कृत हो सकता है।[6]


ऑपरेटिंग प्रणाली

मानक कंप्यूटरों के विपरीत जो सामान्यतः पर मैक ओएस, माइक्रोसॉफ्ट विंडोज या लिनक्स जैसे ऑपरेटिंग प्रणाली का उपयोग करते हैं, एम्बेडेड सॉफ़्टवेयर किसी ऑपरेटिंग प्रणाली का उपयोग नहीं कर सकते हैं। जब वे एक का उपयोग करते हैं, तो विभिन्न प्रकार के ऑपरेटिंग प्रणाली को चुना जा सकता है, सामान्यतः एक रीयल-टाइम ऑपरेटिंग प्रणाली। एम्बेडेड सॉफ़्टवेयर के लिए कोड सामान्यतः C (प्रोग्रामिंग भाषा) या C++ में लिखा जाता है, लेकिन विभिन्न उच्च-स्तरीय प्रोग्रामिंग भाषाएँ, जैसे कि जावा (प्रोग्रामिंग भाषा), पायथन (प्रोग्रामिंग भाषा) और जावास्क्रिप्ट, अब माइक्रोकंट्रोलर्स को लक्षित करने के लिए भी आम उपयोग में हैं। अंतः स्थापित प्रणालियाँ।[7] सभा की भाषा का भी अक्सर उपयोग किया जाता है, खासकर बूटिंग और बाधा डालना हैंडलिंग में। Ada (प्रोग्रामिंग लैंग्वेज) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।

एप्लिकेशन सॉफ़्टवेयर से अंतर

MicroVGA का उपयोग कर एंबेडेड प्रणाली टेक्स्ट यूजर इंटरफेस[nb 1]

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

एंबेडेड सॉफ़्टवेयर को निर्माण समय पर सभी आवश्यक डिवाइस ड्राइवरों को शामिल करने की आवश्यकता होती है, और डिवाइस ड्राइवर विभिन्न हार्डवेयर उपकरणों के लिए लिखे जाते हैं। ये डिवाइस ड्राइवर, जिन्हें BSP (बोर्ड समर्थन पैकेज ) कहा जाता है, हार्डवेयर-विशिष्ट ड्राइवर और अन्य रूटीन वाले सॉफ़्टवेयर की परत बनाते हैं जो एक विशेष ऑपरेटिंग प्रणाली (पारंपरिक रूप से एक रीयल-टाइम ऑपरेटिंग प्रणाली, या RTOS) को एक विशेष हार्डवेयर वातावरण में कार्य करने की अनुमति देते हैं। (एक कंप्यूटर या सीपीयू कार्ड), आरटीओएस के साथ ही एकीकृत। सॉफ्टवेयर सीपीयू और चुने गए विशिष्ट चिप्स पर अत्यधिक निर्भर है। अधिकांश एम्बेडेड सॉफ़्टवेयर इंजीनियरों के पास रजिस्टरों और संचार प्रणाली के उपयोग को निर्धारित करने के लिए ढांच के रूप में ्स पढ़ने और घटकों के लिए डेटा शीट पढ़ने का कम से कम ज्ञान होता है। बिट हेरफेर का उपयोग करने के साथ-साथ दशमलव, हेक्साडेसिमल और बाइनरी अंक प्रणाली के बीच रूपांतरण उपयोगी है।[8] वेब एप्लिकेशन का उपयोग अक्सर हार्डवेयर के प्रबंधन के लिए किया जाता है, चुकी प्रदर्शन के लिए XML फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल प्रणाली सामान्यतः उपयोग किए जाते हैं, चुकी SQL डेटाबेस अक्सर अनुपस्थित होते हैं।

सॉफ़्टवेयर विकास के लिए एक क्रॉस कंपाइलर के उपयोग की आवश्यकता होती है, जो कंप्यूटर पर चलता है लेकिन लक्षित डिवाइस के लिए निष्पादन योग्य कोड उत्पन्न करता है। डिबगिंग के लिए एक इन-सर्किट एमुलेटर और डीबगिंग हार्डवेयर जैसे JTAG या JTAG#सीरियल वायर डिबग डिबगर्स के उपयोग की आवश्यकता होती है। सॉफ्टवेयर डेवलपर्स के पास अक्सर संपूर्ण कर्नेल (OS) स्रोत कोड तक पहुंच होती है।

स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ प्रणाली 16 केबी फ्लैश और 4 केबी रैम में चलते हैं, जिसमें सीपीयू 8 मेगाहर्ट्ज पर काम करता है, अन्य प्रणाली समकालीन कंप्यूटरों को टक्कर दे सकते हैं।[9] इन स्पेस आवश्यकताओं के कारण C++ के बजाय C या एम्बेडेड सी ++ में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे बुनियादी (जबकि उदाहरण के लिए Parallax Propeller#BASIC संकलक संकलित BASIC का उपयोग कर सकते हैं) और जावा प्रोग्रामिंग भाषा (जावा एमई एंबेडेड 8.3[10] उदाहरण के लिए उपलब्ध है ARM Cortex-M4, Cortex-M7 माइक्रोकंट्रोलर और पुराने ARM11 जिनका प्रयोग Raspberry Pi और Intel Galileo Gen. 2 में किया जाता है) सामान्यतः उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के दौरान – माइक्रोपायथन – चुकी माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा। एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट | माइक्रो: बिट) की 32-बिट सूची और 16-बिट तस्वीर माइक्रोकंट्रोलर

संचार प्रोटोकॉल

प्रोसेसर के बीच और एक प्रोसेसर और अन्य घटकों के बीच संचार आवश्यक है। स्मृति पता के अलावा, हार्डवेयर स्तर के सामान्य प्रोटोकॉल में I²C, सीरियल पेरिफेरल इंटरफेस बस, आनुक्रमिक द्वार , 1-तार , इथरनेट और यूनिवर्सल सीरियल बस शामिल हैं।

एम्बेडेड प्रणाली में उपयोग के लिए डिज़ाइन किए गए संचार प्रोटोकॉल NicheStack TCP/IPv4 और CMX प्रणाली सहित कंपनियों से बंद स्रोत के रूप में उपलब्ध हैं। ओपन-सोर्स मॉडल | ओपन-सोर्स प्रोटोकॉल यूआईपी (माइक्रो आईपी), एलडब्ल्यूआईपी और अन्य से उत्पन्न होते हैं।

यह भी देखें

टिप्पणियाँ

  1. For more details of MicroVGA see this PDF.


संदर्भ

  • Edward A. Lee, "Embedded Software", Advances in Computers (Marvin Victor Zelkowitz, editor) 56, Academic Press, London, 2002.
  1. "Stroustrup on C++ for embedded (bottom p.2)" (PDF). Retrieved 9 December 2012.
  2. Emilio, Maurizio Di Paolo (2014-09-01). हाई-स्पीड डेटा अधिग्रहण और नियंत्रण के लिए एंबेडेड सिस्टम डिज़ाइन (in English). Springer. ISBN 978-3-319-06865-7.
  3. "आई.सी.एस. एम्बेडेड सॉफ्टवेयर पर". Archived from the original on 22 March 2013. Retrieved 22 July 2013.
  4. "एंबेडेड सिस्टम के तरीके और प्रौद्योगिकियां". Archived from the original on 29 October 2013. Retrieved 9 December 2012.
  5. Alippi, Cesare (2014), Intelligence for Embedded Systems, Springer, ISBN 978-3-319-05278-6.
  6. http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf[bare URL PDF]
  7. Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). आईओटी डोमेन में एम्बेडेड के लिए प्रोग्रामिंग प्रतिमान बदलना. Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. pp. 239–244. doi:10.1109/WF-IoT.2015.7389059.
  8. "एम्बेडेड सॉफ्टवेयर पर स्ट्राउस्ट्रप". Archived from the original on 3 February 2013. Retrieved 9 December 2012.
  9. "एम्बेडेड सीपीयू का उदाहरण". Retrieved 9 December 2012.
  10. "जावा एमई एंबेडेड". Oracle Technology Network.