سؤال

لقد بدأنا مشروعًا جديدًا يعتمد على الشريحة الدقيقة PIC18F252.ما هو أفضل مترجم 'c' للاستخدام؟

هل كانت مفيدة؟

المحلول

لقد كانت تقنية PICC موثوقة بالنسبة لي دائمًا وقد خضعت لسنوات عديدة من التطوير.

نصائح أخرى

  1. مترجم رقاقة C18:حقا الأفضل والأسهل للاستخدام.مثالية للاستخدام المهني.
  2. مرحبا التكنولوجيا:يستخدم عندما لا تعمل الرقاقة الدقيقة (كانت مخصصة لـ PIC16).
  3. احتجاز ثاني أكسيد الكربون
  4. SourceBoost

ملاحظة:لقد عملت بنفسي على عائلة PIC18F25XX و PIC18F45xx، لذلك أعرف القليل قليل حول هذا.;)

PS2:في حالة حدوث خطأ في برنامج التحويل البرمجي (هذا ما حدث لنا)، يكون فريق Microchip متفاعلًا تمامًا ويتم إصدار الإصدارات الجديدة بسرعة كبيرة.حاول العثور على بائع محلي لديه اتصال بشركة Microchip، ثم شارك في حدث معه واحصل على اتصالات مباشرة.لا يقدر بثمن.

لقد قمت بإجراء بحث مكثف حول مترجم Hitech PICC18 ومترجم Microchip C18 منذ بضع سنوات.

أعتقد أن معظم الأشخاص الذين قرروا استخدام برنامج التحويل البرمجي Microchip C18 فقط لأنهم يرون ذلك عندما يذهبون إلى موقع الويب الخاص بالرقائق الدقيقة ويكونون على دراية بـ MpLab بالفعل من خلال القيام بالتجميع (وهو IDE IMHO رهيب).

يعد حل HiTech أقرب بكثير إلى ANSI C (وبالتالي فإن الكود أكثر قابلية للنقل).مع C18، يمكنك إضافة جميع أنواع الكلمات الرئيسية الخاصة بالمترجم وإجبارك على إدارة الذاكرة أكثر من ذلك بكثير.

  1. يجب عليك تحديد بنك ذاكرة الوصول العشوائي الذي سيتم تخصيص المتغيرات له.
  2. من أجل تخصيص سلسلة const لمساحة البرنامج (بدلاً من ذاكرة الوصول العشوائي)، عليك استخدام الكلمة الأساسية rom.
  3. لا يمكنك تخصيص متغيرات أكبر من 256 بايت دون تحرير البرنامج النصي للرابط.

يمكن العثور على مقارنة ممتازة تتعمق أكثر هنا: http://www.xargs.com/pic/picc18-vs-c18.html

بالإضافة إلى المترجم، عليك أيضًا أن تأخذ في الاعتبار IDE.أنا من أشد المعجبين بالكسوف ولذلك أحببت حقًا HiTide من HiTech لهذا السبب.ومع ذلك، منذ أن اشترت شركة Microchip شركة HiTech...يبدو أنهم لم يعودوا يدعمون HiTide.لا أعتقد أن هذا رسمي..ولكن من تجربتي مع دعم HiTech ...لم يعودوا يقومون بإصلاح الأخطاء وهو عار حقيقي.


لقد جربت أيضًا المترجمين المحترفين.أنا حقا أحب هذه الفكرة.لكن مشروعي تجاوز متطلبات الكتلة المعلمة التلقائية ولم يتمكن من استخدامها.يبدو أيضًا أن تجميعه يستغرق وقتًا طويلاً ولكن من الممكن أن يكون بسبب تعقيد البرنامج.

لم أستخدم برنامج التحويل البرمجي Microchip، لكني أستخدم منتجات HiTech منذ سنوات.لقد أحببت بشكل عام برنامج التحويل البرمجي الخاص بهم PIC16، ولكن أجد برنامج التحويل البرمجي الخاص بهم PIC18 محبطًا إلى حد ما.على الرغم من أنني أقدر عدم الاضطرار إلى وضع جميع المتغيرات يدويًا في البنوك، إلا أن القواعد التي يستخدمها مترجم HiTech مزعجة وغريبة وأبله.خلفية موجزة:تحتوي الشريحة على 16 بنكًا من المتغيرات بسعة 256 بايت (*ليست كل 256 بايت متوفرة في جميع البنوك) ومؤشر بنك واحد.يتطلب الوصول المباشر إلى المتغير اختيار البنك المناسب؛تغيير البنوك يأخذ تعليمات واحدة.

