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

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

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

در قسمت اول مقاله آموزش رزبری پای به معرفی مدل‌های موجود زربری پای پرداختیم. در این مقاله به بررسی ساز و کار اجرای برنامه و بوت شدن بردهای رزبری پای خواهیم پرداخت. برای نوشتن برنامه درون هر سیستم قبل از هر اقدامی لازم است که آن سیستم را با توجه به جزئیات سخت فزاری بشناسید و با نحوه کارکرد آن آشنا باشید؛ برای آشنایی با ساز و کار رزبری پای با سیسوگ همراه باشید.

 

درون هسته رزبری پای چه می‌گذرد ؟

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 موجود بر روی برد شروع خواهد کرد به چشمک زدن.

 

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

حمایت از Zeus ‌

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

1 نفر

پــــســنــدیـده انـد

توجه

Zeus ‌
Zeus ‌

زئوس هستم ساکن المپ

دیدگاه ها

6 دیدگاه

  • mahdi
    ۸ شهریور ۱۳۹۹

    سلام
    ببخشید این فایل هایی که فرستادید برای رسپبری پای 1 و 2 کار میکنه . برای رسپبری پای 3 چی کار باید انجام بدیم؟
    آخه من فایل های بالا رو برای رسپبری پای 3 امتحان کردم کار نکرد. برد رسپبری پای 3 ، BCM2837 است.

    • Zeus ‌
      زئوس Zeus
      ۱۱ شهریور ۱۳۹۹

      خیر منطقا هم نباید کار کند چون در برنامه ای که نوشته شده سیستم عامل هیچ دخالتی ندارد و برنامه ها مستقیم با cpu درگیر هستند برای همین عوض شدن cpu باعث میشه که همه چی از کار بیفته و باید برنامه برای پردازنده جدید همخوان شوند و مجددا کامپایل شوند.

  • مدرسی
    ۹ مهر ۱۳۹۸

    سلام
    ممنون از سایت خوبتون. لینک دانلود کدها کار نمی کنند. لطفا بررسی کنید

    • Phoenix
      ۹ مهر ۱۳۹۸

      سلام دوست عزیز. سپاس از نظر مثبتتون. لینک‌ها تصحیح شد، دوباره دانلود بفرمائید.

  • آموزش برنامه‌نویسی با رزبری پای بدون سیستم‌عامل – قسمت چهارم - سیسوگ - Sisoog
    ۱ شهریور ۱۳۹۸

    […] پیاده سازی کنیم ، همون برنامه چشمک زن ساده است که از قسمت دوم این آموزش‌ها همراهمون بوده را میخوایم با استفاده از Eclipse برای برد […]

  • آموزش برنامه نویسی با رزبری پای بدون سیستم عامل- قسمت اول - سیسوگ - Sisoog
    ۱ شهریور ۱۳۹۸

    […] مقاله بعد به بررسی روال های بوت و همچنین اجرای اولین برنامه […]

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 9 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

Zeus ‌ Zeus ‌
  • 1 سال پیش

درآمد زایی به سبک پینوکیو

ما مهندسین, بخصوص مهندسین برق و الکترونیک … علاقه خاصی به طراحی و ساختن داریم علاقه زیادی به تکنولوژی , بخصوص از...

Sisoog Os Sisoog Os
  • 3 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک