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

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:
एंबेडेड [[सॉफ़्टवेयर]] कंप्यूटर सॉफ़्टवेयर है, जो मशीनों या उपकरणों को नियंत्रित करने के लिए लिखा जाता है, जिसे सामान्यतः कंप्यूटर के रूप में नहीं माना जाता है, जिसे सामान्यतः [[अंतः स्थापित प्रणालियाँ]] के रूप में जाना जाता है। यह विशेष रूप से विशेष [[इलेक्ट्रॉनिक हार्डवेयर]] के लिए विशिष्ट है जिस पर यह चलता है और इसमें समय और मेमोरी की कमी होती है।<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|एसएमएससी एलएएन91सी110 (एसएमएससी 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|एसएमएससी एलएएन91सी110 (एसएमएससी 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 बिट |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> [[सभा की भाषा]] का भी अधिकांशतः उपयोग किया जाता है, खासकर बूटिंग और [[ बाधा डालना ]] हैंडलिंग में। अदा (प्रोग्रामिंग भाषा) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।
मानक कंप्यूटरों के विपरीत जो सामान्यतः पर [[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> [[सभा की भाषा]] का भी अधिकांशतः उपयोग किया जाता है, खासकर बूटिंग और [[ बाधा डालना |बाधा डालना]] हैंडलिंग में। अदा (प्रोग्रामिंग भाषा) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।


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


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


वेब एप्लिकेशन का उपयोग अधिकांशतः हार्डवेयर के प्रबंधन के लिए किया जाता है, चुकी प्रदर्शन के लिए एक्सएमएल फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल प्रणाली सामान्यतः उपयोग किए जाते हैं, चुकी एसक्यूएल डेटाबेस अधिकांशतः अनुपस्थित होते हैं।
वेब एप्लिकेशन का उपयोग अधिकांशतः हार्डवेयर के प्रबंधन के लिए किया जाता है, चुकी प्रदर्शन के लिए एक्सएमएल फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल प्रणाली सामान्यतः उपयोग किए जाते हैं, चुकी एसक्यूएल डेटाबेस अधिकांशतः अनुपस्थित होते हैं।


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


स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ प्रणाली 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 या [[एम्बेडेड सी ++|एम्बेडेड c ++]] में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे [[ बुनियादी | मूलभूत]] (जबकि उदाहरण के लिए पैरालैक्स प्रोपेलर संकलक संकलित बेसिक का उपयोग कर सकते हैं) और [[जावा प्रोग्रामिंग भाषा]] (जावा एमई एंबेडेड 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> उदाहरण के लिए उपलब्ध है [[ARM Cortex-M4|एआरएम कॉर्टेक्स-एम4]], [[Cortex-M7|कॉर्टेक्स]][[Cortex-M7|-]][[ARM Cortex-M4|एम]]7 माइक्रोकंट्रोलर और पुराने [[ARM11|एआरएम11]] जिनका प्रयोग [[Raspberry Pi|रास्पबेरी पाई]] और [[Intel Galileo|इंटेल गैलीलियो]] जनरल2 में किया जाता है) सामान्यतः उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के समय{{snd}} [[माइक्रोपायथन]]{{snd}} चुकी माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट | माइक्रो: बिट) की [[32-बिट]] सूची और [[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 या [[एम्बेडेड सी ++|एम्बेडेड c ++]] में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे [[ बुनियादी |मूलभूत]] (जबकि उदाहरण के लिए पैरालैक्स प्रोपेलर संकलक संकलित बेसिक का उपयोग कर सकते हैं) और [[जावा प्रोग्रामिंग भाषा]] (जावा एमई एंबेडेड 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> उदाहरण के लिए उपलब्ध है [[ARM Cortex-M4|एआरएम कॉर्टेक्स-एम4]], [[Cortex-M7|कॉर्टेक्स]][[Cortex-M7|-]][[ARM Cortex-M4|एम]]7 माइक्रोकंट्रोलर और पुराने [[ARM11|एआरएम11]] जिनका प्रयोग [[Raspberry Pi|रास्पबेरी पाई]] और [[Intel Galileo|इंटेल गैलीलियो]] जनरल2 में किया जाता है) सामान्यतः उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के समय{{snd}} [[माइक्रोपायथन]]{{snd}} चुकी माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट माइक्रो: बिट) की [[32-बिट]] सूची और [[16-बिट]] [[तस्वीर माइक्रोकंट्रोलर|पीआईसी माइक्रोकंट्रोलर है]]


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


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

Revision as of 20:11, 9 March 2023

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

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

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

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


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

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

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

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

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

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

वेब एप्लिकेशन का उपयोग अधिकांशतः हार्डवेयर के प्रबंधन के लिए किया जाता है, चुकी प्रदर्शन के लिए एक्सएमएल फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल प्रणाली सामान्यतः उपयोग किए जाते हैं, चुकी एसक्यूएल डेटाबेस अधिकांशतः अनुपस्थित होते हैं।

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

स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ प्रणाली 16 केबी फ्लैश और 4 केबी रैम में चलते हैं, जिसमें सीपीयू 8 मेगाहर्ट्ज पर काम करता है, अन्य प्रणाली समकालीन कंप्यूटरों को टक्कर दे सकते हैं।[9] इन स्पेस आवश्यकताओं के कारण C++ के अतिरिक्त C या एम्बेडेड c ++ में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे मूलभूत (जबकि उदाहरण के लिए पैरालैक्स प्रोपेलर संकलक संकलित बेसिक का उपयोग कर सकते हैं) और जावा प्रोग्रामिंग भाषा (जावा एमई एंबेडेड 8.3[10] उदाहरण के लिए उपलब्ध है एआरएम कॉर्टेक्स-एम4, कॉर्टेक्स-एम7 माइक्रोकंट्रोलर और पुराने एआरएम11 जिनका प्रयोग रास्पबेरी पाई और इंटेल गैलीलियो जनरल2 में किया जाता है) सामान्यतः उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के समय – माइक्रोपायथन – चुकी माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट माइक्रो: बिट) की 32-बिट सूची और 16-बिट पीआईसी माइक्रोकंट्रोलर है

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

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

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

यह भी देखें

टिप्पणियाँ

  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.