2008-09-18 10 views
10

के लिए सबसे अच्छा सी कंपाइलर क्या है हम एक माइक्रोचिप PIC18F252 आधारित एक नई परियोजना शुरू कर रहे हैं। उपयोग करने के लिए सबसे अच्छा 'सी' कंपाइलर क्या है?Pic18 माइक्रो

+2

मैं प्रत्येक कंपाइलर के लिए निर्माता के मंच पर जाने और उपयोगकर्ताओं के प्रश्नों और शिकायतों की तुलना करने का सुझाव दूंगा। –

उत्तर

6

तकनीक PICC मुझे हमेशा के लिए विश्वसनीय किया गया है और यह विकास के कई वर्षों पड़ा है।

4

हम CCS का उपयोग करते हैं और यह बहुत अच्छा है। बहुत धीमा, लेकिन यह अच्छी तरह से काम करता है। वैसे भी, मेरे पास अन्य कंपाइलर्स के साथ कोई तुलना नहीं है, इसलिए बेहतर विकल्प हो सकते हैं।

+0

मैं भी एक सीसीएस उपयोगकर्ता हूं। मुझे वास्तव में सी एपीआई पसंद है और अन्य प्रोसेसर में जाना कितना आसान है। मुझे सी संकलक छोटी गाड़ी मिलती है, हालांकि निश्चित रूप से मानक सी – kenny

0

यदि आप इसके साथ दूर हो सकते हैं (मेरी वरीयता होगी) MPLAB के साथ PIC18 असेंबलर का उपयोग करें। इस तथ्य के साथ-साथ नि: शुल्क और सापेक्ष रूप से अच्छी तरह से दस्तावेज होने का लाभ यह है कि इसमें सभ्य हार्डवार्स/डीबगर समर्थन है। इसका छोटा निर्देश सेट और सादगी ने खुद को आसान और त्वरित कोडिंग के लिए प्रेरित किया।

आप हालांकि ग पर सेट कर रहे हैं:

सीसीएस उपयोग करने के लिए एक अच्छा संकलक, थोड़ा गाड़ी और काफी महंगा है, लेकिन यह भी अच्छा डिबगिंग क्षमता है।

माइक्रोसॉफ्ट एम्बेडेड स्टूडियो (या ऐसा कुछ) उत्कृष्ट है यदि आप पहले से ही सी कोड लिखने के विजुअल स्टूडियो 6 पद्धति के लिए उपयोग कर रहे हैं। फिर से अच्छा हार्डवेयर समर्थन और उत्कृष्ट डीबगर।

मेरा मानना ​​है कि यदि आप एक मुफ्त समाधान की तलाश में हैं तो आप वास्तव में एमपीएलबी के लिए सी कंपाइलर प्राप्त कर सकते हैं, हालांकि मैंने व्यक्तिगत रूप से कभी भी इसका उपयोग नहीं किया है, इसलिए मैं निर्णय नहीं दे सकता।

3

मुझे सीसीएस पसंद नहीं आया, यह बहुत क्विर्की था।

SourceBoost खराब और बहुत सस्ता नहीं है, लगभग £ 40।

माइक्रोचिप सी 18 कंपाइलर सबसे अच्छा आईएमओ है, लेकिन बहुत महंगा है। हालांकि, एक मुफ्त डेमो/छात्र संस्करण है।

8
  1. Microchip C18 compiler: वास्तव में सबसे अच्छा और आसान उपयोग करने के लिए। पेशेवर उपयोग के लिए बिल्कुल सही।
  2. HI-TECH: माइक्रोचिप काम नहीं करता है जब यह काम करता है (यह एक पीआईसी 16 के लिए था)।
  3. CCS
  4. SourceBoost

पुनश्च: मैं अपने आप को PIC18F25XX और PIC18F45xx परिवार पर काम किया है, इसलिए मैं एक छोटे से बिट पता इस बारे में। ;)

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

