2013-07-30 3 views
5

वर्तमान में मैं एक एम्बेडेड प्रोजेक्ट पर काम कर रहा हूं। मैं आईएआर एम्बेडेड वर्कबेंच आईडीई का उपयोग कर रहा हूं और लक्ष्य प्लेटफ़ॉर्म 8051-आधारित माइक्रोकंट्रोलर है। क्या मैंने लिखा कोड जांचने के लिए वालग्रिंड टूल का उपयोग करना संभव है?एंबेडेड प्रोजेक्ट पर वालग्रिंड का उपयोग

+0

क्या आपने वाल्ग्रींड उपयोगकर्ताओं को मेलिंग सूची पूछा है? क्या आपने http://valgrind.org/ की जांच की है? – NWS

+1

आपको यह पृष्ठ देखना चाहिए, समर्थित प्लेटफॉर्म मान्य करें [1]। 8051 माइक्रो नियंत्रक निर्देश सेट समर्थित नहीं है। [1]: http://valgrind.org/info/platforms.html – jclin

+0

@jclin उत्तर के रूप में अपनी टिप्पणी पोस्ट करें। – Ross

उत्तर

3

नहीं, और हां *।

नहीं: जैसा कि एक और टिप्पणीकर्ता ने कहा, वालग्रिंड 8051 आर्किटेक्चर पर नहीं चलता है, इसलिए आप एक x86 सिस्टम पर वैलग्रींड का उपयोग नहीं कर सकते हैं।

हाँ *: (तारांकित (*) है, क्योंकि यह एक सीमित "हाँ")

लेकिन आप अपने कोड के गैर 8051/IAR-विशिष्ट भागों पर वेलग्रिंड उपयोग कर सकते हैं आप यदि:

  1. आर्किटेक्चर/कंपाइलर अज्ञेय कोड से 8051-विशिष्ट और आईएआर-विशिष्ट कोड को अलग करें।
    • शायद आप ऐसा करना चाहते हैं ताकि अज्ञेय कोड को अलग करने के परिणामस्वरूप कोड कोई बड़ा न हो। (मैं यह सोचते हैं रहा हूँ कोड आकार एक प्रीमियम पर है, क्योंकि आप एक 8051 पर काम कर रहे) जीसीसी के साथ वास्तुकला/संकलक नास्तिक कोड संकलित करें और अपने डेस्कटॉप/लैपटॉप विकास मशीन पर वेलग्रिंड का उपयोग कर इसे चलाने
  2. , जो शायद एक x86 मशीन है।
    • बेशक आप किसी भी अन्य वालग्रिंड-समर्थित आर्किटेक्चर/कंपाइलर का उपयोग कर सकते हैं, x86/gcc आपकी एकमात्र पसंद नहीं है।

इस तरह वेलग्रिंड अपने कोड है, जो कुछ नहीं से बेहतर है में से कुछ की जाँच करने में सक्षम हो जाएगा।

और आपके कोड के कंपाइलर/चिप विशिष्ट भागों को अलग करने से यह अधिक पोर्टेबल और पुन: प्रयोज्य हो जाएगा।

ओह, और यह सीधे संबंधित नहीं है, लेकिन आप यह भी पीसी-एक प्रकार का वृक्ष की तरह एक स्थिर विश्लेषण प्रोग्राम का उपयोग पर विचार करना चाहिए: http://www.gimpel.com/html/index.htm

यह कुछ चीजें हैं जो वेलग्रिंड चेक, और कई चीजें हैं जो वेलग्रिंड नहीं की जाँच करता है चेक। इसके अलावा यह आपके कोड के सभी की जांच करेगा, न केवल गैर-8051/आईएआर कोड।

वहां बहुत सारे समान उपकरण हैं; पीसी-लिंट सबसे लोकप्रिय है जिसे मैंने देखा है।

+0

बिल्कुल नहीं। बेशक आप सामान्य त्रुटियों के लिए अन्य आर्किटेक्चर पर हमेशा अपना कोड देख सकते हैं, लेकिन कुछ आर्किटेक्चर निर्भर मुद्दों को नहीं मिल सकता है।मेरे लिए, मैंने एंडियन की एक बग पकड़ी। लिनक्स 32/64 बिट में, वालग्रिंड में कोई समस्या नहीं है। हालांकि, यह सूर्य स्पार्क पर एक मुद्दा है। – jclin

+0

मेरा यही मतलब है "इस तरह वालग्रिंड आपके कुछ कोड को जांचने में सक्षम होगा, जो कुछ भी नहीं है।" चूंकि आप एक अलग वास्तुकला पर चल रहे हैं, 8051 से संबंधित आर्किटेक्चर मुद्दे नहीं मिलेगा। – svec

+0

मुझे लगता है कि आपको पता होना चाहिए कि 8051 क्या है। यह एक माइक्रो नियंत्रक है, एक सामान्य सीपीयू नहीं। इसमें पूर्ण फीचर्ड ओएस नहीं होगा और सीधा आईओ और हार्डवेयर इंटरप्ट्स द्वारा कई ऑपरेशन किए जाते हैं, और/या बहुत छोटे आरटीओएस का उपयोग करते हैं। इसलिए 8051 के लिए लिखे गए अधिकांश प्रोग्राम को संकलित नहीं किया जा सकता है और जीसीसी का उपयोग कर जेनेरिक ओएस पर चलाया जा सकता है, इसलिए मुझे लगता है कि वालग्रिंड के तहत 8051 मेमोरी मुद्दों की जांच करना संभव नहीं है। – jclin

1

आपको यह पृष्ठ देखना चाहिए, Valgrind Supported Platforms। 8051 माइक्रो-नियंत्रक निर्देश सेट Valgrind द्वारा समर्थित नहीं है।

इसके अलावा, आपको पता होना चाहिए कि वालग्रिंड एक निर्देश सिम्युलेटर है। इसका मतलब है कि आपको सिस्टम पर वालग्रिंड चलाने की ज़रूरत है, और यह आपके प्रोग्राम की स्मृति को पढ़ने/लिखने, या प्रोफाइलिंग अनुकरण करने के लिए ओएस और सी या अन्य पॉज़िक्स पुस्तकालयों की आधार परत के साथ अपना कोड चलाता है। तो Valgrind चलाने के लिए 8051 असंभव है।

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