Elinux, توصیه شده, مقاله

امبدد لینوکس – قسمت هفتم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش سوم)

(فصل دوم – بخش سوم)

سلام بر همراهان. توی قسمت قبلی تولچین گنو یا همون GNU Toolchain رو بررسی کردیم، با اجزاش، انواع مختلفش و نوع نام گذاریش هم آشنا شدیم. توی این قسمت می خوایم رابطه بین تولچین و نوع پردازنده رو بررسی کنیم.

 

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

 

رابطه بین تولچین (Toolchain) و پردازنده

فکر کنم این‌که تولچین باید با توجه به ویژگی‌ها و توانایی‌های پردازنده تارگت ساخته بشه، بدیهی باشه.
حالا این ویژگی‌ها چی هست؟

  • معماری پردازنده: این‌که معماری پردازنده ARM هست یا MIPS یا x86_64 یا هرچیز دیگه‌ای

    نوع معماری پردازنده برای تولچین

 

  • جهت بریدن تخم مرغ آب پز پردازنده: اگه عمرتون به کارتون ماجراهای گالیور قد بده و یا رمان سفرهای گالیور رو خونده باشین، میدونین توی سرزمین لی‌لی‌پوت دو تا قوم بر سر این‌که تخم مرغ آب پز رو از کدوم طرف ببرن درگیر بودن همیشه! یه قوم می‌گفت باید از سر بزرگتر بریده شه که اسمشون Big Endian بود، یکی دیگه می‌گفت باید از سر کوچیکتر بریده شه که اسمشون Little Endian بود! حالا این‌که پردازنده ‌ما Little Endian باشه یا Big Endian توی ساختن تولچین مهمه، حتی پردازنده‌هایی که هر دو مود رو ساپورت می‌کنن باز هم این‌که واسه کدوم مورد بخوایم تولچین بسازیم مهمه.

رابطه پردازنده بیگ اندین و لیتل اندین برای تولچین

 

  • ممیز شناور: بعضی از پردازنده‌ها به صورت سخت‌افزاری ممیز شناور یا Floating point رو پشتیبانی می‌کنن، بعضی نه. این مورد هم مهمه تو ساختن تولچین.

ممیز شناور پردازنده

 

  • رابط باینری نرم‌افزار: اگه از اون دسته باشین که چند باری نزدیک اقیانوس شدین حتماً ABI یا EABI یا EABIH رو موقع دانلود کردن تولچین دیدین. خوب چی هستن؟
    اول که Application Binary Interface که بش ABI می‌گن رو با Application Programming Interface که بش API میگن اشتباه نگیرید.
    ABI یه رابط یا Interface هست بین دو تا ماژول برنامه باینری، که معمولاً یکی از این ماژول‌ها سیستم عامل یا یک کتابخونه هست و دیگری برنامه‌ای هست که توسط کاربر داره اجرا می‌شه، و ABI این تضمین رو به شما می‌ده که یه فایل باینری روی سیستم‌هایی با ABI سازگار با هم قابل اجرا باشه.
    API اصلاً کاری به کار باینری‌ها یا همون فایل‌های اجرایی نداره و تو حیطه سورس کد فعالیت داره.
    در حال حاضر و حتی خیلی قبل‌تر یعنی از سال 2000 ما یه EABI داریم که مخفف Extended Application Binary Interface هست که اگه ممیز شناور رو به صورت سخت افزاری ساپورت کنه (طبیعتاً پردازنده هم باید این قابلیت رو داشته باشه) بش میگن EABIHF که مخفف Extended Application Binary Interface Hard-Float هست.

