एटीएम या टीवी जैसी मशीनों के लिए सॉफ्टवेयर कैसे बनाया जाता है?


14

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

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

इस प्रकार की मशीनों के लिए सॉफ्टवेयर वास्तव में कैसे बनाया जाता है? मुझे लगता है कि यह कंप्यूटर आधारित प्रोग्रामिंग के समान नहीं हो सकता। ऐसी चीजों को काम करने के लिए वे किस भाषा का उपयोग करते हैं और किसी को काम कैसे मिलता है? क्या इस तरह की प्रोग्रामिंग पर प्रोग्रामर विशेष हैं? इन मशीनों को बनाने की प्रक्रिया क्या है?



लिंक के लिए आपको धन्यवाद। जब तक मुझे आपका लिंक नहीं मिला, मुझे इस बारे में कोई सुराग नहीं था। इसके अलावा इसे क्यों उतारा गया? इसके साथ गलत क्या है?
बुगस्टर

3
@ ThePlan लोग ऐसे प्रश्नों को टाल देते हैं जो टाइप के नहीं हैं "मैं इस विशेष समस्या को कैसे हल करूं?"
CFL_Jeff

3
हालांकि लोग कई कारणों से नीचे जा सकते हैं और उन्हें खुद को समझाने की आवश्यकता नहीं है, डाउनवोट एरो पर टूलटिप पढ़ता है: "यह प्रश्न कोई शोध प्रयास नहीं दिखाता है; यह अस्पष्ट या उपयोगी नहीं है" - मुझे लगता है कि पहला वाक्य बहुत करीब है आपके द्वारा प्राप्त डाउनवोट के लिए पर्याप्त विवरण, प्रोग्रामर से पूछने से पहले कम से कम कुछ मामूली शोध करें
यानिस

9
मैं कहता हूं कि उसे थोड़ा सुस्त कर दो। जब आप शब्द नहीं जानते हैं तो एम्बेडेड प्रोग्रामिंग पर शोध करना मुश्किल है।
कार्ल बेज़ेलफेल्ट

जवाबों:


15

यह एंबेडेड सिस्टम या एंबेडेड सॉफ्टवेयर डेवलपमेंट के रूप में जाना जाता है। यदि आप सामान्य प्रक्रिया के बारे में अधिक जानना चाहते हैं तो किसी भी एक आर्किटेक्चर की ओर बहुत अधिक जाने के बिना मैं इस पुस्तक की सिफारिश करूंगा । यह आपको खेलने के लिए एक वास्तविक समय ऑपरेटिंग सिस्टम भी देता है।

एंबेडेड प्रोग्रामिंग बहुत ही वास्तुकला पर निर्भर है। आप आमतौर पर गंभीर प्रतिक्रिया, प्रोग्राम आकार, त्रुटि सुधार, और लागत बाधाओं के तहत काम कर रहे हैं। उदाहरण के लिए आपके पास एक z80 (8 बिट प्रोसेसर, वे हर जगह हैं) और शायद कुछ किलो किलोबाइट के साथ खेलना है। सिस्टम को क्या करना है और कैसे प्रोग्राम सेट करना है, यह बताने के लिए आपके पास केवल एक ROM हो सकता है। यह आकार में केवल कुछ किलोबाइट हो सकता है। इतनी कम याददाश्त क्यों? ठीक है अगर आप छोटे चूसने वाले के 15 मिलियन का निर्माण करते हैं; हर पैसा 150,000 डॉलर हो जाता है।

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

आर्किटेक्चर के बारे में जितना हो सके उतना जानें क्योंकि जैसा मैंने कहा, मेमोरी एलोकेशन और बिटवाइज़ ऑपरेशन्स वास्तव में महत्वपूर्ण होने लगते हैं।