سيتم تخصيص كل من البيانات والبنيات العالمية والثابتة، ومصفوفاتها، التي يتراوح حجمها من 2 إلى 255 بايت، إلى مقاطع على أساس كل وحدة؛يجب أن يتناسب مقطع كل وحدة مع صفحة بحجم 256 بايت.يتم وضع صفائف البايتات، بالإضافة إلى البايتات الفردية، في مربع "كبير" حيث يُفترض أن كل بايت موجود في صفحة مختلفة.

يجب أن تتناسب جميع المتغيرات والمعلمات التلقائية في جميع أنحاء البرنامج مع صفحة بحجم 256 بايت (يتم تخصيصها بشكل ثابت في وقت الارتباط).يقوم الرابط بتراكب المتغيرات التي لا تكون مباشرة في وقت واحد، لكنه يفترض أن أي استدعاء لمؤشر دالة بتوقيع معين يمكن أن يستدعي أي دالة تم أخذ عنوانها ولها هذا التوقيع.

من الممكن الإعلان عن ما يصل إلى 128 بايت من المتغيرات العامة والثابتة لتكون "قريبة".ويمكن الوصول إليها دون تبديل البنك.لا يمكن تحديد وضع المتغيرات أو المعلمات التلقائية "بالقرب".

تعني قواعد تبديل البنك التي تستخدمها HiTech أن العديد من الوظائف، حتى لو لم تستخدم أبدًا أي متغيرات خارج الوحدة النمطية الخاصة بها، سيتم رشها بتعليمات movlb (بنك التبديل).

لا أريد "إنشاء كود كلي العلم".أريد القدرة على إضافة بعض التلميحات لوضع الأشياء بشكل معقول عن طريق تحديد الكلمات الرئيسية أو وحدات الماكرو للقطاعات المخصصة، مما يسمح للمتغيرات التلقائية والمحلية بمشاركة القطاعات مع المتغيرات الأخرى (تراكب المتغيرات/المعلمات التلقائية إلى أقصى حد ممكن في ظل القيود المصرفية المحددة).إذا كان بائع المترجم يريد حقًا أن يكون لطيفًا، فاسمح للمؤشرات بقبول مؤهلات البنك، بحيث يمكن تخزين المؤشر الذي يشير فقط إلى الأشياء الموجودة في جزء معين في 8 بتات.وبالمثل، اسمح لمؤهلات البنك على الوظائف ومؤشرات الوظائف لتحديد أن بعض الاستدعاءات غير المباشرة يمكن أن تعمل فقط مع وظائف معينة.بدلاً من جعل مؤشرات الوظائف 24 بت أو الاضطرار إلى العمل للتأكد من أن الوظائف التي يتم استدعاؤها بشكل غير مباشر تنتهي في أول 64 كيلو بايت، قم بوضع GOTO تلقائي في أول 64 كيلو بايت بحيث يمكن أن تكون مؤشرات الوظائف 16 بت.أو الأفضل من ذلك، إذا كانت "فئة" الوظيفة تحتوي على أقل من 64 وظيفة مختلفة، فاستخدم مؤشرًا بطول 8 بت.

هل أطلب الكثير؟

نحن نستخدم احتجاز ثاني أكسيد الكربون وهذا جيد جدًا.بطيء جدًا، لكنه يعمل بشكل جيد.على أية حال، ليس لدي أي مقارنة مع المترجمين الآخرين، لذلك قد تكون هناك خيارات أفضل.

لم يعجبني CCS، لقد كان غريبًا جدًا.

SourceBoost ليس سيئًا ورخيصًا جدًا، حوالي 40 جنيهًا إسترلينيًا.

يعد برنامج التحويل البرمجي Microchip C18 أفضل IMO، ولكنه مكلف للغاية.هناك نسخة تجريبية / طالب مجانية، بالرغم من ذلك.

أستخدم حاليًا CCS وأكرهه.إنها غير قياسية جدًا وهي جزء كبير من مجموعة فرعية من لغة C، لدرجة أنها سيئة للغاية.أنا أفكر في التبديل قريبا.سأحاول تجربة برنامج التحويل البرمجي Microchip C18 أولاً وبعد ذلك سأبتلع بشدة وأحصل على HighTech الذي يبدو قويًا جدًا من مراجعة الإصدار التجريبي والعينات.

يحتوي نظام IAR على مترجم/IDE PIC18: IAR منضدة العمل المضمنة لـ PIC18.

لقد كنت أستخدم CCS لسنوات عديدة.لقد وجدت بعض الأخطاء ولكن هناك دعمًا رائعًا ويمكنني التطوير بشكل أسرع وأسهل باستخدام CCS مقارنةً بـ C18 أو HiTec

استخدم اس دي سي سي:

http://sdcc.sourceforge.net/

