در قسمت اول مقاله آموزش رزبری پای به معرفی مدلهای موجود زربری پای پرداختیم. در این مقاله به بررسی ساز و کار اجرای برنامه و بوت شدن بردهای رزبری پای خواهیم پرداخت. برای نوشتن برنامه درون هر سیستم قبل از هر اقدامی لازم است که آن سیستم را با توجه به جزئیات سخت فزاری بشناسید و با نحوه کارکرد آن آشنا باشید؛ برای آشنایی با ساز و کار رزبری پای با سیسوگ همراه باشید.
درون هسته رزبری پای چه میگذرد ؟
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 چی کار باید انجام بدیم؟
آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.
خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
سلام
ببخشید این فایل هایی که فرستادید برای رسپبری پای 1 و 2 کار میکنه . برای رسپبری پای 3 چی کار باید انجام بدیم؟
آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.
خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.
سلام
ممنون از سایت خوبتون. لینک دانلود کدها کار نمی کنند. لطفا بررسی کنید
سلام دوست عزیز. سپاس از نظر مثبتتون. لینکها تصحیح شد، دوباره دانلود بفرمائید.
[…] پیاده سازی کنیم ، همون برنامه چشمک زن ساده است که از قسمت دوم این آموزشها همراهمون بوده را میخوایم با استفاده از Eclipse برای برد […]
[…] مقاله بعد به بررسی روال های بوت و همچنین اجرای اولین برنامه […]