آموزش برنامه نویسی با رزبری پای بدون سیستم عامل

آموزش برنامه نویسی با رزبری پای بدون سیستم عامل

آموزش برنامه‌نویسی با رزبری پای بدون سیستم‌عامل – قسمت چهارم

در مقاله‌ی سوم آموزش رزبری پای، به پیکربندی و نصب ابزار مورد نیاز برای کامپایل برنامه و هم‌چنین اجرای اولین برنامه‌ی آموزشی بر روی بردهای رزبری پای پرداختیم. در این مقاله قصد داریم نحوه‌ی نصب و کانفیگ ویرایشگر متن (ادیتور) ایکلیپس (Eclipse) را آموزش دهیم بگونه ای که قادر باشیم با استفاده از این ویرایشگر برای رزبری پای کد نویسی کنیم.

تا این مرحله از آموزش‌ها شما قادر هستید که برنامه‌ی موردنظر خود را بنویسید و برای اجرا بر روی رزبری پای آماده کنید. اما یک خلاء بزرگ در این میان احساس می‌شود و آن هم وجود یک ویرایشگر قدرتمند است که کار برنامه‌نویسی را علاوه بر راحت کردن، تا حدود زیادی نیز جذاب می‌کند.

برای آشنایی با ادیتورها و نحوه نصب و کانفیگ آن‌ها با ما همراه باشید.

 

معرفی انواع ویرایشگر متن (ادیتور)

بله البته هنوز امکان نوشتن برنامه در notepad یا ویرایشگرهای متنی ساده وجود دارد ولی مسئله مهمی که مطرح می‌شود سرعت نوشتن برنامه و خوانایی آن است. با رشد برنامه و اضافه شدن توابع مختلف به برنامه، به خاطر سپردن اسم تابع‌ها و متغییرها تقریباً غیرممکن است و برای استفاده و صدا زدن آن‌ها باید اول به دنبال اسم آنها بگردید بعد پارامترهای ورودی را پیدا کنید و… ؛ این کار بسیار دشوار و طاقت فرسا است. از طرفی ویرایشگرهای مخصوص برنامه‌نویسی علاوه بر قابلیت کد کامپلیشن، با رنگی کردن قسمت‌های برنامه خوانایی آن را افزایش داده و به درک برنامه کمک زیادی می‌کنند.

تفاوت یک ویرایشگر حرفه ای و ساده

عکس سمت راست، محیط یک ویرایشگر ساده را نشان می دهد و عکس سمت چپ، یک ویرایشگر حرفه‌ای که قابلیت‌های زیادی دارد.

برای زبان‌های برنامه‌نویسیِ متفاوت، ویرایشگرهای متفاوتی وجود دارد. برخی از ویرایشگرها هم قادر به پشتیبانی از چند زبان مختلف هستند. در کار سخت‌افزار و برنامه‌نویسیِ سیستمی، بیشتر زبان C و ++C مورد استفاده قرار می گیرند و ویرایشگری که به دنبال آن هستم باید قادر به پشتیبانی از این زبان‌ها باشد. ویرایشگرهای تجاری زیادی وجود دارند که قابلیت‌های خوبی را نیز دارا هستند ولی با توجه به فلسفه‌ی متن باز بودن ، ما فقط ویرایشگرهای آزاد و متن‌باز را معرفی می‌کنیم و از آن‌ها استفاده خواهیم کرد.

چند نمونه از ویرایشگرهای پر طرفدار و متن‌باز:

  1. Netbeans
  2. Eclipse CDT
  3. Code::Blocks
  4. CodeLite
  5. Geany
  6. Qt Creator

البته ادیتورهای خیلی زیادی وحود دارند. من در بالا فقط ادیتورهایی را معرفی کردم که خود با آن‌ها کار کرده‌ام و به لحاظ قابلیتی، حداقل‌هایی را پشتیانی می‌کنند.

ما چه ویرایشگری را توصیه می‌کنیم؟

با توجه به وجود ویرایشگر های خیلی خوبی که وجود دارند ، مقداری انتخاب سخت و سلیقه است ، البته وجود قابلیت های قابل پشتیبانی ویرایشگر نیز بی تاثیر نیست. در میان انبوه ویرایشگر های موجود، ما Eclipse را انتخاب می‌کنیم.