+0

का सबसेट मैं सहमत हूं। मैंने केवल सीसीएस और सी 18 का उपयोग किया है, लेकिन मैं सी 18 पसंद करता हूं। इसमें हार्डवेयर/सॉफ्टवेयर पुस्तकालयों का एक बड़ा संग्रह है और एमपीएलएबी में अच्छी तरह से एकीकृत है। – mjh2007

+1

1 साल के लिए प्रयुक्त सीसीएस। इसका उपयोग करना आसान है लेकिन कई बग हैं। – RHaguiuda

+0

HI-TECH लिंक टूटा हुआ है। – Tshepang

1

मैं आग्रह करता हूं कि आप सी 18 कंपाइलर का उपयोग करें। यह बेहद मजबूत और उपयोग करने में बहुत आसान है। यह पेशेवर विकास के लिए होना चाहिए। यह वास्तव में उस परियोजना के आकार पर निर्भर करता है जिस पर आप काम कर रहे हैं।

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

2

मैं वर्तमान में सीसीएस का उपयोग करता हूं और इससे नफरत करता हूं। यह इतनी गैर मानक है और सी के सबसेट का इतना है, कि यह सिर्फ बेकार है। मैं जल्द ही स्विचिंग पर विचार कर रहा हूँ। मैं पहले माइक्रोचिप सी 18 कंपाइलर को आजमाने की कोशिश कर रहा हूं और फिर मैं कड़ी मेहनत करूँगा और हाईटेक प्राप्त करूंगा जो परीक्षण संस्करण और नमूने की समीक्षा से काफी ठोस लगता है।

7

मैंने कुछ साल पहले हाइटेक पीआईसीसी 18 कंपाइलर और माइक्रोचिप सी 18 कंपाइलर पर व्यापक शोध किया था।

मुझे लगता है कि ज्यादातर लोग माइक्रोचिप सी 18 कंपाइलर के साथ जाने का फैसला करते हैं क्योंकि वे माइक्रोचिप वेबसाइट पर जाते हैं और एमपीएलएबी से असेंबली करने से पहले ही परिचित हैं (जो एक भयानक आईडीई आईएमएचओ है)।

हायटेक का समाधान एएनएसआई सी के बहुत करीब है (इसलिए कोड अधिक पोर्टेबल है)। सी 18 के साथ आपने सभी प्रकार के कंपाइलर विशिष्ट कीवर्ड जोड़े हैं और आपको स्मृति को और अधिक प्रबंधित करने के लिए मजबूर किया गया है।

  1. आपको निर्दिष्ट करना है कि किस रैम बैंक को चर आवंटित करना है।
  2. प्रोग्राम स्पेस (रैम के बजाए) को कॉन्स्ट स्ट्रिंग आवंटित करने के लिए आपको रोम कीवर्ड का उपयोग करना होगा।
  3. आप एक वेरिएबल स्क्रिप्ट को संपादित किए बिना 256 बाइट्स के बड़े चर आवंटित नहीं कर सकते हैं।

एक उत्कृष्ट तुलना किस तरफ गहराई में और अधिक हो जाता है यहां पाया जा सकता: http://www.xargs.com/pic/picc18-vs-c18.html

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


मैं भी उनके समर्थक compilers की कोशिश की है। मुझे वास्तव में यह विचार पसंद है। लेकिन, मेरी परियोजना ऑटो परम ब्लॉक आवश्यकताओं से अधिक है और इसका उपयोग करने में असमर्थ था। यह संकलन करने के लिए एक verrryryyy लग रहा था, लेकिन यह कार्यक्रम जटिलता के बी/सी हो सकता था।

2

मैं कई वर्षों से सीसीएस का उपयोग कर रहा हूं। मैं कुछ कीड़े पाया है लेकिन वहाँ समर्थन महान है और मैं सी 18 या HITEC

1

