AVR, آموزش, توصیه شده, سیسوگیها, مقاله

برنامه نویسی میکروکنترلر AVR در محیط ویژوال استودیو (جلسه اول)

آمورش برنامه نویسی میکروکنترلر avr در ویژاول استودیو

برنامه نویسی میکروکنترلر AVR ; برای برنامه نویسی میکروکنترلرها کامپایلرهای تجاری و رایگان متفاوتی موجود است. بعضی از این کامپایلرها توسط شرکت‌های قدرتمند و قدیمی مانند IAR SYSTEM طراحی و با قیمت بسیار زیادی روانه‌ی بازار شده‌اند. در بین کامپایلرهای تجاری, تعدادی هستند که مهمترین کاربرد آن‌ها در زمینه آموزش مبانی برنامه‌نویسی میکروکنترلر ها و شروع اولیه با این مدارات مجتمع است و قدرت لازم برای استفاده در کارهای تجاری و حرفه‌ای را ندارند. در مقابل کامپایلرهای تجاری, کامپایلرهایی با عنوان رایگان یا سورس باز( 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 avr-gcc, نام دارد. avr-gcc نیز مانند gcc در ابتدا تنها قابل استفاده در سیستم عامل‌هایی مانند لینوکس بود.

در اغلب کشورها, قانونی تحت عنوان قانون کپی رایت وجود دارد. به بیان ساده طبق این قانون برای استفاده از نسخه اصلی و کامل یک نرم افزار و کسب درآمد بوسیله آن, باید آن را از شرکت سازنده خرید. یعنی استفاده از ابزاری به نام کرک برای شکستن قفل نرم افزارها و فعال کردن آن, غیرقانونی و جرم محسوب می‌شود.البته این قانون در کشور ما برقرار نیست و میبایست اکثر نرم افزارها هنگام نصب, به اصطلاح کرک شوند.

 

کرک کردن نرم افزارها و بخصوص کامپایلرها باعث بروز مشکلاتی درطول برنامه نویسی می‌شوند, گاها مشکلاتی که متوجه آنها در کد کامپایل شده نمیشویم و بعضا در دراز مدت باعث بروز نقص‌هایی می‌شوند.

 

قانون کپی رایت باعث شد نرم افزارهای رایگان در اکثر کشورها فراگیر شود. در زمینه‌ی مهندسی برق نیز نرم‌افزارهای رایگان زیادی برای برنامه نویسی, طراحی pcb و…ارائه شده‌اند. بدون مقدمه و اشاره به نکات ابتدایی عرض می‌کنم; برنامه نویسی برای تراشه‌های قابل برنامه ریزی, یکی از زمینه‌هایی است که توجه علاقه مندان زیادی را به خود جلب کرده است.

از این گذشته تراشه‌های بسیاری از طرف شرکت‌های مختلف برای این‌کار ارائه شده‌اند. یکی از این شرکت‌ها, اتمل بود که میکروکنترلر های AVR را روانه بازار کرد. میکروکنترلر هایی قدرتمند که یکی از عناصر اصلی در آموزش میکروکنترلر به هنرجویان محسوب می‌شود. طبیعتاً با ارائه این میکروکنترلرها, کامپایلرهایی برای برنامه نویسی آنها ارائه شدند. کامپایلرهایی با پشتیبانی از زبان‌های  C , C++ و بیسیک. در این مقاله هدف ما تمرکز روی کامپایلر avr-gcc و ابزارهای مناسب برای بکارگیری این کامپایلراست. بنابراین بدون توجه به کامپایلرهای دیگر از کنار آنها رد میشویم!!!

نسخه ویندوزی این کامپایلر که برای برنامه نویسی به زبان‌های C و C++ ارائه شد, winavr نام داشت.  Winavr پکیجی مشتمل بر ابزارهای برنامه‌نویسی مانند linker , assembler , compiler , editor , debugger, avr-size و…می‌باشد. 

 

در حقیقت winavr یک پوسته است که تمام ابزارهای گفته شده را در خود جای داده است.

 

در winavr کدهای برنامه در ویرایشگر کد programmers Notepad نوشته می‌شوند. تصویر زیر نمونه‌ای از کد نوشته شده در این ویرایشگر متن است:

 

ویرایشگر کد programmers Notepad برای AVR در GCC

در ابتدا که شرکت اتمل برای برنامه نویسی میکروکنترلرهایش فقط اسمبلر (avr studio) را ارائه کرده بود, پروژه ی آزاد winavr به منظور ایجاد محیطی برای  برنامه‌نویسی به زبان‌های C و C++ در میکروکنترلرهای avr ایجاد شد. برنامه‌نویسی در محیط winavr به دلیل سر و کار داشتن با Makefile و…همچنین یکپارچه نبودن ابزارها, مشکلاتی را برای تازه کارها بوجود می آورد. در نسخه‌های بعدی avr studio این قابلیت به آن افزوده شد تا در صورت نصب بودن winavr , توسط avr studio شناسایی شده و امکان برنامه نویسی به زبان‌های C و C++ تحت کامپایلر avr-gcc در محیط avr studio فراهم شود.

 

برنامه نویسی در محیط AVR Studio

در نسخه‌ی 5 به بعد نرم افزار, avr studio شرکت اتمل کامپایلر avr-gcc را مستقیما به این IDE اضافه کرد…بعد از این‌کار پروژه آزاد winavr خاتمه یافت. تصویر زیر محیط نرم افزار avr studio5 را نشان می‌دهد:

 

برنامه نویسی میکروکنترلر AVR در آتمل استودیو

در صورتی که تجربه ی کار با پکیج برنامه نویسی شرکت مایکروسافت یعنی visual studio را داشته باشید, متوجه خواهید شد این محیط شباهت زیادی به visual studio IDE دارد و خیلی از امکانات برنامه نویسی این نرم افزار را در خود جای داده است.در محیط avr studio 5 علاوه بر کدنویسی برای این دسته از میکروکنترلر ها, از قابلیت دیباگر نیز می‌توان استفاده کرد.نسخه 5 این نرم افزار تمام میکروکنترلر های خانواده ی AVR را پشتیبانی می‌کند.

 

سیسوگ در جلسه دوم  قصد دارد شما را با ویژوال استودیو بیشتر آشنا کند. در مجموعه مقالات “برنامه نویسی میکروکنترلر AVR در محیط ویژوآل استودیو” سیسوگ را همراهی نمایید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *