در قسمت اول مقاله آموزش رزبری پای به معرفی مدلهای موجود زربری پای پرداختیم. در این مقاله به بررسی ساز و کار اجرای برنامه و بوت شدن بردهای رزبری پای خواهیم پرداخت. برای نوشتن برنامه درون هر سیستم قبل از هر اقدامی لازم است که آن سیستم را با توجه به جزئیات سخت فزاری بشناسید و با نحوه کارکرد آن آشنا باشید؛ برای آشنایی با ساز و کار رزبری پای با سیسوگ همراه باشید.
درون هسته رزبری پای چه میگذرد ؟
BCM2836
در کامپیوترهای تک برد و سیستم های embed سعی می شود تا حد ممکن مدار ساده و کوچک شود، برای این منظور ، بیشتر امکانات مورد نیاز درون یک چیپ طراحی میشود که باعث کوچکی و سادگی مدار نهایی سیستم میشود ، برد های رزبری پای نیز این قاعده جدا نیستند و پایه طراحی آنها بر همین اصول استوار است. در واقع شرکت BROADCOM با طراحی چیپ های خاص کمک بزرگی به پروژه رزبری کرده است. تمام محصولات رزبری بر پایه چیپ های این شرکت استوار است و تا کنون توانسته است موفقیت های بزرگی را در این عرصه ایجاد کند. چیپهای مورد استفاده در محصولات رزبری پای داری دو هسته پردازشی متفاوت است. یکی از هسته های پردازشی کار پردازش تصاویر و ویدئو را بر عهده دارد در واقع این هسته را می توان یک نوع کارت گرافیک خواند که درون تراشه جاسازی شده. هسته پردازشی مذکور کار ایجاد تصاویر و دکدینگ و اندینگ فرمت های ویدئویی را بر عهده دارد. وجود این هسته باعث شده است که بتوان از بردهای رزبری پای به عنوان پخش کننده ویدئو یا سینمای خانگی استفاده کرد.
BCM2836 diagram
هسته دوم که در واقع هسته ARM می باشد و خود می تواند دارای چند هسته پردازشی دیگر باشد، به عنوان مثال برد های رزبری پای ورژن 2 به بعد دارای 4 هسته پردازشی هستند که کار پردازش برنامه را بر عهده دارد. ما در آموزش ها بیشتر با این هسته سر و کار داریم چرا که برنامه های نوشته شده را این هسته اجرا می کند و باید برنامه به نحوی نوشته شود که این هسته قادر به اجرای آن باشد. برای صرفه جویی در هزینه ها ، هر دو هسته به نحوی کنار هم قرار گرفته اند که قادر باشند از امکانات جانبی بهه صورت اشتراکی استفاده کنند این اشتراکات شامل حوزه وقفهها (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. بعد از آن فایل های مربوط به برد رزبری پای را از لینک زیر دانلود کرده و پس از خارج کردن از حالت فشرده درون کارت حافظه ذخیره کنید. فایل های مربوط به رزبری پای ورژن 1فایل های مروط به رزبری پای ورژن 2 3. بعد از آن کارت حافظه را درون برد رزبری قرار دهید و آن را روشن کنید ، ال ای دی ACT موجود بر روی برد شروع خواهد کرد به چشمک زدن. درمقاله بعد به پیکر بندی و نصب ابزار مورد نیاز برای کامپایل برنامه و همچنین اجرای اولین برنامه آموزشی بر روی برد های رزبری پای خواهیم پرداخت.
توی قسمت اول مقاله تونستیم یک پروژه آزمایشی رو با یه زبان سطح بالا روی برد رزبری پای راه اندازی کنیم. حالا قبل از اینکه حمله نهایی رو انجام بدیم درباره این فکر میکنیم که تا اینجا کاری که انجام دادیم چقدر اهمیت داشته. ک...
آموزش میکروکنترلر STM32F4 – قسمت هفتم ; در قسمت ششم آموزش میکروکنترلر STM32F4 به مبحث وقفهها پرداختیم. در این قسمت از آموزش میکروکنترلر STM32F4 به تنظیمات و بارگذار بوت و حافظه مستعار میپردازیم. با سیسوگ همراه باشید.  ...
تقلب Zeus: از اونجایی که این مطلب رو دوست عزیزی نوشتن که خوره دنیای کامپیوتر و نرمافزار هستند ؛ لازمه برای درک بهتر کاربردهای احتمالی در دنیای نرمافزار یه سری تقلب به دوستان الکترونیکی و سختافزاری برسونم شاید باعث بشه که ...
اجرای برنامه C در NanoPI مقالهای است که توسط یکی از دوستان سیسوگی (آقای علی فلاح) به عنوان تجربه شروع به کار فرستاده شده که سعی میشود بدون دخل و تصرف منتشر شود . با سیسوگ همراه باشید. اگر شما هم مقاله ای دارید که فک...
دستگاههایی که با صدا کنترل میشوند (مانند اکو آمازون (Amazon Echo)) محبوبیت زیادی دارند. شما میتوانید سیستمی مشابه اکو آمازون را با استفاده از Raspberry Pi و یک میکروفون USB ارزانقیمت بسازید. با سیسوگ همراه باشید.
در این مقاله قصد داریم روش نصب Windows 10 IoT بر روی رزبری را آموزش دهیم و برنامهای نوشته و روی آن تست کنیم. در این برنامه یک لامپ را خاموش و روشن میکنیم.
در مقالهی سوم آموزش رزبری پای، به پیکربندی و نصب ابزار مورد نیاز برای کامپایل برنامه و همچنین اجرای اولین برنامهی آموزشی بر روی بردهای رزبری پای پرداختیم. در این مقاله قصد داریم نحوهی نصب و کانفیگ ویرایشگر متن (ادیتور) ایکلیپس...
رزبری پای بله درست است؛ اشتباهی پیش نیامده. تلفظ صحیح Raspberry Pi رزبری پای است که متاسفانه به اشتباه در بیشتر وبهای فارسی رسپبری پای خوانده میشود. در واقع تلفظ رسپبری پای اشتباه است و نباید رسپبری خوانده شود. مطابق فونوتیک...
MQTT یک پروتکل ماشین به ماشین (M2M) برای اتصالات اینترنت اشیاء (IOT) است که به کمک سنسور، ارتباط برقرار میکند. معماری ساختار MQTT شامل یک سرور مرکزی یا واسطه است که به شکل توپولوژی ستارهای با یک یا چند دستگاه ارتباط برقرار میکند.
نسخه جدید Raspberry Pi به نام zero-W ، همراه با بلوتوث و WLAN فقط با قیمت ده یورو تقریباً پنج سال پیش بود (بیست و نهم فوریه در واقع) که از Raspberry Pi رونمایی شد. در اولین روز از جشن رونمایی تنها ...
سلام ببخشید این فایل هایی که فرستادید برای رسپبری پای 1 و 2 کار میکنه . برای رسپبری پای 3 چی کار باید انجام بدیم؟ آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.
خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.
سلام
ببخشید این فایل هایی که فرستادید برای رسپبری پای 1 و 2 کار میکنه . برای رسپبری پای 3 چی کار باید انجام بدیم؟
آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.
خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.
سلام
ممنون از سایت خوبتون. لینک دانلود کدها کار نمی کنند. لطفا بررسی کنید
سلام دوست عزیز. سپاس از نظر مثبتتون. لینکها تصحیح شد، دوباره دانلود بفرمائید.