2008-09-15 13 views
10

के लिए मिश्रा मानक मुझे बड़ी संख्या में कोड MISRA अनुपालन करने की आवश्यकता है।
पहला प्रश्न: किसी को अनुभव के आधार पर एम्बेडेड सिस्टम के लिए अच्छी तरह लिखित कोड पास करने के लिए अनुमान का अनुमान लगा सकता है। मैं समझता हूं कि "अच्छी तरह लिखित" खराब परिभाषित और अस्पष्ट है इसलिए मैं कच्चे अनुमान के लिए पूछता हूं।
दूसरा प्रश्न: उपकरण के लिए कोई भी सिफारिश जो अनुकूलन योग्य हो सकती है (यानी दबाने वाली विशिष्ट चेतावनियों को अनुमति देता है) और स्वचालित निर्माण वातावरण (यानी कमांड लाइन इंटरफ़ेस) में उपयोग किया जाता है
कोई अन्य उपयोगी सुझाव जो इस कार्य में सहायता कर सकता है।
धन्यवाद Ilya।एम्बेडेड सॉफ़्टवेयर

+0

यह प्रश्न आपको मिसा के किस संस्करण की आवश्यकता है इस पर निर्भर करता है। नवीनतम 2012 संस्करण में अभी भी कई कंपनियों से उपकरण समर्थन की कमी है। – Lundin

उत्तर

12

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

कुछ एम्बेडेड सिस्टम कंपाइलर एमआईएसआरए अनुपालन परीक्षण को कंपाइलर चेतावनियों के रूप में प्रदान करते हैं। मैं आर्म 7/आर्म 9 विकास के लिए आईएआर कंपाइलर का उपयोग करता हूं। यह कंपाइलर सेटअप में सीधे एमआईएसआरए अनुपालन चेकलिस्ट को कॉन्फ़िगर करने में आसान प्रदान करता है।

अंगूठे के नियम के साथ आना मुश्किल है, यह अनुमान लगाने के लिए कि यह आपको कुछ अच्छी तरह से लिखित कोड MISRA अनुपालन करने के लिए ले जाएगा। प्रोग्रामर की मौजूदा कोडिंग आदतों पर निर्भर करता है और वे पहली जगह एमआईएसआरए नियमों का कितनी बारीकी से पालन करते हैं।

असहज अनुमान:
2-3 दिन पीसी-लिंट उपयोग पर सक्षम होने के लिए।
मौजूदा कोड बनाने में प्रारंभिक पास एमआईएसआरए अनुपालन: 10 से 25 प्रतिशत समय पहले कोड लिखने में बिताया।
कोड रखने के लिए एमआईएसआरए अनुपालन: 5 से 10 प्रतिशत कोड विकास में जोड़ा गया। इस लागत का आधा हिस्सा आपके कोडर्स की आदतों को बदल रहा है ताकि चीजों को करने के 'मिसरा तरीके' का पालन किया जा सके। दूसरा आधा एमआईएसआरए अनुपालन सुनिश्चित करने के लिए कोड परीक्षण और निरीक्षण की अतिरिक्त लागत है।

+0

कृपया ध्यान दें कि इनमें से कोई भी उपकरण मिसरा-सी: 2012 का समर्थन नहीं करता है। मैंने हाल ही में आईएआर से पूछा कि क्या उन्होंने इसका समर्थन किया है और उन्हें यह भी पता नहीं लगा कि वहां एक नया संस्करण था ... – Lundin

+0

कहा जा रहा है कि, मैं लिंट जैसे सस्ते उपकरण प्राप्त करने की सलाह दूंगा। यह सैकड़ों झूठी चेतावनियां देगा, लेकिन माना जाएगा कि "कला की स्थिति" स्थिर विश्लेषकों को एक भाग्य खर्च होगा। एलआईडीआरए और क्लोकवर्क जैसे महंगे उपकरण मिस्रा जांच के समय लिंट के रूप में समान रूप से छोटी हैं। – Lundin

4