MPLAB C18 के साथ तुलना में सीसीएस के साथ तीव्र और आसान विकसित कर सकते हैं - छात्र

5

मैं माइक्रोचिप संकलक का उपयोग नहीं किया है, लेकिन उपयोग किया गया है वर्षों के लिए HiTech के उत्पादों। मुझे आम तौर पर उनके पीआईसी 16 कंपाइलर पसंद आया है, लेकिन उनके पीआईसी 18 कंपाइलर को निराशाजनक लगता है। हालांकि मैं बैंकों में सभी चरों को हाथ से रखने की सराहना करता हूं, हायटेक के कंपाइलर द्वारा उपयोग किए जाने वाले नियम परेशान, विचित्र और मूर्ख हैं। संक्षिप्त पृष्ठभूमि: चिप में चर के 16 256-बाइट बैंक हैं (* सभी बैंकों में सभी 256 बाइट उपलब्ध नहीं हैं) और एक बैंक सूचक। एक चर के लिए सीधी पहुंच के लिए आवश्यक है कि उचित बैंक का चयन किया जाए; बदलते बैंक एक निर्देश लेते हैं।

वैश्विक और स्थैतिक स्याही और structs, और इसके सरणी, जिसका आकार 2-255 बाइट से है, प्रत्येक को प्रति-मॉड्यूल आधार पर छिद्रों में आवंटित किया जाएगा; प्रत्येक मॉड्यूल का psect 256-बाइट पेज में फिट होना चाहिए। बाइट्स के साथ-साथ व्यक्तिगत बाइट्स, "बड़े" छिद्र में जाते हैं जहां हर बाइट को संभवतः किसी दूसरे पृष्ठ में रहने के लिए माना जाता है।

कार्यक्रम के दौरान सभी स्वचालित चर और पैरामीटर 256-बाइट पेज में फिट होना चाहिए (उन्हें लिंक समय पर स्थिर रूप से आवंटित किया जाता है)। लिंकर ओवरले वैरिएबल करता है जो एक साथ कभी नहीं रहते हैं, लेकिन यह किसी विशेष हस्ताक्षर के साथ फ़ंक्शन पॉइंटर को कोई भी कॉल मानता है, जिसे कोई भी फ़ंक्शन कॉल किया जा सकता है जिसका पता लिया गया है और जिसमें हस्ताक्षर है।

128 बाइट्स के वैश्विक और स्थैतिक चर के मूल्य को 'पास' होने की घोषणा करना संभव है। इन्हें बैंक-स्विचिंग के बिना एक्सेस किया जा सकता है। यह निर्धारित करना संभव नहीं है कि स्वचालित चर या पैरामीटर 'पास' रखा जाए।

हायटेक द्वारा उपयोग किए जाने वाले बैंक-स्विचिंग नियमों का अर्थ है कि कई फ़ंक्शन, भले ही वे अपने मॉड्यूल के बाहर किसी भी चर का उपयोग न करें, movlb (स्विच-बैंक) निर्देशों के साथ छिड़काए जाएंगे।

मुझे "सर्वज्ञानी कोड जनरेशन" नहीं चाहिए। मैं कस्टम संकेतों के लिए कीवर्ड या मैक्रोज़ को परिभाषित करके चीजों को समझदारी से रखने के लिए कुछ संकेत जोड़ना चाहता हूं, जिससे स्वचालित और स्थानीय चर अन्य चर के साथ छेड़छाड़ साझा करने की अनुमति देता है (निर्दिष्ट निर्दिष्ट बैंकिंग प्रतिबंधों के अनुसार ऑटो चर/पैरामीटर को ओवरले करना)। यदि एक कंपाइलर विक्रेता वास्तव में अच्छा होना चाहता है, तो पॉइंटर्स को बैंक क्वालीफायर स्वीकार करने की अनुमति दें, ताकि एक पॉइंटर जो किसी निश्चित छद्म में चीजों को इंगित करेगा, 8 बिट्स में संग्रहीत किया जा सकता है। इसी तरह, बैंक क्वालीफायरों को फ़ंक्शंस और फ़ंक्शन पॉइंटर्स पर निर्दिष्ट करने के लिए अनुमति दें कि कुछ अप्रत्यक्ष कॉल केवल कुछ फ़ंक्शंस के साथ काम कर सकें। फ़ंक्शन पॉइंटर्स को 24 बिट्स बनाने या अप्रत्यक्ष-कॉल किए गए फ़ंक्शंस को पहले 64K में समाप्त करने के लिए काम करने के बजाय, पहले 64K में स्वचालित गोटो डालें, इसलिए फ़ंक्शन पॉइंटर्स 16-बिट हो सकते हैं। या बेहतर अभी तक, यदि किसी फ़ंक्शन 'क्लास' में 64 से कम विभिन्न फ़ंक्शन हैं, तो 8-बिट पॉइंटर का उपयोग करें।

