आप लिखते हैं;
"माइक्रो नियंत्रकों के लिए लिखे गए अधिकांश कोड रजिस्टरों को कॉन्फ़िगरेशन और डेटा मान लिखने, रजिस्टरों से आने वाले डेटा पढ़ने और ईवेंट को बाधित करने के जवाब में घूमते हैं।"
मैं मानता हूं कि यह अक्सर अभ्यास में मामला है, लेकिन मुझे नहीं लगता कि यह वास्तव में एक अच्छी बात है, और मुझे लगता है कि चीजों पर पुनर्विचार करने से आपके परीक्षण लक्ष्यों में मदद मिलेगी।
शायद क्योंकि माइक्रोकंट्रोलर प्रोग्रामर तक पहुंचने और हार्डवेयर वे भी चाहें, स्पर्श कर सकते हैं, कई (सबसे?) उनमें से, सिर्फ इतना है कि कर अपने कोड भर की आदत में मिला है। अक्सर इस आदत को निर्विवाद रूप से पालन किया जाता है, शायद इसलिए कि इस तरह के काम करने वाले बहुत से लोग ईईएस प्रशिक्षण और झुकाव से कंप्यूटर वैज्ञानिक नहीं हैं। मुझे पता है, मैंने खुद को इस तरह से शुरू किया।
जिस बिंदु को मैं बनाने की कोशिश कर रहा हूं, वह यह है कि माइक्रोकंट्रोलर परियोजनाएं किसी भी अन्य सॉफ्टवेयर प्रोजेक्ट की तरह अच्छी तरह डिज़ाइन की जा सकती हैं। अच्छी डिजाइन का एक महत्वपूर्ण हिस्सा हार्डवेयर ड्राइवरों तक हार्डवेयर पहुंच को प्रतिबंधित करना है! रजिस्ट्रार लिखने वाले सभी कोड से विभाजन, मॉड्यूल में इंटरप्ट इत्यादि का जवाब देता है जो आपके बाकी सॉफ़्टवेयर को हार्डवेयर के लिए अच्छी, साफ, सारणी पहुंच प्रदान करता है। तर्क विश्लेषकों, ऑसिलोस्कोप, कस्टम टेस्ट रिग या जो भी कुछ भी समझ में आता है, लक्ष्य पर उन ड्राइवर मॉड्यूल का परीक्षण करें।
एक वास्तव में महत्वपूर्ण बात यह है कि अब आपके बाकी सॉफ़्टवेयर, उम्मीद है कि इसमें से अधिकांश बहुमत, अब केवल सी कोड है जिसे आप होस्ट सिस्टम पर चला सकते हैं और परीक्षण कर सकते हैं। मेजबान सिस्टम पर हार्डवेयर मॉड्यूल को इस तरह से बाहर रखा जाता है जो परीक्षण के तहत कोड क्या कर रहा है में दृश्यता प्रदान करता है। आप इस कोड पर मुख्यधारा इकाई परीक्षण दृष्टिकोण का उपयोग कर सकते हैं। इसके लिए कुछ तैयारी और काम की ज़रूरत है, लेकिन यदि आप अच्छी तरह व्यवस्थित हैं तो आप एक पुन: प्रयोज्य प्रणाली बना सकते हैं जो आपकी सभी परियोजनाओं पर लागू हो सकती है। संभावित लाभ भारी हैं। मैंने यहां इन विचारों के बारे में कुछ और लिखा है;
[http://discuss.joelonsoftware.com/default.asp?joel.3.530964.12][1]
स्रोत
2009-06-06 03:09:32
पर्याप्त प्रतिनिधि के साथ किसी को इस सवाल का "एम्बेडेड" टैग को जोड़ने कर सकते हैं? धन्यवाद। –