2009-08-04 11 views
13

किल एआरएम 7 विकास के लिए जीसीसी की तुलना कैसे करता है? मैं मध्यम आकार की परियोजना के लिए एचडब्ल्यू सलाहकार चुनने की प्रक्रिया में हूं और कुछ उपयोग केइल और कुछ जीसीसी का उपयोग करते हैं। मैं किसी भी विकल्प के साथ जाने में शामिल गॉचस जानना चाहता हूं ...कील बनाम जीसीसी?

उत्तर

8

कोडिंग/विकास दृष्टिकोण से दोनों के बीच बहुत कम अंतर है। एकमात्र चीज जो मुझे लगता है कि आपको विचार करना चाहिए इन कंपाइलर के लिए विशिष्ट नहीं है। रखरखाव:

  • आप या सॉफ्टवेयर बनाए रखने के लिए आप Keil संकलक के लिए उपयोग नहीं है, तो कर सकेंगे यह एक मामूली लागत होगा?
  • इसके अलावा क्या debughardware/JTAG समर्थित है और यदि आपको कुछ प्राप्त करने की आवश्यकता है तो लागत क्या होगी?
  • क्या लागत हो जाएगा आप एक संकलक अन्य संकलक करने से कारण स्विच डेवलपर्स बाद में करने के लिए स्थानांतरित करने के लिए है या नहीं?

जब तक आप बहुत लागत के प्रति संवेदनशील हैं मुझे लगता है कि असली सवाल जो सबसे अच्छा काम करेगा के बाद से संकलक एक छोटी सी समस्या हो जाएगा।

1

यदि आप संकलक या पुस्तकालयों के साथ समस्याओं में भाग लेते हैं तो वाणिज्यिक समाधान का मुख्य लाभ मेरे लिए समर्थन है।
ओपन सोर्स ठीक है जब आप मुख्य स्ट्रीम हार्डवेयर (जीसीसी = x86 के मामले में) का उपयोग कर रहे हैं। संकलक या libs की अधिकांश समस्याओं को आम तौर पर समुदाय द्वारा तय किया जाएगा।
यदि आप एक (शायद विदेशी) एम्बेडेड प्लेटफार्म पर विकास कर रहे हैं तो आपको उपकरण श्रृंखला के साथ कोई समस्या होने पर आप जल्द ही बहुत अकेला महसूस कर सकते हैं।

+1

ईमानदारी से बोलते हुए, आप संकलक के साथ कितनी बार समस्याएं चलाते हैं? मैं वर्षों से वाणिज्यिक विकल्पों का उपयोग कर रहा हूं (एआरएम 7 और 8051 विकास पर) और * शायद ही कभी * कठिनाइयों का सामना करना पड़ा है। – Nate

+0

@Nate: भाग्यशाली महसूस करें! हम यहां एआरएम 9 के लिए जीसीसी का उपयोग कर रहे हैं और जब हमने ऑप्टिमाइज़ेशन का उपयोग करने की कोशिश की तो संकलक के साथ वास्तव में एक बहुत ही ग़लत समस्या थी। भाग्यशाली के रूप में हम समस्या को हल करने के लिए एक पैच मिला है। कुछ साल पहले मैंने एक और कंपनी में काम किया था और वहां हमें जीसीसी (सी 166 के लिए) केईआईएल में बदलना पड़ा क्योंकि पुस्तकालय त्रुटियों से भरे हुए थे। – chrmue

+3

कोडसोर्सरी के कर्मचारी के रूप में, मुझे लगता है कि मुझे यह इंगित करना चाहिए कि "वाणिज्यिक समाधान" और "ओपन सोर्स" एक या पसंद नहीं हैं - हम पते के लिए पूर्ण वाणिज्यिक-ग्रेड समर्थन के साथ जीसीसी-आधारित समाधान बेचते हैं और उस तरह की समस्या को रोकें। (हम जीसीसी समर्थन बेचने वाली एकमात्र कंपनी नहीं हैं।) –

3

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

यदि सलाहकार आपके लिए एक परियोजना के लिए प्रारंभिक लेगवर्क करने के लिए एक उपकरण का उपयोग कर रहे हैं और अंत में वे काम को सौंप देते हैं, तो शायद आप एक जीसीसी आधारित समाधान चाहते हैं (जिसका अर्थ यह नहीं है कि vxworks gcc, या यहां तक ​​कि कोड sourcery gcc, लेकिन एक जेनेरिक जीसीसी समाधान), क्योंकि इसमें कोई संदेह नहीं है कि आप या कोई अन्य जो आपको किराए पर लेता है उसे इस द्रव्यमान को चुनना होगा और इसके साथ चलना होगा और जीसीसी के साथ आपको किसी को तैयार और सक्षम होने की अधिक संभावना है।

1

हम किल मंच का उपयोग करते हैं और इसके प्रदर्शन और अनुकूलन से बहुत खुश हैं। मैंने कुछ साल पहले कुछ मानक मानक चलाए और वे काफी अच्छे थे। एक और विचार समर्थन है और अब तक, केइल के पास कुछ कठिन मुद्दों पर बहुत अच्छा प्रतिक्रिया समय और अपेक्षाकृत अच्छी प्रतिक्रिया है।

एफवाईआई, यदि आपकी परियोजना केइल आरटीओएस का उपयोग करेगी और आपके पास इसके बारे में कोई सवाल है, तो स्रोत कोड खरीद के लिए उपलब्ध है।

5

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

एक समस्या जो मैंने अभी तक हल नहीं की है वह असेंबलर कोड है। किएल armasm का उपयोग करता है, जबकि जीसीसी के रूप में उपयोग करता है। उनके पास बहुत अलग स्रोत कोड स्वरूप प्रतीत होते हैं। यदि आप कर सकते हैं तो असेंबलर से बचने का एक अन्य कारण।

जीसीसी के साथ जाने का लाभ यह है कि आप गैर-एआरएम प्लेटफार्मों को लक्षित कर सकते हैं - प्लेटफॉर्म पर अपने अनुप्रयोग को अनुकरण करने के लिए आदर्श, बेहतर विकास उपकरण (यानी x86 linux के तहत valgrind) के साथ। वास्तव में, यह दृष्टिकोण है प्रत्येक एआरएम-लक्षित आवेदन लेना चाहिए। पहले x86 पर विकसित करें, फिर पोर्ट को एआरएम पर विकसित करें।

किल के साथ मौजूदा रहने की लागत भी है। एक बार मुझे पता है कि आरवीडीके 2.1 (2002?) पर अटक गया है क्योंकि तीन डेवलपर्स के लिए नवीनतम में अपग्रेड करने की लागत निषिद्ध है।

मैं यह भी जोड़ूंगा कि जीसीसी & पैडेंटिक आपके कोड में चेतावनी और त्रुटियों को हिला देगा, जो किल के हमारे (स्वीकार्य रूप से प्राचीन) संस्करण से काफी बेहतर होगा।

किल कड़ा एआरएम कोड प्रदान कर सकता है, इसलिए इसे लक्ष्य निर्माण करने के लिए रखें। अन्यथा जीसीसी का प्रयोग करें।