رابط باینری نرم‌افزار تولچین

 

  • شرکت سازنده پردازنده: نه، این مهم نیست!
    البته بعضی شرکت‌ها با تغییراتی در تولچین گنو، این ابزار رو برای پردازنده‌های خودشون بهینه‌تر می‌کنن و طبیعتاً شاید نشه از تولچین اون‌ها واسه پردازنده‌های بقیه شرکت‌ها هرچند با معماری یکسان استفاده کرد. تو حالت کلی از پردازنده فقط همون چهارتا مهمه. (معماری پردازنده، جهت بریدن تخم مرغ آب پز پردازنده، ممیز شناور و رابط باینری نرم‌افزار)
    مثلاً از تولچین برد Raspberry Pi 3 Model B+ برای برد Orange Pi Zero Plus می‌تونید استفاده کنید. با وجود این‌که SoC برد اول ساخت بردکام و SoC برد دوم ساخت آلوینر هست. چهار ویژگی ذکر شده برای پردازنده هر دو برد یکی هست. واسه همین اگه به سایت ARM یا Linaro برید واسه دانلود تولچین متوجه می‌شید تولچین‌ها بر اساس معماری پردازنده هستن.

کارخانه سازنده تراشه

تا اینجا فهمیدیم تولچین چی هست و گنو تولچین چی هست و کراس تولچین یعنی چی، همین طور رابطه بین پردازنده و تولچین رو هم متوجه شدیم. ولی هنوز دو مورد دیگه مونده تا نام‌گذاری تولچین گنو رو بتونیم درک کنیم!

 

در ضمن طبق نظر سنجی انجام گرفته در کانال تلگرامی سیسوگ، نظر اکثریت برای انتخاب برد با 55 درصد Raspberry Pi 3 Model B+ هست و از طرف دیگه در غالب کامنت‌ها و تمام پیام‌های تلگرام! دوستان مایل به کار با برد Lichee Pi Nano هستند.

با توجه به اینکه هر دو برد طرفداران خاص خودشون را هم داشتند انشاله ما سعی میکنیم هر دو برد را در آموزشها مدنظر داشته باشیم.

پایان بخش سوم از فصل دوم

همه آموزش های امبدد لینوکس

Rich_Dad

درباره Rich_Dad

طراحی،بومی سازی، بهینه سازی و تولید سیستم هاومحصولات الکترونیکی وکنترلی،با توجه به تکنولوژی روز و نیاز تولیدکنندگان میهن عزیزمان ایران درحوزه های تجاری،صنعتی و تجهیزات پزشکی

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

8 دیدگاه در “امبدد لینوکس – قسمت هفتم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش سوم)

  1. نوید نوید گفت:

    سلام،
    لطفا زمان آموزش فصول بعدی را هم اطلاع رسانی کنید. امیدوارم هرچه سریعتر اتفاق بیفته.
    با تشکر

    1. Rich_Dad Rich_Dad گفت:

      سلام بر نوید عزیز
      تلاش ما بر این هست حداقل هفته ای یک بخش یا بیشتر منتشر نماییم
      و معمولاً بعضی فصل ها از پیش نوشته شده است
      منتهی مراتب ما در ابتدا قرار بود با یک سخت افزار کار کنیم
      ولی در حال حاضر تصمیم بر آن شد تا هر دو سخت افزار را تا حد امکان در برنامه خود قراردهیم
      از طرفی تحویل و مدیریت پروژه های در دست کار و جاری گاهی باعث تاخیر در ارسال و تدوین مطالب میگردد
      شما از این فرصت ها استفاده نموده و منابع آموزشی معرفی شده را مطالعه و تمرین های بیشتری انجام دهید
      تا مهارت لازم را کسب نمایید
      موفق باشید

  2. تسلا گفت:

    مرسی. بازهم مثل مقالات قبلی خیلی خوب و منسجم بود. امیدوارم با قدرت ادامه بدید.

  3. Sisoog Os Sisoog Os گفت:

    فقط میتونم بگم خسته نباشید 🙂

    1. Rich_Dad Rich_Dad گفت:

      سلام بر مدیر مدبر
      از حمایت های مجدانه شما کمال تشکر را داریم. 🌷

  4. مهدی عبدالهی مهدی گفت:

    سلام برادر خسته نباشید خیلی زحمت کشیدید ان شالله بزودی وارد کار با قسمت سخت افزار بشید بالاخص Lichee Pi Nano

    1. Rich_Dad Rich_Dad گفت:

      سلام بر مهدی
      خیلی ممنون، به زودی