در این مقاله از سیسوگ میخواهیم یک ابزار قدرتمند و استاندارد برای برنامه نویسی میکروکنترلر های AVR به شما معرفی کنیم. اکلیپس Eclips یک محیط یکپارچه برنامه نویسی (IDE) متن باز است که امکانات بسیار خوبی برای راحتی برنامه نویسان دارد. با ترکیب این محیط کاربرد پسند با ابزارهای AVR محیط برنامه نویسی AVR Eclips خودمان را آماده میکنیم!
مروری کلی بر ابزار های موجود
قبلاً در سیسوگ و در مقالات چرا کدویژن نه! و بررسی بهترین زبان، کامپایلر و محیطهای برنامه نویسی مختلف برای میکروکنترلر AVR برخی از محیطهای برنامه نویسی و کامپایلرهایی که برای AVR وجود دارد، را بررسی کردیم و ایرادات هر کدام را متوجه شدیم.
برای مثال، کدویژن یک کامپایلر کرک شده غیر استاندارد است و تنها آپشن ویرایشگر آن این است که وقتی یک پرانتز یا آکولاد را انتخاب میکنید، ابتدا و انتهای آن را برای شما به رنگ زرد در میآورد! همچنین در مقاله کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها مشخص شد که از زبان ANSI C به جای زبان C پشتیبانی می کند که بسیار قدیمی است. کدویژن حتی از متغیرهای 64 بیتی نیز پشتیبانی نمیکند!
WINAVR نیز که از کامپایلر استاندارد GCC استفاده میکند، بسیار قدیمی بوده و کار با آن برای مبتدیان کمی سخت است. ATMEL STUDIO که توسط خود شرکت سازنده AVR معرفی شده، تمامی استانداردهای لازم را دارد، اما متأسفانه به دلیل استفاده از Visual Studio حجم بسیار زیادی داشته و اجرای آن بر روی سیستمهای قدیمی سنگین است.
از طرفی، بسیاری از لایبری های بسیار خوب و قوی موجود بر روی اینترنت برای WINAVR و یا ATMEL STUDIO نوشته شدهاند. همچنین با توجه به قابلیتهای زبان C، این زبان در مقایسه با زبانهای دیگری مثل پایتون و بسکام، برای کاربردهای امبدد بسیار بهتر است.
اما راه حل چیست؟!
توجه داشته باشید که ما صرفاً معایب هریک از کامپایلرها و محیطهای برنامه نویسی مختلف را بررسی کنیم. قطعاً هر کدام مزایا و کاربرد خاص خودشان را دارند و اگر تا کنون از هر ابزاری استفاده میکردید و جواب گوی نیاز شما بوده، احتمالاً ازین پس نیز، نیازی به تغییر آن نیز نخواهید داشت. انتخاب ابزار درست، تنها بخشی از روند برنامه نویسی است. گاهی اوقات، اگر شما سوار بهترین خودرو نیز باشید، اما مسیر اشتباهی را طی کنید، به هدف خود نخواهید رسید. مهم هدف شماست و نحوه استفاده شما از این ابزارهاست. تمامی این ابزارها شما را به هدفتان خواهند رساند. ما در اینجا صرفاً مجموعهای از بهترین ابزارهای استاندارد و متن باز را معرفی میکنیم تا به اصولیترین روش ممکن اهداف خود را پیش ببرید.
یکی از اصولیترین راههای برنامه نویسی میکروکنترلر AVR، استفاده از کامپایلر استاندارد GCC ارائه شده توسط خود سازنده، به همراه یک محیط برنامه نویسی حرفهای و کاربر پسند مثل Eclips است که در مقایسه با ATMEL STUDIO اجرای آن راحتتر است. اما انجام این کار نیز نیاز به کمی تجربه دارد. به همین خاطر بسیاری از افراد استفاده از همان IDE های معمول را ترجیح میدهند.
بنا به درخواستهای مکرر شما، در این مقاله، سعی داریم تا بهصورت تصویری، AVR Eclips خودمان را بسازیم تا مشکل بسیاری از شما برنامه نویسان برای انجام این کار برطرف گردد! آموزش نصب بر روی سیستم ویندوز انجام شده است، اما به طریقی مشابه، برای سیستم عاملهای لینوکس و مک نیز قابل انجام خواهد بود.
موارد مورد نیاز
- AVR8 GNU Toolchain
- Make File
- AVRDUDE
- Java SE Runtime Environment (JRE)
- Eclipse cpp Mars (IDE) + AVR Plugin
تولچین و ابزار های AVR
تولچین AVR یعنی زنجیرهای ابزارهای لازم برای برنامه نویسی AVR که توسط خود سازنده این تراشهها برای برنامه نویسان عرضه شده است. این ابزارها شامل کامپایلر AVR-GCC نیز میباشد. ما برای ساخت AVR Eclips به این تولچین نیاز خواهیم داشت. همان طور که میدانید، تراشههای AVR قبلاً توسط شرکت ATMEL تولید میشدند، اما هم اکنون کل آن شرکت توسط microchip خریداری شده است. بنابراین، برای دانلود آخرین نسخه تولچین AVR باید به وب سایت میکروچیپ و صفحه دانلود تولچین آن مراجعه کنید، اما متأسفانه باید ابزار گذر از تحریم داشته باشید و در وب سایت میکروچیپ هم ثبت نام کنید، به همین خاطر و برای راحتی شما، نسخه ویندوزی آن را به سرور سیسوگ منتقل کردیم تا بتوانید با لینک مستقیم دانلودشان کنید.
ابزار make file
قبلا در سری مقالات از نرمافزار تا سختافزار – قسمت اول – ساختار کامپایلر با روند کامپایل فایلها در زبان C را به زبان ساده آموزش دادهایم، و کاربرد ابزاری به نام make file را نیز توضیح دادهایم. شما برای کامپایل کردن کدهای زبان C به این ابزار نیز احتیاج خواهید داشت. هیچ جای نگرانی وجود ندارد، چون شما برای برنامه نویسی، نیازی نیست تا با این ابزار مستقیم کار کنید و خود IDE بهصورت اتوماتیک تمام کارها را برایتان انجام خواهد داد. ابزارهای make file را میتوانید از طریق گیت هاب دانلود کنید و سپس پوشه bin آن را به path ویندوز اضافه کنید. اما توجه داشته باشید که برای راحتی شما، ابزارهای make file را نیز درون همان پوشه ابزارهای تولچین اضافه کردهایم و اگر تولچین AVR را از سرور سیسوگ دانلود میکنید، نیازی به دانلود make file نیز نخواهید داشت. همچنین از آنجایی که ابزارهای make File را با ابزارهای تولچین ترکیب کردهایم، بدیهی است که تنها اضافه کردن مسیر تولچین در مرحله قبل به path کافی است و نیازی به اضافه کردن مسیر make file به صورت جداگانه نیز نخواهد بود.)
پس این مرحله هیچی (:
ابزار AVRDUDE
AVRDUDE یک ابزار است که تحت محیط فرمان اجرا میشود و توسط آن میتوانید میکروکنترلر های مختلف AVR را با انواع پروگرامر ها برنامه ریزی کنید. در مقاله ابزار حرفه ای avrdude برای پروگرام کردن AVR آموزش کار با این ابزار داده شده است، توصیه میکنم این مطلب را از دست ندهید. avrdude را میتوانید از این لینک دانلود کنید. (اگر ویندوزی هستید، فایل avrdude-6.3-mingw32.zip را دانلود کنید.) پس از استخراج، دو فایل با نام avrdude و avrdude.conf خواهید داشت و میبایست محل این ابزار را نیز در path اضافه کنید.
اما از آنجایی که این ابزار حجم بسیار کمی داشته و احتمالاً آپدیت دیگری برای آن نخواهد آمد، آن را نیز در Toolchain دانلودی از سرور سیسوگ برای شما قرار دادهایم!
این مرحله ام هیچی! (;
(صرفاً جهت اطلاع) محیطهای برنامه نویسی آردوینو، WINAVR و ATMEL STUDIO نیز تقریباً از همین ابزارها (یا مشابهشان) استفاده میکنند و درون فولدرهای آنها میتوان این ابزارها را نیز پیدا کرد، اما با این حال، بهتر است آنها را از آدرسهای ذکر شده دانلود کنید.
اضافه کردن ابزار ها به PATH ویندوز
پس از دانلود تولچین و دیگر ابزارها، میبایست آنها را در فولدری استخراج کنید و مسیر پوشه bin داخل آن را در path ویندوز اضافه کنید. بهتر است آنها را در درایو C ویندوز قرار دهید. همان طور که بالاتر نیز اشاره شد، اگر از سرور سیسوگ دانلود کنید، همه ابزارهای تولچین، make file و AVRDUDE در یک پوشه قرار گرفتهاند. پس از دانلود، اگر آن را در درایو C استخراج کنید و به فولدر bin داخل آن بروید، میبایست فایلهایی مثل تصویر زیر را مشاهده کنید:
حال، این مسیر را باید در path ویندوز اضافه کنیم، برای این کار بر روی this PC کلیک راست کرده و properties را بزنید.
سپس بر روی Advances Envirenment setting کلیک کنید.
از پنجره system properties و از تب Advanced، Envirenment Variables را انتخاب کنید.
در پنجرهای که باز شد، گزینه ADD را بزنید تا بتوانید مسیر تولچین AVR را در PATH اضافه کنید:
مطمئن شوید که مسیر به درستی اضافه شده است:
همه پنجرهها را OK بزنید، در صورتی که همه چیز به درستی انجام شده باشد، اگر دستور avr-gcc را در محیط cmd وارد کنید، باید خروجی زیر را مشاهده کنید:
اگر دستور برای cmd ناشناخته بود، مسیر بالا را به درستی انجام ندادهاید.
نصب جاوا و اکلیپس
اکلیپس یک محیط برنامه نویسی متن باز است که با استفاده از جاوا نوشته شده است، بنابراین برای اجرای آن، باید JRE را نصب داشته باشید. برای دانلود JRE از وب سایت اوراکل (Oracle) هم میبایست ابزار گذر از تحریم داشته باشید و هم در آن ثبت نام کنید تا لینک دانلود برایتان فعال شود. اما با یک جستجو ساده در گوگل، میتوانید به راحتی جاوا را از سایتهای ایرانی دانلود کنید.
محیط برنامه نویسی Eclips را نیز میتوانید از وب سایت اصلی آن دانلود کنید. توجه داشته باشید که باید نسخه CPP آن را دانلود کنید، زیرا زبان مورد استفاده شما C و C++ است. همچنین باید نسخه Mars آن را دانلود کنید، زیرا پلاگین AVR بر روی آن به خوبی اجرا میشود. بنابراین، از طریق این لینک Eclips CPP MARS را دانلود کنید.
نصب پلاگین AVR
بعد از باز کردن Eclips، از شما میخواهد که آدرسی را برای پروژههای خود مشخص کنید. آدرس دلخواه و مشخصی را در آن وارد کرده و Launch کنید.
نکته: اگر به جز این Eclips نسخه دیگری را نیز نصب دارید، آدرس workspace آنها را یکجا را انتخاب نکنید و مسیرهای متفاوتی را تعیین کنید.
سپس نوبت به نصب پلاگین AVR بر روی Eclips میباشد. از طریق منوی
Help -> Eclips Marketplace
وارد market place شوید.
سپس AVR را جستجو کرده و پلاگین آن را نصب کنید.
پس از نصب، یک بار Eclips بسته و مجدداً باز خواهد شد. تبریک! محیط برنامه نویسی استاندارد شما برای AVR شما آماده است!
خلاصه مراحل نصب AVR Eclips
بهطور خلاصه، اگر کارهایی که تا اینجا انجام دادهایم را بخواهیم جمع بندی کنیم، ابتدا تولچین AVR، ابزار make file و avrdude را از طریق لینکهای داده شده دانلود کرده و یا همگی را یکجا از سرور سیسوگ دانلود میکنیم. سپس مسیر آنها را به path اضافه میکنیم. Eclips CPP Mars را نیز از وبسایت آن دانلود کرده و اگر جاوا را هم از قبل نداریم، نصب میکنیم. با نصب پلاگین AVR، محیط برنامه نویسی ما آماده است! اسم آن را AVR Eclips میگذاریم. به همین راحتی!
در قسمت بعدی، یک پروژه ساده چشمک زن، با استفاده از AVR Eclips خواهیم ساخت.
سلام.وقت بخیر.برای نصب eclips همون نسخه mars2 رو نصب کنیم یا نسخه cdt?
سلام.
AVRdude نسخه 7 اومده.
و در مورد Eclips هم دیگه نسخه Mars2 وجود نداره ، الان دو نسخه Eclipse IDE for C/C++ Developers و Eclipse IDE for Embedded C/C++ Developers وجود داره . کدوم رو باید نصب کنیم ؟
این آموزش قدیمی است و شما باید ایکلیپس CDT رو نصب کنید آخرین نسخه رو
من دنبال راهی هستم که بشه آردینو با اکلیپس برنامه نویس کنم داکیومنت فارسی راجب کانفیگ کردن این دوتا کم دیدم
درود بر شما، توی سیسوگ مقالاتی در این باره هست، مثل این مقاله:
https://sisoog.com/2017/05/27/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a2%d8%b1%d8%af%d9%88%db%8c%d9%86%d9%88-%d8%b1%d8%a7-%d8%a8%d8%a7-%d9%88%db%8c%d8%b1%d8%a7%db%8c%d8%b4%da%af%d8%b1-%d8%ad%d8%b1/
سلام و خسته نباشید
و خیلی ممنون بابت اموزش هاتون
به غیر از ctrl+space گزینه دیگه نیست برای autocomplete کردن تو محیط eclips ، چیز خاصی تو نت پیدا نکردم ؟
معمولاً از همین استفاده میشه و همینطور auto format که کدهای نامرتب و فاصلههای اضافی رو مرتب میکنه. اکلیپس قابلیتهای خیلی زیادی داره، تو قسمت افزونهها هم احتمالاً موارد خوبی رو بتونید پیدا کنید.
واقعا آموزش ها رو دلسوزانه با جزئیات کامل و ساده مینویسید تشکر میکنم ازتون من قبلا خواسته بودم همین کارو کنم ولی انقدر دنگ و فنگ داشت ول کردم و با همون کدویژن کنار اومدم حالا متن شما رو دیدم خیلی کیف کردم تو منابع فارسی همچین آموزشایی پیدا میشه کارتون حرف نداره
خوشحالیم که برای شما مفید بوده
سلام
با تشکر از شما و وبسایت خوب و ارزشمند سیسوگ
من توی اضافه کردن فایل های تولچین AVR مشکل دارم
توی ویندوز 10 نسخه 2004 منوی Envirenment Variables به صورتی که توی تصویر نشان داده شده نیست و تفاوت دارد
بعد از اضافه کردن مسیر cmd دستور avr-gcc رو نمیشناسه
لطفا اگر اطلاع دارید راهنمایی کنید
درود بر شما.
شما بر روی This PC کلیک راست کنید و Properties را بزنید.
در همان منوی About سمت راست Advances system setting را بزنید، وارد تب Advanced و سپس Environment Variables شوید.
اگه دقت کنید، دو بخش هست، یکی متغیر هاییِ که کاربر تعریف کرده و یکی هم مال خود سیستم هست و توی هر دو بخش متغیر path وجود داره، شما اونی که مال کاربر هست رو ویرایش کنید و بهش اضافه کنید. در ضمن حواستون باشه توی مسیری فایلاتون رو قرار بدید که اجازه اجراشدن داشته باشه. بهتره تو درایو C باشه مثل زیر:
C:\avr8-gnu-toolchain\bin
تست کنید، اگر باز مشکلی بود بپرسید.
من تو ویندوز 7 دقیقا همین کار رو کردم C:\avr8-gnu-toolchain\bin و تو این آدرس گذاشتم path رو میزنم اسمشم avr-gcc میذارم ولی متاسفانه تو cmd نمیشناسه
البته ناگفته نمونه اتمل استودیو رو نصب دارم نمیدونم بخاطر اونه یا نه
فکر کنم باید اون مسیر رو بعد از این که به path سیستم اضافه کردید یک بار سیستم رو ریست کنید
قسمت بعدش کی میاااددد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
درود بر شما، قسمت بعدی منتشر گردید:
https://sisoog.com/2021/04/25/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%be%d8%b1%d9%88%da%98%d9%87-avr-%d8%ac%d8%af%db%8c%d8%af-%d8%af%d8%b1-%d9%86%d8%b1%d9%85-%d8%a7%d9%81%d8%b2%d8%a7%d8%b1-eclips/
تمایل به استفاده از ابزارهای متن باز چیزیه که زیاد در بین ما مرسوم نیست و این نوع مقاله ها به بهبود این روند کمک میکنه.ممنون بابت اشتراک این مطلب مفید و زمانی که صرف کردید.
درود بر شما. بله، متأسفانه همین طوره و خیلیها از مزیتهای متن باز بودن نیز مطلع نیستند. لطفاً با معرفی ما به دوستانتان، از ما حمایت کنید.
نصبش کردم. کدویژن چیبود آخه نه رنگی نه هیچی.
ممنون از تیم سیسوگ بابت زحماتی که می کشید.
خواهش می کنم. لطفا مطالب ما رو با دوستانتون به اشتراک بگذارید.
سلام
خدا قوت مقاله خوبی برای تازه واردان به دنیای gcc بود
فقط یک مسئله ای که است اینکه اون avr gcc یه کم قدیمی با gcc ۵٫۲ هست نسخه جدید بیلد شدش ۱۰٫۱ تو یه سایت هست.
و آخه RAM از سر راه اوردم یک گیگ بدم eclipse !!!
درود بر شما.
ما تولچین رو از سایت اصلی خود میکروچیپ دانلود کردیم.
شما از کجا گرفتید؟ شاید عملکردش قابل اعتماد نباشه.
با این حال، اکلیپس نسبت به اتمل استادیو خیلی سبک تر هست.
https://blog.zakkemble.net/avr-gcc-builds
البته مشخصا خودم هم می تونم build کنم ولی آخه با دوهستهcpu!! یادمه یه بار که build کردم رو ابونتو سه ساعتی طول کشید ?
بعد از جهت مصرف رم هم من نسبت به vs code گفتم الآن خیلی وقته دیگه با اون و platformio کار می کنم.
این تولچین هم جایگزین تولچین پیش فرض platform io کردم تا الآن که عالی بوده و به مشکلی بر نخوردم.
عجب …
عجب از چه لحاظ بود !؟
از بابت تجربیات و خاطرات مفیدتون ?
آخرین نسخه gcc 11.1 برای avr در سایت قرار گرفت ??
یوهوو ?
قابل اعتماد بودن از جه لحاظ ؟!!
تا بحال از این جنبه نگاه نکرده بودم
اگر بدون خطا build بشه بازم ممکنه مشکلی داشته باشه ؟
به هر حال من که تابحال ازش مشلکی ندیدم
درود بر شما، از لحاظ بهینه بودن و performance، به هر حال تولچینی که خود سازنده ارائه میده، اعتبار بیشتری داره و توسط خود سازندگان اون تأیید شده. باید دید آیا منبع شما تا چه اندازه معتبر هست.
سلام.
حاجی اکلیپس 400 مگ رم بیشتر نمیگیره کجا یه گیگ میگیره؟ دم سیسوگ گرم از شر کدویژن لعنتی خلاص شدم یک ماه وقتمو برا یه ارور الکی گرفت کد هم سالم سالم بود ارورای میداد به مغز جن نمیرسه چرا تو آموزشا فقط کدویژن استفاده میکنن نمیدونم
موفق باشی!
ایییول خودشهههه منتظر قسمت بعد هستیم. لطفا زود تر منتشر کنین……
ممنون. به زودی …
دمتون گرم. برای کدنویسی AVR با همون Atmel studio کنار میام ولی برای کدنویسی ARM تو محیط IAR برام قابل تحمل نیست :))
واسه همین از VS Code و یه پلاگین استفاده کردم که خیلی عالی شد، ولی فعلا موفق نشدم باهاش کامپایل یا دیباگ کنم و فقط در حد ادیتور استفاده میکنم. آموزش اونم اگه بذارید خیلی خوبه.
درود بر شما آموزش برنامه نویسی AVR در محیط VS CODE رو قبلاً منتشر کردیم:
https://sisoog.com/2019/12/16/vscode-%d8%a8%d8%b1%d8%a7%db%8c-avr/