وبالنسبة لمترجم PIC غير المجاني (ولكنه مجاني!)، فإن mikroC هو gr8!

http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

هث

أود أن أصر على استخدام المترجم C18.إنها قوية للغاية وسهلة الاستخدام للغاية.إنه أمر ضروري للتطوير المهني.يعتمد الأمر حقًا على حجم المشروع الذي تعمل عليه.

ابدأ بالإصدار المجاني/الإصدار الخاص بالطلاب وستشعر بشعور جيد عند استخدامه.إذا كان مشروعك صغيرًا، فقد يكون هذا هو كل ما تحتاجه.لقد انتهيت للتو من مشروع تطوير كبير الحجم على PIC 18F وكنت راضيًا للغاية عن المترجم C18.

MPLAB C18 - طالب

لقد كنت أستخدم SourceBoost لمدة عام أو نحو ذلك، ولم أشعر بسعادة غامرة تمامًا، لكن الأمر كان على ما يرام.ومع ذلك، لقد أكملت للتو اختبار حجم الكود بين SourceBoost 7 وMCC18 وHi-Tech C.وكانت النتائج رائعة.

بالنسبة لنموذج صغير من البرنامج (الذي يتضمن الهياكل والمصفوفات ومؤشرات الوظائف ومؤشرات البنية والأحرف والأرقام الداخلية)، أنتجت مجموعة SB7 رمزًا يبلغ حجمه حوالي 2/3 حجم MCC18 وHTC.كنت أرغب في تحديد مقدار ما كان ذلك من تكاليف بدء التشغيل ووقت التشغيل، لذلك أضفت المزيد من العناصر العشوائية إلى نموذج البرنامج، وأظهرت دلتا الحجم أن SB لا يزال 2/3 حجم الآخرين.كانت شركة HTC أصغر قليلاً من MCC18، ولكن ليس بشكل ملحوظ.جميع التحسينات قيد التشغيل في جميع البيئات.

الأشياء التي لا أحبها في SB هي:

  • مجمع محدود في الخط
  • بطيء في التجميع والارتباط
  • إن IDE أفضل قليلاً من MPLAB.

الأشياء التي أحبها فيه هي:

  • حسنًا، من المؤكد أن حجم الكود يبدو أصغر من المنافسين.
  • بعض الملحقات للغة (على سبيل المثال.مراجع).يقتل قابلية النقل، رغم ذلك.
  • السعر.
  • الدعم عبر المنتديات هو في الواقع جيد جدًا.المؤلفون غالبا ما ينشرون.
  • الإزالة التلقائية للكود غير المستخدم (أعتقد أن هذه الميزة تؤدي إلى إبطاء عملية الترجمة والارتباط)

نظرًا لأنني لا أحب SB IDE، فأنا أستخدم Source Insight كمحرر وهو أمر رائع!الأداة المساعدة SB "make" ميؤوس منها أيضًا، لذا أستخدم GnuWin32 make، وهي الصفقة الحقيقية تمامًا، ومجانية.

بشكل عام، أشعر بتحسن كبير بشأن اختياري للأدوات.

على أي حال، نأمل أن يساعد هذا شخص ما هناك.

MPLAB C-18 جميل، ولديهم نسخة مجانية للطلاب.يحتوي على واجهة مستخدم جيدة وبسيطة بدرجة كافية بحيث لا تربك المستخدمين.هذا ما أستخدمه.

إذا تمكنت من الإفلات من العقاب (أفضل ذلك) استخدم مجمع PIC18 مع MPLAB.يتمتع بميزة كونه مجانيًا وموثقًا جيدًا نسبيًا إلى جانب حقيقة أنه يتمتع بدعم لائق من الأجهزة/مصحح الأخطاء.أدت مجموعة التعليمات الصغيرة والبساطة إلى البرمجة السهلة والسريعة.

إذا تم ضبطك على c بالرغم من ذلك:

يعد CCS مترجمًا جيدًا للاستخدام، وهو عبارة عن عربات التي تجرها الدواب قليلاً ومكلف للغاية ولكنه يتمتع أيضًا بقدرات جيدة على تصحيح الأخطاء.

يعد Microsoft Embedded Studio (أو شيء من هذا القبيل) ممتازًا إذا كنت معتادًا بالفعل على منهجية Visual Studio 6 لكتابة كود C.مرة أخرى، دعم جيد للأجهزة ومصحح أخطاء ممتاز.

أعتقد أنه إذا كنت تبحث عن حل مجاني، فيمكنك بالفعل الحصول على مترجمات C لـ MPLAB، على الرغم من أنني شخصيًا لم أستخدم أيًا منها مطلقًا، لذا لا يمكنني إصدار حكم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top