در قسمت اول مقاله آموزش رزبری پای به معرفی مدلهای موجود زربری پای پرداختیم. در این مقاله به بررسی ساز و کار اجرای برنامه و بوت شدن بردهای رزبری پای خواهیم پرداخت. برای نوشتن برنامه درون هر سیستم قبل از هر اقدامی لازم است که آن سیستم را با توجه به جزئیات سخت فزاری بشناسید و با نحوه کارکرد آن آشنا باشید؛ برای آشنایی با ساز و کار رزبری پای با سیسوگ همراه باشید.
درون هسته رزبری پای چه میگذرد ؟
در کامپیوترهای تک برد و سیستم های embed سعی می شود تا حد ممکن مدار ساده و کوچک شود، برای این منظور ، بیشتر امکانات مورد نیاز درون یک چیپ طراحی میشود که باعث کوچکی و سادگی مدار نهایی سیستم میشود ، برد های رزبری پای نیز این قاعده جدا نیستند و پایه طراحی آنها بر همین اصول استوار است. در واقع شرکت BROADCOM با طراحی چیپ های خاص کمک بزرگی به پروژه رزبری کرده است. تمام محصولات رزبری بر پایه چیپ های این شرکت استوار است و تا کنون توانسته است موفقیت های بزرگی را در این عرصه ایجاد کند.
چیپهای مورد استفاده در محصولات رزبری پای داری دو هسته پردازشی متفاوت است. یکی از هسته های پردازشی کار پردازش تصاویر و ویدئو را بر عهده دارد در واقع این هسته را می توان یک نوع کارت گرافیک خواند که درون تراشه جاسازی شده. هسته پردازشی مذکور کار ایجاد تصاویر و دکدینگ و اندینگ فرمت های ویدئویی را بر عهده دارد. وجود این هسته باعث شده است که بتوان از بردهای رزبری پای به عنوان پخش کننده ویدئو یا سینمای خانگی استفاده کرد.
هسته دوم که در واقع هسته 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 موجود بر روی برد شروع خواهد کرد به چشمک زدن.
در مقاله بعد به پیکر بندی و نصب ابزار مورد نیاز برای کامپایل برنامه و همچنین اجرای اولین برنامه آموزشی بر روی برد های رزبری پای خواهیم پرداخت.
سلام من یک برد رزیری پای 4B با 2G رم داشتم که در اثر یک بی احتیاطی با ولتاژ ۱۲ ولت تغذیه ش کردم که دیود محافظش دود شد. دیودو با معادلش عوض کردم ولی الان ولتاژهای غیر از ۵V روی test pin اطراف چیپ تغذیه صفر مطلق شده. کسی می تونه راهنمایی کنه که چطور برد بیچاره رو زنده کنم؟
چون ولتاژ 5v دریافت می کنم احتمال دادم که چیپ تغذیه روی برد (MXL7704-P4 که با MXL7704-R3 معادله و من تهیه ش کردم) یا سوخته یا ریست شده و چون این چیپ از نوع قابل برنامه ریزی هست و با رابط I2C و SPI ارتباط برقرار می کنه پس باید با این دو رابط قابل برنامه ریزی باشه ولی خب من نمی دونم چطور؟؟؟ آیا باید چیپو دربیارم؟؟ یا معادلشو بیرون برنامه ریزی کنم بعد نصبش کنم؟؟ خلاصه کلی راهنمایی لازم دارم.
سلام دوست عزیز
فکر میکنم اگر این سوال رو در انجمن سیسوگ بپرسید دوستان بیشتری اونو می بینن
https://ask.sisoog.com/
سلام
ببخشید این فایل هایی که فرستادید برای رسپبری پای 1 و 2 کار میکنه . برای رسپبری پای 3 چی کار باید انجام بدیم؟
آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.
خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.
سلام
ممنون از سایت خوبتون. لینک دانلود کدها کار نمی کنند. لطفا بررسی کنید
سلام دوست عزیز. سپاس از نظر مثبتتون. لینکها تصحیح شد، دوباره دانلود بفرمائید.