معمولا بیشتر افراد ویرایشگر Eclipse را ویرایشگر Java می شناسند، در صورتی که این ویرایشگر قدرتمند قادر است 44 زبان برنامه نویسی مختلف را پشتیانی کند و از همه مهم‌تر بر روی چهار سیستم عامل لینوکس، ویندوز،مک، سولاریس قابل راه اندازی و استفاده است.

ویرایشگر Eclipse

البته واضح است که شما در انتخاب ویرایشگر متن کاملا مختار هستید و بسته به نیاز و قابلیت ها می توانید ادیتور مورد نیاز خود را انتخاب کنید، ما در این آموزش ها از Eclipse استفاده می‌کنم ،

چرا که

  • متن باز است
  • قادر به پشتیبانی زبان های زیادی است.
  • قابلیت نصب پلاگین دارد.
  • قادر به اجرا در سیستم های مختلف است
  • رابط کاربری مناسبی دارد.
  • و…..

چطور Eclipse را نصب کنیم ؟

برای نصب و راه اندازی Eclipse نیاز است که چند گام پبشتر از نصب دیگر ویرایشگر ها بردارید. همانطور که می دانید ادیتور Eclipse برای اجرا شدن نیاز به پلتفرم Java دارد. یعنی باید ابتدا جاوا (JRE) را بر روی سیستم نصب کنید.

بسته به ورژن Eclipse مورد استفاده ، نسخه جاوا هم باید با آن همخوانی داشته باشد، ما در این آموزش از آخرین ورژن موجود Eclispe یعنی ورژن Oxygen استفاده خواهیم کرد. در این ورژن نیاز به Java 1.8 می باشد.

 

گام اول نصب جاوا:

قبل از دانلود و نصب جاوا ، چک کنید ممکن است جاوا همراه نرم افزار دیگری نصب شده باشد و نیازی به نصب مجدد آن نباشد. برای بررسی این موضوع ، دستور زیر را در کامندلاین (ترمینال / کامند پرامت) وارد کنید.

در صورت نصب جاوا باید خروجی مطابق عکس زیر داشته باشید ، دقت داشته باشید که ورژن باید حتما 1.8 باشد.

در غیر این صورت میتوانید جاوا ورژن 1.8 را از این لینک دانلود کنید و برای نصب مطابق مراحل زیر عمل کنید.

بعد از تمام شدن مراحل نصب ، صحت نصب و ورژن جاوا را چک کنید.

گام دوم دانلود و نصب Eclipse:

خوشبختانه جون Eclipse از ماشین مجازی Java برای اجرا کمک می گیرد ، نیازی به نصب ندارد و فقط با دانلود فایل اجرایی و خارج کردن آن از حالت فشرده ، آماده راه اندازی است.

دقت داشته باشید که برای راه اندازی Eclipse دو راه وجود دارد ، اول این که Eclipse را دانلود کنید بعد پلاگین مربوط به زبان مورد نظر (برای زبان سی باید از پلاگین CDT استفاده کنیم) را دانلود و بر روی آن نصب کنید این امکان باعث می‌شود که شما قادر باشید از یک Eclipse به همراه تعداد دلخواه زبان برنامه نویسی داشته باشید.

راه ساده تر هم هست ، خوشبختانه پلاگین زبان های پرطرفدار از قبل بر روی Eclipse نصب شده و ورژن مخصوص آن زبان برای دانلود قرار گرفته است.

برای کوتاه تر شدن مسیر ، ما در این آموزش راه دوم را انتحاب می‌کنیم و ورژن مخصوص زبان C را دانلود می‌کنیم. برای دانلود به سایت Eclipse بروید. در صفحه باز شده بر روی ایکون C/C++ کلیک کنید – مطابق عکس زیر.

دانلود Eclispe

بعد از دانلود فایل دریافتی را از حالت فشره خارج کنید.

 

گام سوم نصب پلاگین توسعه ARM:

بعد از دانلود Eclipse برای این که بتوانیم به راحتی برنامه مورد نظر خود را تحت پلتفرم ARM بنویسیم نیاز است که پلاگینی تحت عنوان GNU ARM را بر روی آن نصب کنیم. با نصب این پلاگین Eclipse سمپل کد های نمونه و تمپلیت های اماده ای را به ویزارد ساخت پروژه اضافه می کند که کار ساخت و پیکیربندی پروژه را برای پردازنده های ARM آسان می کنید. ابتدا Eclipse را اجرا کنید و برای نصب مطابق مراحل زیر عمل کنید.

 