मैं सी और सी ++ कोड के स्थिर विश्लेषण के लिए पीसी लिंट का उपयोग करता हूं। यह दिखाने के लिए कॉन्फ़िगर किया जा सकता है कि एमआईएसआरए नियमों का उल्लंघन किस प्रकार किया गया है, और इसमें कमांड लाइन इंटरफ़ेस है।

8

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

मैं पीसी लिंट के लिए दूसरी ग्रेग की सिफारिश करता हूं, लेकिन ओपन-सोर्स स्प्लिंट भी देखने लायक है, हालांकि उनके बीच (और कंपाइलर की चेतावनी प्रणाली), मुझे लगता है कि आप अभी भी 80% मिश्रा नियमों के बाकी हिस्सों को शायद हाथ से समीक्षा कोड की आवश्यकता होगी।

3

मैंने QAC नामक एक वाणिज्यिक उपकरण का उपयोग किया है। यह उपकरण MISRA

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

मुझे संदेह है कि एक जूनियर इंजीनियर को इसे स्थापित करने के लिए एक सप्ताह (4-5 दिन) तक का समय लगेगा (माना जाता है कि वे इसे काम करने के लिए निर्धारित कर रहे हैं)।

एक तरफ ध्यान दें, अन्य वाणिज्यिक स्थैतिक विश्लेषण उपकरणों में शायद मिसा प्रवर्तन भी हो। रिपोर्ट किया गया (उनके बिक्री प्रतिनिधि प्रति), Klocwork करता है।

+2

जूनियर इंजीनियरों को एमआईएसआरए अनुपालन के लिए कोड बदलने के लिए असाइन नहीं किया जाना चाहिए। मेरे अनुभव में, वे उपकरण की चेतावनियों के बाद धीमे हो जाएंगे, जिनमें से अधिकांश झूठे हैं, कोई फर्क नहीं पड़ता। वे ठीक होने से अधिक समस्याएं पैदा कर सकते हैं। – Lundin

3

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

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

चूंकि हमारी चेतावनियां संकलक द्वारा उत्पन्न की गई थीं, न कि एक स्टैंडअलोन टूल द्वारा आप त्रुटियों को देखते हैं और न केवल जब आप चेकर चलाते हैं। जैसे-जैसे हम विकास जारी रखते थे, हमने एक कोड को अनुपालन किया और एक बड़ी धमाके में नहीं। यह पुरानी आदतों को भी नए कोड को खराब करने से रोकता है जिससे आप बाद में कोड को फिर से काम कर सकते हैं।

कुछ बार पुराना कोड अनुपालन करना मुश्किल होता है क्योंकि कोई भी जानता है कि कोड कैसे काम करता है। मुझे आशा है कि आपके पास यूनिट परीक्षण होंगे।

1

मुझे खुशी है कि यह एक पुराने सवाल है, लेकिन किसी भी अन्य पुरातत्वविदों (या खोजकर्ताओं) के लाभ के लिए, यह याद रखना कि मिश्रा दिशा निर्देशों कि हमेशा आँख बंद करके नहीं पालन किया जाना चाहिए प्रदान करता है महत्वपूर्ण है।

मैं एमआईएसआरए के साथ नए कोड लिखने की सराहना करता हूं; इसलिए अनुपालन में रहना बहुत आसान होगा।

हालांकि, यह हमेशा संभव नहीं होता है - और विशेष रूप से, दिशानिर्देशों को पूरा करने के लिए इंजीनियर कोड को रिवर्स करने का प्रयास करते समय। इस मामले में मेरा सुझाव है कि आप आवश्यक नियमों पर ध्यान केंद्रित करें, और सलाहकारों को बोनस के रूप में देखें ... लागत v लाभ यहां भी लागू होता है!

इसके अलावा, ध्यान रखें कि एक विचलन प्रक्रिया है - कुछ अनुपालन लेकिन गैरकानूनी स्पेगेटी से निपटने के बजाय, विचलन के साथ स्वच्छ और रखरखाव कोड रखना बेहतर है।

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

  • कोई संबंधित समस्या नहीं^_^