کامپایلرهای AVR
کامپایلرهای AVR
کامپایلر، نرم افزاری کامپیوتری است که متنی را از یک زبان برنامه نویسی سطح بالا به زبان سطح پایین مثل اسمبلی یا زبان سطح ماشین تبدیل می کند. کامپایلر همچنین طی فرآیند تبدیل وجود خطا در زبان برنامه نویسی سطح بالا را مشخص می کند. زبانهای سطح بالا زبانهایی هستند که به زبان انسان نزدیکتر بوده و قابل فهم هستند مثل C، Basic و جاوا. زبان سطح پایین مثل اسمبلی است که اجزای برنامه مثل حلقه ها و شروط در آن به وضوح مشخص نیستند. زبان سطح ماشین نیز صرفاً از صفر و یک تشکیل شده است. البته اگر به فایلی که برای پروگرام کردن استفاده می شود نگاهی بیاندازیم حروف و اعدادی را می بینیم که همه در واقع کدهای اسکی هستند. به این معنا که هر حرف نماینده ۸ بیت داده یا ۸ تا ۰ و ۱ متوالی می باشد.
برای میکروکنترلر AVR کامپایلرهای متعددی موجود است که هر کدام مزایا و معایب خود را دارند. در اینجا نمی خواهم تمام آنها را آورده و توضیحات اضافی بدهم فقط مهم ها را بیان می کنم.
Atmel Studio
این کامپایلر یکی از قدرتمند ترین کامپایلرهای AVR می باشد ولی در عین حال پیچیده تر از بقیه بوده و یادگیری آن راحت نیست. به صورت رایگان از سایت ATMEL قابل دانلود می باشد. البته در ایران فعلاً قابل دانلود نیست ولی می توانید از سایتهای ایرانی آن را به راحتی دانلود کنید. علاوه بر میکروکترلرهای AVR این کامپایلر توانایی برنامه ریزی میکروکنترلرهای ARM را نیز داراست.
مزایا:
- پشتيباني زبان اسمبلي
- به دليل اينه كه از زبان اسمبلي پشتيباني ميكند كد hex توليد شده نهايي بسيار كم ميباشد
- رايگان بودن
- اگر از اين اسمبلر استفاده كنيد با معماري ميكرو بهتر آشنا خواهيد شد
- در صورت نصب AVR GCC ميتوان زبان C را نيز به كار برد
- قابليت پشتيباني انواع پروگرامر هاي و JTAG
معایب:
- استفاده از آن به راحتی کامپایلرهای دیگر نیست. کمی پیشرفته بوده و باید با معماری میکرو آشنایی کامل داشت. به علاوه نوشتن برنامه، عیب یابی و … به راحتی کامپایلر های دیگر نیست.
WINAVR
يكي از قدرتمندترين كامپايلر ها براي میکروکنترلرهاي AVR مي باشد و طرفداران بسياري را در دنيا دارد(نه در ايران !) اين كامپايلر كاملا رايگان ميباشد و آخرين نسخه آن را ميتوانيد از اينجا دانلود كنيد.
مزايا :
- داراي كتابخانه هاي قدرتمند و زياد كه بر روي نت ميتوان به آساني آنها را يافت و مورد استفاده قرار داد.
- داراي Tutorial هاي كامل و جامع رايگان بر روي نت .
- قابيلت پشتيباني زبان هاي برنامه نويسي C و ++C .
- پشتيباني علمي و اموزشي سايت قدرتمند avrfreaks از اين كامپايلر .
- داراي كد هاي open source فراوان بر روي نت .
- كد توليد شده فوق العاده كم براي برنامه هاي حجيم .
- و هزاران مورد ديگر
معايب :
- يادگيري زبان C دشوار است
- محيط برنامه نوسي جالبي ندارد .
در حالت كلي ميتوان گفت كه بیشتر برنامه نويسان حرفه ايي میکروکنترلرهاي AVR از اين كامپايلر استفاده ميكنند . اين كامپايلر به دليل اينكه كد HEX كمتري توليد ميكند نهایتاً برنامه بهینه و سریع تری را نتیجه می دهد.
IAR Embedded Workbench
از کامپایلرهای قدرتمند در برنامه نویسی میکروکنترلرها نرم افزار قدرتمند IAR است. این کامپایلر از بیشتر میکروکنترلرهای موجو در بازار پشتیبانی می کند و اگر با یکی از میکروکنترلرها با آن کارکرده باشید کار کردن با میکروکنترلری دیگر بسیار ساده تر خواهد بود. سازندگان میکروکنترلرها معمولاً مثالهایی که در Source Code هایشان دارند به این زبان است. معمولاً منابع زیادی در اینترنت برای این محیط برنامه نویسی موجود نیست و شاید به همین دلیل است که سراغ آن نمی روند. از قدرت و خوبی این محیط برنامه نویسی فقط یک چیز را می گویم. درست است که برای ما در ایران قیمت نرم افزار اهمیتی ندارد ولی قیمت این نرم افزار مثلاً برای AVR به صورت متغیر بین ۹۰۰ تا ۳۰۰۰ دلار است در حالی که بسکام بین ۹۵ تا ۱۲۰ دلار قیمت دارد. این مثل را به یاد داشته باشید که هر چقدر پول بدهید همان مقدار آش می خورید مگر آنکه در ایران باشید!!!
در آینده آموزش های خوبی برای IAR در سایت خواهیم گذاشت.
BASCOM
اين كامپايلر محصولي از شركت MCS است كه زبان QBASIC را پشتيباني ميكند . نسخه DEMO اين كامپايلر را ميتوان از سايت رسمي اين شركت دانلود كرد . با اين نسخه حداكثر ميتوان ۴ كيلو بايت را كامپايل كرد كه براي چيپ هايی مثل Atmega48 و سري TinyAVR بسيار مناسب ميباشد. نسخه تجاري اين كامپايلر قابليت اين را دارا ميباشد كه تا ۱۲۸ كيلو بايت را كامپايل كند. در ایران به دلیل نبود قانون کپی رایت این نرم افزار به صورت گسترده مورد استفاده قرار گرفته است و کتابهایی نیز با استفاده از این زبان برای AVR نوشته شده است.
مزايا :
- در كد نويسي شما به ساختار و معماري ميكرو كاري نداريد و اين كار تنها با استفاده از يك زبان سطح بالا براي شما ميسر شده است.
- فرايند برنامه نويسي بسيار ساده و راحت و روتين است .
- يادگيري اين زبان بسيار راحت است و در مدت زمان كم ميتوان به خوبي آن را ياد گرفت.
- داراي مثال ها و كد هاي فراواني به صورت open source در اینترنت است.
- در فرايند برنامه نويسي راهنماهايي از سوي كامپايلر به شما اعلام ميشود كه سودمند اند .
معايب :
- كد hex توليد شده زياد است
- در جاهايي كه سرعت مورد نياز است اين زبان به درد شما نميخورد .
- به دليل اينكه زبان بيسيك يك زبان سطح بالا ميباشد در جاهايي كه ارتباط تنگاتنك ميان ميكرو و برنامه لازم است برنامه نويس قدرت مانور بالايي ندارد .
- ايجاد كد هايي به صورت ماجولار كمي دشوار است .
CODEVISION
اين كامپايلر محصولي از شركت Hp info Tech ميباشد . زباني كه اين كامپايلر پشتيباني ميكند زبان C ميباشد . شركت Hp info Tech انواع مختلفي از اين كامپايلر را روانه بازار كرده است. نسخه free اين كامپايلر ميتواند تا ۲ كيلو بايت را كامپايل كند . نسخه هاي ديگر نوع Advanced و Professional را شامل می شود. سایت سازنده تفاوت بین این نسخه ها را به طور کامل توضیح داده است.
مزايا :
- به دليل اين كه اين كامپايلر تحت C ميباشد قابليت مانور روي سخت افزار بسيار زياد است .
- ميتوان توابع كتابخانه ايي را به دلخواه ويرايش و بازنگري قرار داد وحتي براي پروژه مورد نياز خود كتابخانه نوشت .
- منابع موجود براي يادگيري (حداقل در ايران ) به وفور يافت ميشود .
- قابليت ارتباط با زبان اسمبلي را دارا ميباشد .
- ايجاد كد هايي به صورت ماژوال آسان است.
معايب :
- يادگيري زبان C دشوار است و به علت اين كه اين كامپايلر از اين زبان استفاده ميكند فراگيري آن را محدود ميكند .
- كامپايلر codevision داراي BUG هايي ميباشد كه در برنامه های حرفه ای بزرگ بیشتر به چشم می خورد. البته این باگها در ویرایشهای بعدی کمتر می شوند.
در ایران به علت رایگان بودن آن (عدم رعایت قانون کپی رایت) استفاده از آن در پروژه های حرفه ای بسیار معمول شده است و کتابهایی نیز برای آموزش AVR به این زبان موجود است. از مهمترین مشخصات Codevision آن است که محیط برنامه نویسی، محیط دیباگ کردن برنامه و محیط برنامه ریزی یا پروگرام کردن میکروکنترلر همه با هم در آن موجود است.
یکی از ویژگی هایی که Codevision دارد قابلیت ویزارد ابتدایی آن برای پیکره بندی اولیه پروژه است. کار با رجیسترها و پیکره بندی امکانات جانبی از کارهایی است که نیاز به دقّت دارد. محاسبات برای تنظیم رجیسترهای مختلف مثلاً تایمرها، SPI، USART و دیگر امکانات، معمولاً وقت گیر است و اگر اشتباه انجام شود باعث ایجاد باگ در برنامه می گردد. آشنایی کامل با رجیسترها و نحوه پر کردن آنها کاری است که معمولاً برای کسانی که تازه کار با AVR را شروع کرده اند مشکل است. ویزارد مذکور در برنامه این امکان را به ما می دهد تا رجیسترهای مربوط به امکانات جانبی میکروکنترلر را به طور کامل و با واسط گرافیکی مناسبی تنظیم کنیم. این قابلیت بی شک از مهمترین مشخصاتی است که طراحان را به سمت این نرم افزار کشانده است.
در این سایت از این زبان برای شروع برنامه نویسی AVR استفاده می کنیم. با این حال در آینده زبان برنامه نویسی IAR نیز آموزش داده شود. در مورد BASCOM منابع خوبی در اینترنت وجود دارد.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.