صفحه اولیه Eclipse

 

در این فورم محل ذخیره سازی WorkSpace را مشخص می کنیم ، در Eclipse علاوه بر مفهوم پروژه ، با مفهوم دیگری به اسم WorkSpace کار داریم. هر WorkSpace میتواند شامل یک یا چند پروژه باشد. در ابتدای باز شدن Eclipse ، مسیر ذخیره سازی WorkSpace را سوال می کنید.

 

 

خوب Eclipse با موفقیت اجرا شد، صفحه ای هم که مشاهده میکنید ، صفحه خوشامد گویی است. این صفحه علاوه بر معرفی Eclipse شامل راهنمایی برای استفاده از Eclipse است. برای نصب پلاگین از منوی Help زیر منوی Install New Software را انتخاب می‌کنیم.

در پنجره باز شده برای نصب ، بر روی کلید Add کلیک می‌کنیم.

در کادر محاوره ای باز شده ، درون قسمت Name مقدار GNU ARM را وارد می کنیم و در قسمت Location مقدار زیر را وارد کنید. بعد از آن بر روی کلید OK کلیک کنید.

بعد از آن Eclipse سعی می‌کنید که اطلاعات مربوط به پلاگین مورد نظر را بارگذاری کنید. تا پایان بارگذاری اطلاعات صبر کنید.

بعد از اتمام بارگذاری اطلاعات مربوط به پلاگین ، اطلاعات مربوط به آن مطابق عکس فوق به نمایش در می آید. پکیج های مورد نیاز را جهت نصب تیک بزنید و بر روی کلید Next کلیک کنید.

در پنجر بعدی ، پکیج هایی را که برای نصب انتخاب کرده اید را نمایش میدهد و در صورت صحیح بودن آنها می توانید بر روی کلید Next کلیک کنید یا با زدن Back آنها را اصلاح کنید.

در این مرحله باید شرایط استفاده از پلاگین را بپذیرید و بر روی کلید Next کلیک کنید.

در این مرحله باید منتظر بمانید تا کار نصب بعد از دانلود قیمت های مورد نیاز به اتمام برسد ، توجه داشته باشید بعد از دانلود قسمت های مربوط ، پنجره محاوره ای مطابق عکس زیر به نمایش در می‌آید که باید آن را تایید کنید.

بعد اتمام فرایند نصب پلاگین ، Eclipse با نمایش پیامی مبتنی بر راه اندازی مجدد ، فرایند نصب را خاتمه می دهد. با آن موافقت کنید.

نصب ابزار های لینوکسی:

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

آخرین ورژن را دانلود کنید.

بعد از دانلود ، مثل تمام نصاب های ویندوزی فقط باید بر کلید Next کلیک کنید و منتظر اتمام نصب باشید. تنها به یاد داشته باشید در حین نصب محل نصب برنامه را به خاطر داشته باشید چرا که باید آدرس آن را به Path سیستم اضافه کنیم.

برنامه در هنگام نصب مطابق عکس زیر ، محل نصب را مشخص می کند.

به صورت پیشفرص برنامه در آدرس زیر نصب می شود.

بعد از نصب ، برای این که Eclipse بتواند آن را فراخوانی کند باید آدرس محل نصب را Path سیستم اضافه کنیم ، برای این کار ابتدا بر روی My Computer راست کلیک (برای چپ دست ها ، چپ کلیک) کنید و گزینه Properties را انتخاب کنید.

در پنجره ظاهر شده بر روی گزینه Advanced system settings کلیک کنید، مطابق عکس زیر

بعد در پنجره باز شده بر روی کلید Environment Variables کلیک کنید.

در پنجره باز شده از کادر User variables for …. گزینه PATH را انتخاب کنید و بر روی کلید Edit کلیک نمایید.

در پنجره باز شده در قسمت Variable Value به انتهای رشته رفته و به انتهای آن یک سیمیکولن (;) اضافه کنید و بعد از آن آدرس محلی که فایل make.exe وجود دارد را اضافه می کنیم

معمولا این فایل در محل نصب و در پوشه bin است. که آدرس آن به شکل زیر خواهد بود

 

