در قسمت اول مقاله آموزش رزبری پای به معرفی مدلهای موجود زربری پای پرداختیم. در این مقاله به بررسی سازوکار اجرای برنامه و بوتشدن بردهای رزبری پای خواهیم پرداخت.
درون هسته رزبری پای چه میگذرد ؟
در کامپیوترهای تک برد و سیستمهای embed سعی میشود تا حد ممکن مدار سادهو کوچک شود، برای اینمنظور، بیشتر امکانات موردنیاز درون یک چیپ طراحی میشود که باعث کوچکیو سادگی مدارنهایی سیستم میشود، بردهای رزبری پای نیز این قاعده جدا نیستند و پایه طراحی آنها بر همین اصول استوار است. درواقع شرکت BROADCOM با طراحی چیپهای خاص کمک بزرگی به پروژه رزبری کردهاست. تمام محصولات رزبری برپایهی چیپهای این شرکت استوار است و تاکنون توانسته است موفقیتهای بزرگی را در این عرصه ایجاد کند. چیپهای مورداستفاده در محصولات رزبری پای دارای ۲ هسته پردازشی متفاوت است. یکی از هستههای پردازشی کار پردازشتصاویر و ویدئو را برعهده دارد درواقع این هسته را میتوان یک نوع کارت گرافیک خواند که درون تراشه جاسازی شدهاست. هسته پردازشی مذکور کار ایجاد تصاویر و دکدینگ و اندینگ فرمتهای ویدئویی را برعهده دارد. وجود این هسته باعث شدهاست که بتوان از بردهای رزبری پای به عنوان پخشکننده ویدئو یا سینمای خانگی استفاده کرد.
هسته دوم که در واقع هسته ARM می باشد و خود میتواند دارای چند هسته پردازشی دیگر باشد، بهعنوان مثال بردهای رزبری پای ورژن ۲ به بعد دارای ۴ هسته پردازشی هستند که کار پردازش برنامه را برعهده دارد. ما در آموزشها بیشتر بااین هسته سروکار داریم چرا که برنامههای نوشتهشده را این هسته اجرا میکند و باید برنامه بهنحوی نوشته شود که این هسته قادربهاجرای آن باشد. برای صرفهجویی در هزینهها، هردو هسته بهنحوی کنارهم قرار گرفتهاند که قادر باشند از امکانات جانبی بهصورت اشتراکی استفاده کنند این اشتراکات شامل حوزه وقفهها (interrupt) نیز میشود. برای جلوگیری از به وجودآمدن اخلال در سیستمو حالات پیشبینی نشده باید در استفادهاز ریسورسها و وقفهها دقت لازم را به عمل آورد.
وقتی که رزبری پای روشن میشود چه اتفاقاتی میافتد؟
مهمترین مساله برای اجرای یک برنامه برروی هر پردازندهای آشنایی با روالهای بوت و روشنشدن است تنها بادرک این مفاهیم است که میتوانیم برنامه خود را در جای صحیح برای اجرا قراردهیم یا تنظیمات را به گونهای انجام دهیم که برنامه موردنظر ما اجرا شود. در رزبری پای روال مربوط به بوتشدن و بالا آمدین سیستم مقداری پیچیدهتر از میکروکنترلرهاست. البته این پیچیدگی بهدلیل ساختار داخلی پردازنده است و اجنتابناپذیر است.
وقتی که برد رزبری پای روشن یا ریست میشود ، GPU ابتدا توسط ROM داخلی که بهوسیله شرکت نوشته شدهاست بهدنبال اولین پارتیشن بوت(MBR) درون کارت حافظه (SD) میگردد. بعداز شناسایی پارتیشن فایل bootcode.bin درون حافظه RAM لود میشود و اجرای برنامه به RAM منتقل میشود. پس درواقع فایل bootcode.bin به نوعی بوت لودر محسوب میشود که توسط کاربر قابل تغییر است. درحالت عادی و فایل پیشفرض bootcode.bin بعداز اجرا به دنبال فایلهای start.elf و config.txt میگردد که درواقع کار پیش تنظیم سختافزار از جمله تنظیمات مربوط به GPU و دیگر بخشهای سختافزار را جهت لود کرنل اصلی برعهده دارد. بعداز انجام تنظیمات و پیکربندی سختافزار، فایل kernel.img درون آدرس 0x8000 بارگذاری میشود و اجرای برنامه به این آدرس از حافظه انتقال مییابد. درواقع آخرین حلقه بوت مربوطبه بارگذاری کرنل میشود که پس از آن کنترل برنامه در اختیار کاربر قرار میگیرد.
از کجا شروع کنیم؟
قبلاز معرفی کامپایلر و آموزش نحوه کامپایل و تنظیمات موردنیاز، برای روشنشدن هرچه بیشتر روال کار، از قبل یک برنامهی چشمکزن ساده را با توجه به الگوهای مورد نیاز آماده کردهایم که فایلهای موردنیاز را میتوانید از لینکهای زیر دانلود کنید و با قراردادن آنها درون کارت حافظه شاهد عملکرد برنامه باشید:
1. ابتدا کارتحافظه را فرمت کنید – دقتکنید که نوع فایل سیستم را Fat32 انتخاب کنید و اسم درایو را Boot بگذارید مطابق عکس زیر:
2. بعداز آن فایلهای مربوط به برد رزبری پای را از انتهای مطلب زیر دانلود کرده و پساز خارجکردن از حالت فشرده درون کارت حافظه ذخیره کنید.
3. بعد از آن کارتحافظه را درون برد رزبری قرار دهید و آن را روشن کنید ، الایدی ACT موجود برروی برد شروع خواهد کرد به چشمک زدن.
درمقالهی بعد به پیکربندی و نصب ابزار موردنیاز برای کامپایل برنامه و همچنین اجرای اولین برنامهی آموزشی برروی بردهای رزبری پای خواهیم پرداخت.
فایلهای موردنیاز برای دانلود:
منبع: سیسوگ
[…] مقاله دوم آموزش رزبری پای، بهمعرفی ساختار CPU نحوه اجرای برنامه […]
[…] پیادهسازی کنیم، همون برنامه چشمکزن ساده است که از قسمت دوم این آموزشها همراهمون بوده را میخوایم بااستفادهاز […]