मेरा अनुमान है कि रोम और कुछ सीपीयू चिप्स जहां सॉफ्टवेयर भागों को नियंत्रित संग्रहीत किया जाता है नहीं है।
कई एम्बेडेड सिस्टम का प्रयोग कर एक micro-controller(MCU) या system-on-a-chip (SoC), इन एक या अधिक CPU कोर, के साथ साथ रोम (आमतौर पर फ्लैश) मेमोरी, रैम, और परिधीय उपकरणों और इंटरफेस इस तरह की एक चयन एक एकल चिप पर शामिल यूएआरटी, यूएसबी, जीपीआईओ, एडीसी, डीएसी, एसपीआई, आई 2 सी, टाइमर/काउंटर, ईथरनेट कंट्रोलर, कैन, एसडीआईओ, एलसीडी नियंत्रक और कई अन्य के रूप में। मरने की जगह सीमाओं और फ्लैश और एसआरएएम के रिश्तेदार कम घनत्व के कारण, एमसीयू में बाहरी रोम या रैम मेमोरी भी हो सकती है, और इसमें उच्च घनत्व और सस्ती एसडीआरएएम का उपयोग करने के लिए एसडीआरएएम नियंत्रक हो सकता है।
अक्सर कोड ऑन-चिप फ्लैश या ओटीपी रोम (एक बार प्रोग्राम करने योग्य रॉम) में संग्रहीत किया जाता है, लेकिन बाहरी मेमोरी का उपयोग किया जा सकता है। कुछ सिस्टम सीधे रोम से कोड निष्पादित करते हैं, अन्य लोग रोम छवि को निष्पादन के लिए रैम पर कॉपी करते हैं (जो अक्सर तेज़ होता है, और रोम की छवि को अपने पदचिह्न को कम करने के लिए संपीड़ित किया जा सकता है)। यदि कोड रोम से निष्पादित नहीं किया गया है, लेकिन रैम पर कॉपी किया गया है, तो इसे सस्ते, उच्च घनत्व वाले एनएएनडी फ्लैश में संग्रहीत किया जा सकता है।
अब इस सॉफ्टवेयर आमतौर पर जावा या निम्न स्तर सी (++?) या इससे भी कम में लिखा है?
जावा चलाने के लिए एक JVM और आमतौर पर एक ओएस की आवश्यकता होती है। फ़ोन ऐप्स, और एंड्रॉइड एप्लिकेशन अक्सर जावा में लिखे जाते हैं, लेकिन यह सिस्टम स्तर की भाषा नहीं है। कोर ओएस और जेवीएम स्वयं निम्न स्तर की मूल रूप से निष्पादित भाषा में लिखे जाएंगे। कुछ चिप्स में हार्डवेयर में आंशिक जावा बाइटकोड निष्पादन शामिल है (जैसे कि एआरएम की जैज़ेल इकाई), लेकिन इसका उद्देश्य हार्डवेयर में पूर्ण JVM को सीधे लागू करने के बजाय जावा निष्पादन को तेज करना है।
सी गहराई से एम्बेडेड सिस्टम में सबसे अधिक उपयोग सिस्टम और एप्लिकेशन लेवल भाषा का उपयोग करता है, विशेष रूप से बड़े सिस्टम पर सी ++ का उपयोग किया जाता है। असेंबलर कोड का उपयोग अक्सर निम्नतम स्तर के बूटस्ट्रैप और प्रारंभिक कोड के लिए किया जाता है; एक बार सी रनटाइम पर्यावरण स्थापित होने के बाद, उच्च स्तर की भाषाएं अधिक आम होती हैं। कुछ बहुत छोटे 8 बिट सिस्टम अभी भी असेंबलर में पूरी तरह से कोडित होने की संभावना है। उदाहरण के लिए यदि आप उदाहरण के लिए लिनक्स चलाने के लिए पर्याप्त मात्रा में सिस्टम हैं, तो यह एप्लिकेशन के कुछ तत्वों के लिए स्क्रिप्टिंग भाषाओं का भी उपयोग कर सकता है। बहुत सारे समय महत्वपूर्ण डीएसपी कार्यों को अक्सर असेंबलर में भी कोड किया जाता है, हालांकि सामान्य मानक फ़ंक्शन और एल्गोरिदम आमतौर पर उपकरण या चिप विक्रेता (जो कभी-कभी समान होते हैं) द्वारा उच्च स्तर की भाषा में पुस्तकालयों के रूप में प्रदान किए जाते हैं।
क्या इस तरह की चीज के लिए आमतौर पर उपयोग की जाने वाली कोई पुस्तकालय हैं? या चिप्स इन और शायद कुछ बुनियादी ऑपरेटिंग सिस्टम के साथ preprogrammed आते हैं?
वाणिज्यिक और ओपन-सोर्स दोनों एम्बेडेड सिस्टम पुस्तकालयों का एक व्यापक पारिस्थितिक तंत्र है। इनमें आरटीओएस कर्नेल, पूर्ण ऑपरेटिंग सिस्टम, फाइल-सिस्टम और परिधीय पुस्तकालय शामिल हो सकते हैं। अक्सर चिप-विक्रेता ड्राइवर या ऑन-चिप परिधीय पुस्तकालय प्रदान करेगा। ये ड्राइवर आमतौर पर "नंगे-धातु" होते हैं (यानी ओएस निर्भर नहीं), स्रोत-कोड के रूप में प्रदान किए जाते हैं, और आमतौर पर निम्न-स्तर। यदि आप उन्हें ओएस के भीतर उपयोग करते हैं तो आपको आमतौर पर उच्च स्तर और अधिक ओएस अनुकूल ड्राइवर बनाने के लिए उनका उपयोग करना पड़ सकता है।
डिवाइस आमतौर पर पूर्व-प्रोग्राम नहीं होते हैं। कुछ विकास और मूल्यांकन हार्डवेयर को प्रदर्शन कोड के साथ प्रीप्रोग्राम किया जा सकता है, बड़े मूल्यांकन हार्डवेयर को लिनक्स या विनसी के साथ पहले से लोड किया जा सकता है।
यह चिप सॉफ़्टवेयर के साथ प्रोग्राम किया गया है? कुछ प्रकार की रोम लेखन डिवाइस की आवश्यकता है क्या यह सही है?
कई तरीके हैं। कई आधुनिक एमसीयू में ऑन-चिप डीबग और प्रोग्रामिंग हार्डवेयर (आमतौर पर एक जेएबी इंटरफ़ेस शामिल होता है, हालांकि मालिकाना इंटरफेस भी कमांड होते हैं), यह ऑन-चिप की अनुमति देता है, और कई मामलों में ऑफ़-चिप फ्लैश मेमोरी को एक पीसी होस्ट से जेएफटी का उपयोग करके प्रोग्राम किया जाना है। डीबगर या प्रोग्रामर।
बिना महंगे जेएफई प्रोग्रामर के प्रोग्रामिंग की अनुमति देने के लिए, कई एमसीयू में एक प्री-प्रोग्रामेड बूटम शामिल होता है। यह एक छोटा प्रोग्राम है जो यूआरएटी (सीरियल) या यूएसबी जैसे इंटरफ़ेस के माध्यम से कोड को लोड और निष्पादित करने की अनुमति देता है। बूटम में फ्लैश प्रोग्रामिंग कोड शामिल हो सकता है, या यह उससे भी आसान हो सकता है, और एक माध्यमिक बूटलोडर को लोड किया जाना चाहिए और रैम में निष्पादित किया जाना चाहिए और उस प्रोग्राम को फ़्लैश करें।
वॉल्यूम उत्पादन के लिए, चिप्स एक गैंग प्रोग्रामर द्वारा बोर्ड पर रखने से पहले प्रीप्रोग्राम किया जा सकता है। यह अक्सर डिवाइस विक्रेता या बोर्ड असेंबलर द्वारा प्रदान की जाने वाली एक सेवा है।
ऐसा कुछ है जो मेरे लैपटॉप के माध्यम से घर पर खेलने में सक्षम होगा और यदि ऐसा है तो लैपटॉप के अलावा मुझे कौन सा उपकरण चाहिए?
उस प्रश्न का उत्तर आपके बजट पर पूरी तरह से निर्भर करेगा। आप कुछ दस डॉलर के लिए शुरू कर सकते हैं। गंभीर विकास के लिए आप कुछ डीबग हार्डवेयर चाहते हैं जो आपको एक पीसी आधारित स्रोत-स्तर डीबगर में चिप चलाने की अनुमति देगा क्योंकि आप एक पीसी ऐप कर सकते हैं।
किसी को भी संसाधनों जहां मैं इस पर और अधिक पढ़ सकते हैं करने के लिए मुझसे बात करने के लिए सक्षम हो सकते हैं?
एक पेशेवर संसाधन Embedded.Com (अब नाम बदलकर लेकिन कम आसानी से EETimes एंबेडेड रूप में याद किया) है, लेकिन वह नहीं बल्कि गहरे अंत में शुरू हो जाएगा! आप अपेक्षाकृत सरल Arduino project या कुछ हद तक उच्च अंत BeagleBoard project जैसे कुछ के साथ अधिक आरामदायक हो सकते हैं।
यदि आप एमसीयू की एटमेल एवीआर रेंज का चयन करना चाहते हैं तो एक महान शौकिया संसाधन AVR Freaks है। मुझे लगता है कि जीएनयू कंपाइलर द्वारा समर्थित एकमात्र 8 बिट डिवाइस होने का एवीआर का लाभ है।
यदि आप एआरएम मंच (या जो कई हैं) पर ओपन-सोर्स टूल्स का उपयोग करके परियोजनाओं को विकसित करना चाहते हैं तो एक और संसाधन, मार्टिन थॉमस की उत्कृष्ट ARM-Projects साइट है। वह अपने जीएनयू उपकरण वितरण को हिस्ट करता है, लेकिन उन लोगों के साथ भी लिंक है जो अधिक अद्यतित और रखरखाव हो सकते हैं।
मैं यह कैसे काम करता के सामान्य विचार प्राप्त करने के लिए कोशिश कर रहा हूँ, कैसे शामिल है और क्या कौशल कोई इस काम कर पाने के लिए की आवश्यकता होगी।
कुछ भी दिलचस्प और अपने आप को चलाने के लिए कुछ समय लग सकता है, लेकिन कोड के साथ कई उदाहरण और एप्लिकेशन नोट हैं जो आपको अधिक तत्काल संतुष्टि प्राप्त कर सकते हैं। इलेक्ट्रॉनिक्स का ज्ञान उपयोगी है। जबकि अधिकांश विकास और मूल्यांकन बोर्डों में इंटरफ़ेस, स्विच, बटन, संकेतक, और कभी-कभी एलसीडी डिस्प्ले या अन्य डिवाइसों की एक श्रृंखला होती है, लेकिन आमतौर पर वे मुख्य रूप से एप्लिकेशन विशिष्ट हार्डवेयर के साथ इंटरफ़ेस करने का इरादा रखते हैं जिसे आप स्वयं बना सकते हैं। यह विशेष रूप से मेक्ट्रोनिक सिस्टम के लिए सच है जहां आपको मोटर और एक्ट्यूएटर जैसे उच्च-मौजूदा उपकरणों को चलाने और नियंत्रित करने के लिए अतिरिक्त सेंसर की आवश्यकता होगी, या सेंसर के साथ इंटरफेस करना होगा।
यह माइक्रोकंट्रोलर की दुनिया है और अक्सर माइक्रोचिप, एटमेल, टीआई और अन्य से 8/16 बिट प्रोसेसर की दुनिया को बदल रहा है। आप http://electronics.stackexchange.com पर देखना चाहेंगे। आम तौर पर इन माइक्रोकंट्रोलर में अंतर्निहित सब कुछ है और बाहरी दुनिया में इंटरफ़ेस के लिए केवल बाहरी I/O की एक छोटी राशि है। अक्सर और अधिकतर अब सी – kenny
@ केनी में प्रोग्राम किए गए हैं, आपने कभी भी ड्राइवर को प्रोग्राम नहीं किया है जब तक कि आपने इसे दोनों तरफ प्रोग्राम नहीं किया हो! और हाँ, [Electronics.stackexchange.com] (http://electronics.stackexchange.com) इसमें बहुत कुछ शामिल है और इसमें कई प्रश्न उपलब्ध हैं। – Kortuk
यह http://www.cvel.clemson.edu/auto/auto_buses01.html वर्तमान ऑटोमोबाइल में पाए जाने वाले विभिन्न नेटवर्क का वर्णन करता है। यह कंपनी http://www.matrixmultimedia.com/eblocks.php एक बिल्ड बनाता है जिसे आप सिस्टम चाहते हैं जिसमें सीएएन और लिन मॉड्यूल शामिल हैं। – dbasnett