क्या मैं बहुत ज्यादा पूछ रहा हूं?

+0

नहीं, आप बहुत ज्यादा नहीं पूछ रहे हैं। मैं सहमत हूँ; एक बार जब मैं फ़ंक्शन पॉइंटर्स का उपयोग करता हूं तो मुझे HiTech कंपाइलर अनुपयोगी लगता है। सी 18 ने बहुत बेहतर काम किया, लेकिन अभी भी समस्याएं थीं। हालांकि, वे बहुत आसानी से हल कर रहे थे। – janm

+1

क्या आप माइक्रोचिप के कंपाइलर का जिक्र कर रहे हैं? मेरी यादें यह थी कि सी 18 चरित्र गणित को int को बढ़ावा नहीं देता है; मेरा कोड अक्सर int पदोन्नति पर निर्भर करता है, इसलिए इसके लिए मानक व्यवहार से विचलन अस्वीकार्य होगा। – supercat

1

मैं एक साल या उससे भी अधिक के लिए स्रोत बूस्ट का उपयोग कर रहा हूं, और मैं पूरी तरह से रोमांचित नहीं हूं, लेकिन यह ठीक है। हालांकि, मैंने सोर्सबॉस्ट 7, एमसीसी 18, और हाई-टेक सी के बीच एक कोड-आकार परीक्षण पूरा किया। परिणाम उल्लेखनीय थे।

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

चीजें हैं जो मैं एस.बी. के बारे में पसंद नहीं है कर रहे हैं:

  • सीमित में लाइन कोडांतरक
  • धीमी & लिंक
  • आईडीई केवल थोड़ा MPLAB से बेहतर है संकलित करने के लिए।

चीजें हैं जो मैं इसके बारे में पसंद कर रहे हैं:

  • ठीक है, कोड आकार यकीन है कि प्रतियोगिता की तुलना में छोटे लगता है।
  • भाषा में कुछ एक्सटेंशन (उदा।संदर्भ)। हालांकि पोर्टेबिलिटी मारता है।
  • कीमत।
  • फ़ोरम के माध्यम से समर्थन वास्तव में बहुत अच्छा है। लेखक अक्सर पोस्ट करते हैं।
  • अप्रयुक्त कोड (मैं इस सुविधा संकलन और लिंक को धीमा कर देती लगता है) का स्वत: समाप्त करने

जब से मैं एस.बी. आईडीई पसंद नहीं है, मैं एक संपादक के लिए स्रोत इनसाइट उपयोग करें और यह चट्टानों! एसबी "मेक" यूटिलिटी भी निराशाजनक है, इसलिए मैं GnuWin32 मेक का उपयोग करता हूं, जो बिल्कुल वास्तविक सौदा है, और मुफ़्त है।

तो सब कुछ मैं अपने उपकरणों की पसंद के बारे में काफी बेहतर महसूस कर रहा हूं।

वैसे भी, उम्मीद है कि इससे किसी को वहां मदद मिलेगी।

0

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