اطلاعیه

Collapse
No announcement yet.

تفاوت برنامه نویسی arm در gcc و دیگر کامپایلرها

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تفاوت برنامه نویسی arm در gcc و دیگر کامپایلرها

    سلام و عرض ادب.بنده از کاربران گنو/لینوکس هستم و علاقمند به به الکترونیک.بنده چندین بار در گروه ها و انجمن ها دیدم که دوستان سوالاتی میپرسن در مورد کامپایلر ها و تفاوت سینتکس در کامپایلرهای مختلف.
    سوال بنده این هست که ایا سینتکس ;کامپایلر gcc که مطابق استانداردهای پوزیکس هست متفاوت با سایر سینتکس ها هست؟یا خیر؟اگر بله علت این تفاوت سینتکس به توابع مورد استفاده(در لایبرری ها) برمیگرده؟و اگر قرار باشه با gcc برنامه ای برای میکروهای arm بنویسیم طبق شنیده هام باید اون هارو ریجستر کنیم.منظور از ریجستر کردن در اینجا چی هست؟متشکر از بزرگوارانی که به هر نحوی وقت اختصاص میدن.

    #2
    پاسخ : تفاوت برنامه نویسی arm در gcc و دیگر کامپایلرها

    نوشته اصلی توسط noip نمایش پست ها
    سلام و عرض ادب.بنده از کاربران گنو/لینوکس هستم و علاقمند به به الکترونیک.بنده چندین بار در گروه ها و انجمن ها دیدم که دوستان سوالاتی میپرسن در مورد کامپایلر ها و تفاوت سینتکس در کامپایلرهای مختلف.
    سوال بنده این هست که ایا سینتکس ;کامپایلر gcc که مطابق استانداردهای پوزیکس هست متفاوت با سایر سینتکس ها هست؟یا خیر؟اگر بله علت این تفاوت سینتکس به توابع مورد استفاده(در لایبرری ها) برمیگرده؟و اگر قرار باشه با gcc برنامه ای برای میکروهای arm بنویسیم طبق شنیده هام باید اون هارو ریجستر کنیم.منظور از ریجستر کردن در اینجا چی هست؟متشکر از بزرگوارانی که به هر نحوی وقت اختصاص میدن.
    سلام
    قسمت اول سوالتون رو نمیدونم جوابش چی میشه؛ اما در مورد رجیستر کردن. ببینید میکروکنترلرهای arm به دلیل پیچیدگی سخت افزاری که دارن، خیلی سخته که مثل میکروکنترلر avr یا امثال اون با رجیسترها درگیر شد و مستقیم با اون ها کار کرد. به همین خاطر اومدن و یکسری کتابخونه هایی برای ارتباط با واحدهای جانبی توسعه دادن که کار با اون ها خیلی راحت میشه. از جمله این کتابخونه ها CMSIS و HAL و ... هستن. اگر شما جایی دیدید که از رجیستر کردن حرف زده شده، احتمالا به این معنیه که کامپایلر مورد نظر از این کتابخونه ها پشتیبانی نمیکنه و مستقیم باید با خود رجیسترها کار کرد.

    دیدگاه


      #3
      پاسخ : تفاوت برنامه نویسی arm در gcc و دیگر کامپایلرها

      سلام - در زیر سعی کردم یه تحقیق کوچیک و در حد زبون/وقت و حوصله خودم انجام بدم و بزارم اینجا - شاید دقیقا اون جوابی که شما میخوای نباشه ولی خب اطلاعات بدکی نیست ( حداقل برای من ) - ولی خب خودم حقیقتا خیلی دوست داشتم که همچین گفتگویی شروع بشه که شما زحمتشو کشیدید - امیدوارم مطالب زیر مفید باشه براتون.

      لیست کامپایلر های موجود در KEIL

      KEIL آخرین نسخش ( 5.25.2.0 ) در قسمت لیست کامپایلرا 4 نوع کامپایر ارائه داده :


      خب تمام این موارد همونطور که در عکس بالا معلوم نسخه های مختلف ARM COMPILER هستند ( که لیست تمام نسخه ها در سایت
      developer.arm.com موجود هستش ) من فعلا برا چند تا پروژه از 6.9 استفاده کردم - نمیدونم چرا فقط گفتم نسخه جدید بهتره

      برا بحث کامپایلر GCC باید به صورت زیر عمل کرد ( عنوان "
      جابجایی بین کامپایلرهای GCC و ARM در KEIL" رو ببینید)، وقتی کامپایلر رو GCC تنظیم میکنیم پنجره Options for target در Keil کلا تغییر میکنه و این عکسی که در بالا میبینید دیگه خبری ازش نی.


      ============================

      دانلود کامپایلر GCC
      مورد بعد این که کامپایلر GCC به صورت پیشفرض داخل KEIL نیستش و باید برید دانلودش کنید. که حدود 100 الی 200 میگ هستش - لینک (های) زیر رو ببینید :
      دانلود کامپایلر GCC :
      https://developer.arm.com/open-sourc...u-rm/downloads
      فرق بیت
      GCC و GNU :
      https://www.quora.com/What-is-the-di...d-GNU-compiler

      =====================

      جابجایی بین کامپایلرهای GCC و ARM در KEIL
      حالا بخوای بین کامپایلر GCC و ARM جابجا بشی - این لینک رو میتوین ببینی :
      GNU C Compiler Support






      =====================

      ARM Compiler 5 vs ARM Compiler 6
      ARM Compiler 5 ( و نسخه های قبلی ) از کامپایلر armcc استفاده میکنند.
      ARM Compiler 6 از کامپایلر armclang ( نسبت به armcc جدید تر هستش ) استفاده میکنند.

      منبع : Key difference between ARM compiler 5 and compiler 6

      ===========================

      armcc / armclang / gcc

      لینک این عکس :
      http://www2.keil.com/mdk5/compiler/6/

      لینک های مفید دیگه :
      Code size comparison between ARMCC and ARMCLANG

      ==========================

      دانلود اسناد ARM Compiler 5 و ARM Compiler 6 ( دانلود اسناد armcc و armclang )
      https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/documentation

      دانلود اسناد GCC
      اینم مثل ARM COMPILER نسخه های مختلفی داره - که حالا از کدوم نسخه باید استفاده کنیم و مشکلی ایجاد میشه و نمیشه رو نمیدونم!


      =================

      در ضمن طبق لینک زیر، در Keil فقط میشه برا Cortex-M کد زد.
      اما در Arm Development Studio میشه برا Cortex-A/R/M ( تمام نسخه های سری CORTEX ) کد زد.
      https://developer.arm.com/products/software-development-tools/compilers/arm-compiler

      ,ولی لینک زیر یه چی دیگه میگه - ای بابا - گیچ شدم که :


      =================

      Safety standards
      در لینک زیر یه جدول هستش با نام "استانداردهای ایمنی" و نوشته که Arm Compiler 5 برا کارهای راه آهن و پزشکی مناسب نیست! ولی برا کارهای خودرویی و صنعتی مناسب هستش ( در این زمینه کسی اطلاعاتی داره بگه لطفا )


      منبع :
      https://developer.arm.com/products/s...ompiler/safety

      =================
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه

      لطفا صبر کنید...
      X