تمام پنجره هایی رو که باز کردید بر روی کلید OK کلیک کنید تا کار تمام بشه.

برای بررسی این که آیا به صورت صحیح Path رو وارد کردید ، کامند لاین رو باز کنید و درون آن دستور زیر را تایپ کنید

خروجی دستور فوق باید به شکل زیر باشه

و این یعنی این که کار نصب و کانفیک ابزار های مورد نیاز به خوبی انجام شده است و با خیال آسوده می توانیم به مرحله بعد برویم.

 

ایجاد اولین پروژه رزبری پای

بعد از کلی کلنجار رفتن با ویندوز و نصب برنامه های مختلف ، حالا دیگه وقتش رسیده که اولین پروژه رزبری پای را با استفاده از ویرایشگر Eclipse انجام بدیم. برنامه ای که میخوایم برای شروع پیاده سازی کنیم ، همون برنامه چشمک زن ساده است که از قسمت دوم این آموزش‌ها همراهمون بوده را میخوایم با استفاده از Eclipse برای برد رزبری پای 2 کامپایل کنیم.

برنامه که از قبل مشخصه :

اما برای اولین قدم باید یه پروژه بسازیم ، برای سخت پروژه مطابق عکس زیر عمل میکنیم ، در این مرحله قصد ساخت پروژه C رو داریم برای همین پروژه C رو انتخاب می‌کنیم

در پنجره بازه شده ابتدا نام پروژه را انتخاب میکنیم ، پروژه هر نامی می‌تواند داشته باشد ، فقط دقت کنید که نام پروژه نباید دارای فاصله (Space) باشد برای جدا کردن بخش ها از آندرلاین ( _ ) استفاده کتید. به عنوان مثال به جای Start Raspberry باید نوشت Start_Raspberry

در قسمت Project Type نوع پروژه ای که قصد دارید ایجاد کنید را انتخاب کنید ، بسته به پلاگین های نصب شده ، ممکن است انتخاب های زیادی وجود داشته باشد. مثلا پروژه های نمونه آماده برای خانواده STM32 در این مرحله قابل ملاحضه است. اما ما قصد داریم پروژه را برای Cortex-a7 ایجاد کنیم ، به همین دلیل کزینه Hello World ARM C Project را انتخاب میکنم

دقت داشته باشید که Toolchains گزینه Corss ARM GCC را انتحاب کنید. این قسمت بسته به انواع کامپایلر های نصب شده بر روی سیستم ممکن است دارای گزینه های دیگری هم باشد.

بعد از آن بر روی کلید Next کلیک کنید.

در مرحله بعد شما میتوانید نام خود را به عنوان نویسنده و یا ایجاد کننده پروژه وارد کنید ، این کار باعث میشود که هر وقت در پروژه فایل جدیدی را ایجاد کردید به صورت خودکار در بالای برگه اسم شما ذکر شود. البته این امکان اختیاری است.

ولی به خاطر داشته باشید که در قسمت Linker semi-hosting Options همه نوشته ها را پاک کنید. در این پروژه نیازی به آنها نیست. بر روی Next کلیک کنید.

فعلا کاری با قسمت بعد نداریم و بر روی Next کلیک کنید.

قسمت بعدی مرحله مهمی است ، دراین قسمت محل نصب کامپایلر را مشخص می‌کنیم،

با توجه به این مساله که Eclipse قادر به پشتیبانی طیف وسیعی از کامپایلر ها است ، باید مشخص کنیم که برای این پروژه از کدام کامپایلر استفاده کند و این که کامپایلر مورد نظر در چه پوشه ای واقع شده است. ما قصد داریم برنامه را برای رزبری پای بنویسیم پس باید از کامپایلر ARM استفاده کنیم. اگر کامپایلر رزبری پای را بر روی سیستم ندارید می توانید به بخش سوم آموزش رزبری پای مراجعه کنید.

گزینه اول را مطابق عکس زیر تنظیم کنید. در قسمت دوم ، باید محل قرارگیری فایل arm-none-eabi-gcc.exe را وارد کنیم. برای این کار می توانید بر روی Browse کلیک نمایید و پوشه مروبطه را انتخاب کنید.

و با فشردن Finish اولین پروژه را ایجاد کنید.