धन्यवाद, यह उत्तर एक स्वीकृत उत्तर के लिए मेरी पसंद है क्योंकि यह संक्षेप में एम्बेडेड सिस्टम की व्याख्या करता है और मुझे एक पुस्तक विकल्प भी देता है।
बुगस्टर

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

@MartinBeckett: आपने कुछ हद तक एम्बेडेड सिस्टम के विकास की कठिनाई का तुच्छीकरण किया है। पिछले एक नैनो सेकंड में एक वास्तविक प्रतिक्रिया की आवश्यकता थी। यह अप्राप्य था - यह जानने का एकमात्र तरीका सही था कि यह साबित करना है कि कोड डिजाइन और समीक्षा द्वारा सही था। उन काउबॉय के विपरीत जो उपयोगकर्ता अनुप्रयोगों को कोड करते हैं, जिनके दोष एक ऑनलाइन अपडेट द्वारा तय किए जाते हैं।
मटनज़

इसके अलावा इन प्रणालियों को मानव या अन्य पहुंच के बिना वर्षों या दशकों तक संचालित करने की आवश्यकता हो सकती है।
वर्ल्ड इंजीनियर

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

5

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


3
... और कुछ एटीएम विंडोज चलाते हैं। जब वे ब्लू-स्क्रीन, चित्र आमतौर पर thedailywtf.com पर समाप्त होते हैं । और मेरे शहर में, स्थानीय सार्वजनिक पारगमन कियोस्क से मासिक पास बेचता है। मैंने एक बार एक को देखा जो फंस गया था - यह विंडोज 2000 चल रहा था (यह लगभग 6 महीने पहले था)!
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner - धन्यवाद, यहां एटीएम न करें ताकि मुझे पता न चले कि वे क्या कर रहे हैं। । ।
व्याट बार्नेट

ATM = स्वचालित टेलर मशीन। AKA बैंक मशीन। AKA वह मशीन जो आपको टेलर के पास जाने के बजाय आपके खाते से पैसे निकालने देती है।
FrustratedWithFormsDesigner 21

मुझे पता है कि, बस उनके साथ काम नहीं करते बल्कि एक ग्राहक के रूप में। । ।
वायट बार्नेट

4

मैंने देखा है कि डेनवर, कोलोराडो में दो एटीएम खुले हैं। दोनों (तब) कम्पास बैंक के एटीएम थे, और दोनों ही कठोर मामले में विंडोज एक्सपी थे। मुझे टेक से पूछने के लिए मिला, विशेष रूप से, उनमें से एक भाग गया, और उसने "XP एंबेडेड" जैसा कुछ कहा।

तो, मुझे यकीन है कि एटीएम प्रोग्रामिंग इन दिनों एम्बेडेड प्रोग्रामिंग की तरह कम है, और मानक विंडोज विकास की तरह अधिक है।


सिर्फ "इन दिनों" नहीं। एटीएम विंडोज एनटी 3, या ओएस / 2 चलाते थे। और आपके द्वारा देखा गया UI इंटरनेट एक्सप्लोरर द्वारा प्रदर्शित HTML पृष्ठ होने की सबसे अधिक संभावना है। प्रोग्रामिंग भाषा कुछ भी हो सकती है - मैंने एक जावा सिस्टम पर काम किया है जो VB में लिखे एक को बदल देता है। एटीएम वास्तव में कुछ असामान्य बाह्य उपकरणों और ड्राइवरों के साथ सिर्फ नियमित पीसी हैं।
माइकल बोर्गवर्ड

3

इस प्रकार के उपकरणों को एम्बेडेड प्रोग्रामिंग का उपयोग करके प्रोग्राम किया जाता है । यह एक बहुत ही निम्न प्रकार की प्रोग्रामिंग है जो तर्क और द्वारों के साथ बहुत अधिक व्यवहार करती है।

यदि आप एम्बेडेड प्रोग्रामिंग को हाथ से सीखने में रुचि रखते हैं, तो मैं आर्डिनो में देखने की सलाह दूंगा

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