2009-08-25 12 views
7

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

  1. नेट माइक्रो फ्रेमवर्क कार्य करने के लिए है:

    मेरे सवालों का इस प्रकार हैं?

  2. .NET माइक्रो फ्रेमवर्क कुछ चीजें क्या नहीं कर सकती हैं?
  3. कुछ गॉथस क्या हैं?
  4. क्या प्लगइन उपकरणों के लिए एक व्यवहार्य तृतीय पक्ष बाज़ार है? मुझे माइक्रोसॉफ्ट की साइट पर बहुत कुछ नहीं मिला।
  5. क्या कोई एमएफ फ्रेमवर्क के साथ विकसित एक वाणिज्यिक डिवाइस को इंगित कर सकता है।

धन्यवाद।

+1

पृथ्वी पर क्यों आप प्लेटफॉर्म पर स्विच करने की अनुशंसा करेंगे कि आपके पास कोई अनुभव नहीं है? –

+1

@ बाइनरी वर्रियर। क्योंकि मौजूदा पद्धति को बाज़ार में लाने में बहुत लंबा समय लगता है। और इस प्रकार, हम ट्रिगर खींचने से पहले यहां सवाल पूछ रहे हैं। – AngryHacker

+2

मुझे उत्सुकता है कि आप ऐसी कंपनी के लिए परामर्श क्यों कर रहे हैं जो एम्बेडेड डिवाइस बनाता है जब आपने कभी एम्बेडेड डिवाइस प्रोग्राम नहीं किया है? मुझे गरीब कंपनी के लिए बुरा लगता है ... लगता है जैसे उन्हें छड़ी का गंभीर रूप से छोटा अंत मिला। – jrista

उत्तर

8

अपने आवेदन को जानने के बिना और एम्बेडेड डिवाइस की वर्तमान क्षमता के बिना, मेरे लिए एक निश्चित राय देना मुश्किल होगा यदि .NET MF कार्य पर निर्भर है। यदि एम्बेडेड डिवाइस एक कम पावर 8-बिट सीपीयू है जिसमें 2 के रैम और 32 के रॉम हैं तो .NET MF उस डिज़ाइन के लिए उपयुक्त नहीं होगा।

बड़ी संख्या में मामलों में .NET MF में जाने वाले कदम में कई विक्रेताओं द्वारा हार्डवेयर चिप में हार्डवेयर परिवर्तन शामिल होंगे जो आम तौर पर एआरएम 7 या एआरएम 9 कोर को लक्षित करते हैं। इसका मुख्य कारण एचएएल को पोर्ट करने में पहले से किए गए कार्यों का लाभ उठाना है और पीएएल & TinyCLR को प्रश्न में प्रोसेसर के मूल कोड में क्रॉस-कंपाइल करना है। फिर, यदि आप .NET एमएफ मॉडल फिट करते हैं, तो आपको केवल प्रबंधित कोड विकसित करने की आवश्यकता है।

development boards की तुलना आपको एक नए डिजाइन के लिए मंच चुनने में मदद कर सकती है। GHI products का लाभ यह है कि आप अपने हार्डवेयर डिज़ाइन के साथ एकीकृत करने के लिए विकसित फर्मवेयर के साथ नंगे चिपसेट खरीद सकते हैं।

प्रश्न का उत्तर 1: क्या .NET माइक्रो फ्रेमवर्क कार्य तक है?

क्षमा करें, मैं आपके आवेदन के बारे में अधिक जानकारी के बिना इसका उत्तर नहीं दे सकता।

प्रश्न का उत्तर 2: .NET माइक्रो फ्रेमवर्क कुछ चीजें क्या नहीं कर सकती हैं?

माइक्रो-फ्रेमवर्क प्रतिस्पर्धात्मक उत्पादों की तरह वास्तविक समय नहीं है। शेड्यूलर काफी सरल है और सिस्टम के लिए अनुकूल नहीं है जिसके लिए निर्धारिती समय की आवश्यकता होती है।
TinyCLR आईएल को 20ms के लिए अगले प्रतीक्षा "थ्रेड" से व्याख्या करता है। थ्रेड Thread.Sleep(0) पर कॉल करके अपना आवंटित समय टुकड़ा उत्पन्न कर सकते हैं। केवल प्रत्येक थ्रेड टाइम स्लाइस के बीच में रनटाइम इंटरप्रेटर हार्डवेयर से झंडे की जांच करेगा और प्रबंधित कोड में ईवेंट प्रेषित करेगा या अगर वे हार्डवेयर के लिए अवरुद्ध हो रहे हैं तो धागे को जागृत करेंगे। जहां तक ​​मैं समझता हूं, मूल कोड इंटरप्ट सेवा दिनचर्या (आईएसआर) से थ्रेड को अनब्लॉक करने का कोई तरीका नहीं है या उच्च प्राथमिकता वाले थ्रेड के लिए कम प्राथमिकता वाले थ्रेड को पूर्व-स्पष्ट रूप से बाधित करता है।

प्रश्न का उत्तर 3: कुछ गठिया क्या हैं?

सब कुछ काम करने के लिए, आप समझ लिया है लगता है कि कैसे काम करता है पाश interperter क्रम (धागे की समय-निर्धारण और हार्डवेयर घटनाओं पर प्रतिक्रिया) और फिर आप कचरा संग्रहण के बारे में भूल !!
स्मृति की थ्रैशिंग की मात्रा को कम करने के लिए सर्वश्रेष्ठ (प्रत्येक बार new ऑब्जेक्ट सावधानी से समीक्षा करें)। आमतौर पर उपयोग की जाने वाली वस्तुओं को बनाने और नष्ट करने के बजाय, ऑब्जेक्ट्स के पूल को आमतौर पर जीसीएड रखने पर विचार करें और फिर आवश्यकता होने पर उन्हें रीसायकल करें।

प्रश्न का उत्तर 4: क्या प्लगइन उपकरणों के लिए एक व्यवहार्य तृतीय पक्ष बाज़ार है?

तीसरे पक्ष की भागीदारी मुख्य रूप से विकास बोर्डों और संदर्भ डिजाइनों में हार्डवेयर के पक्ष में है। एक सॉफ्टवेयर बिंदु से, यह code-share link रुचि का हो सकता है। एक पक्ष इस मुद्दे के रूप में, मत भूलना कि VS2008 विकास उपकरण के सबसे भी नेट म्यूचुअल फंड (जैसे Resharper और VisualSVN) पर काम

क्षमा करें, सवाल करने के लिए 5 के रूप में मैं का पालन नहीं करते एक जवाब नहीं है इस तरह की चीज। प्रतीत होता है कि माइक्रोसॉफ्ट पर landing page for .NET MF वाणिज्यिक उपकरणों की एक छवि प्रतीत होता है लेकिन मैंने कभी भी लिंक का पालन नहीं किया है।

5

नेट माइक्रो फ्रेमवर्क मेरे द्वारा काम किए गए कई अन्य एम्बेडेड प्लेटफार्मों की तुलना में काम करना बहुत आसान है। लेकिन वर्तमान में इसमें कई ड्रॉ बैक हैं जैसे रीयल-टाइम समर्थन की कमी। इसके अलावा कुछ एसडीके किटों में एक ही busses का उपयोग कर सभी ऐड-ऑन उपकरणों के हार्डवेयर विवाद के कारण समस्याएं हैं। यदि आपको अपने नियंत्रक को लटकाने वाले कई उपकरणों की आवश्यकता है तो मैं इसके बजाय विंडोज सीई प्लेटफ़ॉर्म को देखूंगा। माइक्रो फ्रेमवर्क के लिए हार्डवेयर का वर्तमान चयन बहुत सीमित है।

ग्रेट प्लेटफार्म और छोटी परियोजनाओं के लिए यह बहुत अच्छा होगा। लेकिन जब आप निकट-वास्तविक आवश्यकताओं में शामिल होने का प्रयास करते हैं तो आप बाधाओं में भागना शुरू कर सकते हैं।

इस उद्योग में बहुत कुछ की तरह यह निर्भर करता है। लेकिन इस तथ्य के लिए आप $ 10035 से कम के लिए विकास किट प्राप्त कर सकते हैं, यह जांचने लायक हो सकता है।


मैं नेट माइक्रो फ्रेमवर्क 2.0/3.0 और सी # साथ DeviceSolutions.Net से Tahoe-II इस्तेमाल किया। थ्रेडिंग बहुत सरल थी लेकिन ढांचा वर्तमान में बहुत सीमित है। मुझे अपना खुद का HTTP पार्सर बनाना था और क्रूड रीस्टफुल webservies बनाना था। एक डिवाइस वेब सेवा मॉडल है लेकिन मैं शुद्ध HTTP चाहता था। मुझे अपनी खुद की एसएनटीपी और एसएमटीपी प्रोटोकॉल परतें भी बनाना पड़ा। एक नया संस्करण (4.0) जल्द ही रिलीज होना चाहिए और यह इनमें से कुछ छोटे फॉल्स भर सकता है।

+0

मैथ्यू, विशेष रूप से वास्तविक समय समर्थन की कमी के लिए प्रतिक्रिया के लिए धन्यवाद। मैं किस तरह का वास्तविक समय संकल्प पर भरोसा कर सकता हूं? दूसरे शब्दों में टाइमर अंतराल सेट करने के लिए सबसे छोटा मूल्य क्या है और इसे विश्वसनीय रूप से आग लगाना है? – AngryHacker

+1

मुझे याद नहीं है लेकिन मुझे लगता है कि यह 2 से 5 मिलीसेकंड है। आप इसे छोटा सेट कर सकते हैं लेकिन यह न भूलें कि आप एक कोर प्रोसेसर का उपयोग करेंगे जो आपके प्रोग्राम के साथ-साथ सीएलआर के लिए थ्रेड स्विच करने की आवश्यकता होगी। आपको एक तंग लूप बनाकर और थ्रेड होने से बेहतर प्रतिक्रिया समय मिल सकता है। नींद (0) सिस्टम को आपके धागे को अन्य काम करने के लिए रोकने की अनुमति देने के लिए। विंडोज के साथ ही यह स्वयं टाइमर वास्तव में केवल दिशानिर्देश हैं जो कि ब्लॉक करने के लिए न्यूनतम अवधि देने के लिए हैं। आप कंट्रोलर जीपीआईओ को इवेंट्स देखने के बजाए इंटरप्ट्स के रूप में भी इस्तेमाल कर सकते हैं। –

संबंधित मुद्दे