برای برنامهنویسی میکروکنترلرها کامپایلرهای تجاری و رایگان متفاوتی موجود است. بعضی از این کامپایلرها توسط شرکتهای قدرتمند و قدیمی مانند IAR SYSTEM طراحی و با قیمت بسیار زیادی روانهی بازار شده اند. در بین کامپایلرهای تجاری، تعدادی هستند که مهمترین کاربرد آنها در زمینه آموزش مبانی برنامهنویسی میکروکنترلرها و شروع اولیه بااین مدارات مجتمع است و قدرت لازم برای استفاده در کارهای تجاری و حرفهای را ندارند.
شاید برای شما مفید باشد: آموزش AVR از 0 تا 100 کاملا رایگان
در مقابل کامپایلرهای تجاری، کامپایلرهایی با عنوان رایگان یا سورس باز (open source) قرار گرفتهاند. یکی از مهمترین مترجمهایی که در این گروه موجود است GCC یا مجموعه کامپایلرهای گنو (GNU Compiler Collection) نام دارد.
مجموعه کامپایلرهای گنو ( GCC ):
برای آن دسته از دوستانی که ممکن است آشنایی زیادی با این کامپایلر نداشته باشند توضیحاتی را ارائه میدهم:
مجموعه کامپایلرهای گنو یا GNU Compiler Collection که به اختصار GCC نیز خوانده میشود، مجموعه ای از کامپایلرها برای زبانهای برنامهنویسی مختلف است که به وسیله پروژه گنو ایجاد شده است.
GCC در ابتدا فقط کامپایلری استاندارد برای سیستم گنو بود. ولی امروزه در بسیاری از سیستم عامل های مشابه یونیکس از آن استفاده میشود؛ مانند linux ++ ،BSD families ،OSX که در این بین لینوکس شناختهشدهترین سیستم عامل برای مبتدیانی مانند من است. GCC برای معماریهای سختافزاری مختلف مانند AVR و ARM نیز پورت شده است.
GCC در اوایل سرنام کلمات GNU C Compiler بود. زیرا فقط توانایی کامپایل برنامه های نوشته شده به زبان C را داشت؛ که به مرور زمان قادر به ترجمه زبانهای بیشتری مانند C++ ،Fortran ،Pascal ،Java و … شد. از آن پس GCC معادل سرنام کلمات GNU Compiler Collection میباشد. (نقل قول از ویکی پدیا)
لازم به ذکر است برای کامپایل و تبدیل کد نوشته شده به زبان قابل فهم ماشین، علاوه بر کامپایلر به ابزارهای دیگری مانند اسمبلر، لینکر و … نیازمندیم. به مجموعهی این ابزارها که برای برنامهنویسی به آنها نیاز است زنجیره ابزار گنو یا gnu toolchain میگوییم. به عنوان مثال زنجیره ابزار گنو که برای میکروکنترلر AVR پورت شده، AVR toolchain نام دارد.
GCC یا بطور کلیتر GNU toolchain، ابتدا تنها در سیستم عاملهای بر پایهی یونیکس قابل استفاده بود اما باتوجه به قدرتمند بودن و فراگیر شدن این کامپایلر، نسخههایی از آن برای استفادهی کاربران دیگر سیستم عاملها منتشر شد. به عنوان مثال یکی از نسخههای پورت شده برای سیستم عامل ویندوز، mingw نام دارد.
پورت مربوط به پلتفرمavr-gcc ،avr نام دارد. avr-gcc نیز مانند gcc در ابتدا تنها قابل استفاده در سیستمعاملهایی مانند لینوکس بود.
در اغلب کشورها قانونی تحت عنوان قانون کپی رایت وجود دارد. به بیان ساده طبق این قانون برای استفاده از نسخه اصلی و کامل یک نرمافزار و کسب درآمد به وسیله آن باید آن را از شرکت سازنده خرید. یعنی استفاده از ابزاری به نام کرک برای شکستن قفل نرم افزارها و فعال کردن آن، غیرقانونی و جرم محسوب میشود. البته این قانون در کشور ما برقرار نیست و میبایست اکثر نرمافزارها هنگام نصب به اصطلاح کرک شوند. (کرک کردن نرمافزارها و به خصوص کامپایلرها باعث بروز مشکلاتی در طول برنامهنویسی میشوند، گاها مشکلاتی که متوجه آنها در کد کامپایل شده نمیشویم و بعضا در دراز مدت باعث بروز نقصهایی میشوند.)
قانون کپی رایت باعث شد نرمافزارهای رایگان در اکثر کشورها فراگیر شود. در زمینهی مهندسی برق نیز نرمافزارهای رایگان زیادی برای برنامهنویسی، طراحی pcb و… ارائه شدهاند. بدون مقدمه و اشاره به نکات ابتدایی عرض میکنم، برنامهنویسی برای تراشههای قابل برنامهریزی یکی از زمینههایی است که توجه علاقهمندان زیادی را به خود جلب کرده است.
از این گذشته تراشههای بسیاری از طرف شرکتهای مختلف برای اینکار ارائه شدهاند. یکی از این شرکتها اتمل بود که میکروکنترلرهای AVR را روانه بازار کرد. میکروکنترلرهایی قدرتمند که یکی از عناصر اصلی در آموزش میکروکنترلر به هنرجویان محسوب میشود.
طبیعتا با ارائه این میکروکنترلرها، کامپایلرهایی برای برنامهنویسی آنها ارائه شدند. کامپایلرهایی با پشتیبانی از زبانهای C++ ،C و بیسیک. در این مقاله هدف ما تمرکز روی کامپایلر avr-gcc و ابزارهای مناسب برای بکارگیری این کامپایلراست. بنابراین بدون توجه به کامپایلرهای دیگر از کنار آنها رد میشویم!
نسخه ویندوزی این کامپایلر که برای برنامهنویسی به زبانهای C و ++C ارائه شد، Winavr نام داشت. Winavr پکیجی مشتمل بر ابزارهای برنامهنویسی مانند linker ،assembler ،compiler ،editor ،debugger ،avr-size و… میباشد. (در حقیقت Winavr یک پوسته است که تمام ابزارهای گفته شده را در خود جای داده).
در Winavr کدهای برنامه در ویرایشگر کد programmers Notepad نوشته میشوند. تصویر زیر نمونهای از کد نوشته شده در این ویرایشگر متن است:
در ابتدا که شرکت اتمل برای برنامهنویسی میکروکنترلرهایش قفط اسمبلر (avr studio) را ارائه کرده بود، پروژهی آزاد Winavr به منظور ایجاد محیطی برای برنامهنویسی به زبانهای C و ++C در میکروکنترلرهای avr ایجاد شد. برنامهنویسی در محیط Winavr به دلیل سروکار داشتن با Makefile و … همچنین یکپارچه نبودن ابزارها، مشکلاتی را برای تازهکارها به وجود می آورد.
در نسخههای بعدی avr studio این قابلیت به آن افزوده شد تا در صورت نصب بودن winavr، توسط avr studio شناسایی شده و امکان برنامه نویسی به زبانهای C و ++C تحت کامپایلر avr-gcc در محیط avr studio فراهم شود.
در نسخهی 5 به بعد نرمافزار، avr studio شرکت اتمل کامپایلر avr-gcc را مستقیما به این IDE اضافه کرد. بعد از اینکار پروژه آزاد winavr خاتمه یافت. تصویر زیر محیط نرمافزار avr studio5 را نشان میدهد:
در صورتی که تجربهی کار با پکیج برنامهنویسی شرکت مایکروسافت یعنی visual studio را داشته باشید، متوجه خواهید شد این محیط شباهت زیادی به visual studio IDE دارد و خیلی از امکانات برنامهنویسی این نرمافزار را در خود جای داده است. در محیط avr studio 5 علاوه بر کدنویسی برای این دسته از میکروکنترلرها، از قابلیت دیباگر نیز میتوان استفاده کرد. نسخه 5 این نرمافزار تمام میکروکنترلرهای خانواده ی AVR را پشتیبانی میکند.
سیسوگ در جلسه دوم قصد دارد شما را با ویژوال استودیو بیشتر آشنا کند. در مجموعه مقالات “برنامه نویسی میکروکنترلر AVR در محیط ویژوآل استودیو” سیسوگ را همراهی نمایید.
سلام.من avr-gcc رو از کجا برای ویندوز دانلود کنم ؟ چیزی تو گوگل پیدا نکردم همشون winavr بودن که اخرین اپدیتش مال 2010 هست و خیلی قدیمیه.میشه لینک دانلودش رو بزارید؟
سلام دوست عزیز
توی سایت آتمل قدیم و میکروچیپ جدید میتونید آخرین ورژن تولچین رو دانلود کنید 🙂
از اینجا میتونید اخرین ورژنش رو دانلود کنید