بعد از ایجاد پروژه با تصویری مطابق تصویر زیر مواجه می شوید که در سمت راست تصویر فایل های پروژه قابل مشاهده است و برای باز و ویرایش هر فایل کافی است بر روی آن کلیک کنید.

برای کامپایل کدهای نوشته میتوانید بر روی آیکن چکش کلیک کنید و یا از کلیدهای Ctrl+B استفاده کنید.

البته طبیعی است که با اجرای فرمان کامپایل پروژه کامپایل نشود و خطا دهد مطابق عکس زیر ، ابتدا برنامه مورد نظر را با برنامه پیشفرض ایجاد شده جایگزین کنید. بعد لازم است تنظیمات پروژه را به نحوی انجام دهیم که خروجی مناسب اجرا بر روی رزبری پای باشد.

برای انجام تنظیمات ابتدا پروژه را انتخاب میکنیم ، از منوی Project زیر منوی Properties را کلیک میکنیم تا وارد تنظیمات پروژه شویم.

در پنجره تنظیمات از منوی سمت چپ ، گزینه C/C++ Build را باز کرده و بر روی Settings کلیک می‌کنیم تا تنظمیات مربوط به نحوه کامپایل باز شود.

در بخش Target Processor ما قادریم که نوع پردازنده و معماری آن به همراه امکانت جانبی مثل واحد FPU را پیکربندی کنیم تا خروجی برنامه منطبق بر سخت افزار باشد. برای برد رزبری پای 2 تنظیمات این قسمت را مطابق عکس زیر انجام دهید.

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

 

مرحله بعد از تنظیمات Debugging است که مروبط به Debug برنامه می شود و از آنجایی که قصد خطایابی برنامه را نداریم این قسمت را در حالت پیشفرض خود قرار می دهیم. تنظیمات را مطابق عکس زیر تغییر دهید.

 

 

تنظمات بعدی مروبط به Linker هست ، این قسمت را هم مطابق عکس زیر تغییر دهید.

 

در این مرحله باید به کامپایلر خود بگوییم که خروجی برنامه در چه فرمتی تحویل شود ، از آنجایی که برنامه توسط بوت لودر در حافظه RAM قرار می گیرد باید خروجی برنامه به صورت Binary باشد.

و در اخر باید به کامپایلر بگوییم که چه فایلی را به عنوان خروجی نهایی ایجاد کنید. همانطور که از مقالات قبلی می دانید باید خروجی برنامه kernel.img باشد که بوت لودر قادر به بوت آن باشد.

برای این منظور مقدار زیر را در قسمت مشخص شده درون عکس قرار دهید.

 

بعد از انجام مراحل فوق تنظیمات لازم هم انجام شده و فقط کافی است که پروژه را کامپال کنید.

اگر بعد از کامپایل با تصویری مشابه تصویر فوق روبرو شدید، جا داره بهتون تبریک بگم چرا که شما موفق به کامپابل اولین برنامه رزبری پای شدید.

 

برای برداشتن فایل خروجی کافی است از پوشه Debug ایجاد شده درون پروژه ، فایل Kernel.img را انتخاب کنید و باز زدن کلید Ctrl+C آن را کپی کنید.

 

جمع بندی

بخش اول آموزش ها ، به پایان رسید ، در این مقالات سعی شد مفاهیم اولیه از سخت افزار رزبری پای و همچین روش های بوت و نحوه عملکرد سخت افزار رزبری پای توضیح داده شود.

در کنار آن به آماده سازی ابزار های لازم جهت کامپایل و ایجاد کد پرداختیم. در سری دوم آموزش ها به راه اندازی قسمت های مختلف سخت افزار از جمله GPIO و UART خواهیم پرداخت. و با نحوه ایجاد فایل های استارت آپ و استفاده از IRQ آشنا خواهیم شد.

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

نویسنده و طراح الکترونیکا هستم . سوالی داشتید در کامنت ها یا پیج های اینستاگرام و تلگرام سایت بپرسید .

نظرات (2)

احمد

سلام
یک برنامه برای رزبری پای می خواستم
که یک مانیتور HDMI رو هندل کنه و نمایش عکس از روی حافظه انجام بده و ارسال اطلاعات مختصات تاچ روی usart
البته نمایش عکس ها رو می خوام با فرمان از روی usart انتخاب کنم

می تونید کمک بفرمایید