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

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

امبدد لینوکس – قسمت هفتم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش سوم)
امبدد لینوکس – قسمت هفتم – 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 هستند.

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

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

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

بهتره قبل از رفتن به سراغ قسمت بعدی، یه سری هم به نظرات این پایین بندازید، نظرات رو بخونید و اگر شما هم نظری دارید، مشارکت کنید!

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

حمایت از Rich_Dad IRANEMBEDDED

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

0 نفر

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

توجه

Rich_Dad IRANEMBEDDED
Rich_Dad IRANEMBEDDED

طراحی، بهینه سازی و تولید محصولات الکترونیکی، درحوزه های تجاری،صنعتی و تجهیزات پزشکی، مجری سیستم های امبدد لینوکس * (فروش قطعات الکترونیک https://aniroot.com)

دیدگاه ها

12 دیدگاه

  • صاحبی
    ۱۹ خرداد ۱۴۰۰

    با سلام
    بسیار عالی آموزش می‌دهید، سپاس از شما.

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۱ خرداد ۱۴۰۰

      سلام و عرض ادب جناب صاحبی
      تشکر می کنم که با دقت مقاله ها را دنبال می کنید

  • داود
    ۱۳ آذر ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۹ دی ۱۳۹۹

      سلام داود جان
      خوشحالم که مطالب را با دقت مطالعه و بررسی می کنید
      ما همه تلاشمان را انجام می دهیم تا در کنار دیگر عزیزان به یک نتیجه خوب برسیم
      سربلند باشید

  • نوید
    نوید
    ۳۱ مرداد ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۵ شهریور ۱۳۹۹

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

  • تسلا
    ۲۴ مرداد ۱۳۹۹

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

  • Sisoog Os
    Sisoog Os
    ۲۴ مرداد ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۸ مرداد ۱۳۹۹

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

  • مهدی
    ۲۲ مرداد ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۸ مرداد ۱۳۹۹

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

پر بحث ترین ها

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

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