سلام بر عزیزان، با فصل دوم در خدمت شما هستیم. در قسمت قبل، با اصطلاحاتی مثل SoC، SBC، SoM و CoM و راهنماییهای لازم برای انتخاب برد مناسب، برای کامپایل لینوکس امبدد آشنا شدید. در این قسمت با مجموعه ابزارهایی که همه چیز رو با اونها خواهیم ساخت آشنا میشیم که بشون میگیم Toolchain.
در قسمتهای قبلی آموزش، مسیر حرکت و فصلهای پیش رو، بسیاری از مفاهیم مورد نیاز و سؤالها و ابهامات شما در این دوره پاسخ داده شده است.
پس اگر اولین بار است که این آموزش را شروع میکنید، با توجه به سلسله مراتب پیش بینی شده برای آموزشها، بهتر است از جلسه اول شروع کنید! جلسه اول آموزش، ورود به دنیای امبدد لینوکس همه آموزشهای امبدد لینوکس
از اولش منظم باشیم که آخرش گم نشیم!
هممون این تجربه رو داریم که وقتی یه پروژه رو شروع میکنیم خیلی فایلها بعد ازیه مدت واسه اون پروژه روی هاردمون داریم.
داکیومنتهای مختلف مثل دیتاشیتها، اپلیکیشننوتها، نرمافزارها، نمونه کدهایی که دانلود شده، کدهایی که نوشته شده، فایلهای PCB و ….
خوب اینجا در بحث Embedded Linux حجم این فایلها خیلی بیشتر هست نسبت به یه پروژه میکروکنترلری، خیلی خیلی بیشتر! حجمی در حد چند گیگ خیلی طبیعی هست واسه یه پروژه و ممکنه تا چند ده یا چند صد گیگ هم بشه حجم فایلهاتون. پس بهتره یه ساختار داشته باشید که سردردگم نشید بعداً.
شاید یه ساختار از قبل داشته باشید و با همون راحت باشین، اینجا هم از همون استفاده کنید ولی حتماً واسه ذخیره سازی اطلاعاتتون، ساختار داشته باشید!
میتونید واسه هر پروژه یه فولدر جدا داشته باشید که توش همه چیز مربوط به اون پروژه هست میتونید هم واسه هر بخش Embedded Linux یه فولدر داشته باشید و توی اون فولدر واسه هر پروژه یه فولدر بسازید.
همه این فولدرها هرجای سیستمتون میتونه باشه.
من واسه خودم ترجیح دادم یه فولدر توی Home داشته باشم که کل پروژههای Embedded Linux توش هست و بعد واسه هر پروژه یه فولدر میسازم و توش فولدرهای زیر که توصیه کِریم هست رو میسازم:
هر فولدر از اسمش معلوم هست چی هست یا نه؟
نه، مشخص نیست دیگه !!
خوب توضیحات زیر رو از کتاب کِریم داشته باشید:
شاید بگید این همه فولدر بندی لازم نیست، شاید هم بگید wow! چقدر همه چی منظم و دسته بندی شده خواهد بود. آدمها متفاوتن دیگه. به هر حال توی این کار از Untitled و Untitled1 یا new folder استفاده نکنید چون این اندیس گذاری تون ممکنه برسه به 100 یا 1000 یا بیشتر!
اولین قسمت امبدد لینوکس یا نقطه شروع یه پروژه امبدد لینوکس میشه تولچین.
از تولچین برای کامپایل کردن همه چیز استفاده خواهیم کرد واسه همین این انتخاب اولیه خیلی مهمه.
بهتره تولچینی انتخاب بشه (یا ساخته بشه) که با سختافزار ما منطبقتر باشه و زبان ماشین ما رو بهتر بفهمه و استفاده کنه. طبیعتاً باید بتونه زبانی که ما میخوایم باش برنامه بنویسیم رو بفهمه و بتونه کامپایل کنه و خوب این تولچین باید تا آخر پروژه ثابت باشه، واجب نیست صد درصدا ولی خوب واجبه!
من خیلی فکر کردم که بتونم بگم شبیه چی هست، بهترین مثالی که به ذهنم رسید اینه، امیدوارم خوب بفهمید:
فرض کنید میخوایم یه برج بسازیم، اون زمینی که انتخاب میکنیم روش برجمون رو بسازیم میشه پردازنده و اون پیمانکاری که برجمون رو میدیم بهش بسازه میشه تولچین!
حالا این تولچین (Toolchain) چی هست؟ اگه یکم سرچ کنیم به چنین جوابی میرسیم:
مجموعهای از ابزارهای نرمافزاری که برای ساختن (بیلد کردن) یه نرمافزار کامپیوتری لازم هست. به زبون خودمونی، اون نرمافزارهایی که باهاشون کدهامون رو تبدیل به فایل قابل اجرا روی پردازنده میکنیم.
اولین سؤال اینکه که چرا مجموعهای از ابزارها، چرا نمیشه با یه نرمافزار مثل کیل همه این کارها رو کرد؟
خوب کیل هم خودش مجموعهای از ابزارهاست! خوب حالا این مجموعه شامل چیا میشه؟ به درد چی میخوره؟
به طور سنتی، شامل لینکر، اسمبلر، آرشیور، کامپایلر (C و شاید سایر زبانها) و کتابخانه و هدرهای (سرآیندهای) زبان C میشه. البته که ممکنه یه سری ابزارهای دیگه هم باشن یا نباشن. به طور معمول تولچین واسه لینوکس بر پایه یه سری کامپوننتها از پروژه گنو هست، البته جدیداً کامپایلری به اسم Clang و پروژه LLVM هم به دنیا اومدن که ما کاری به کارشون نداریم. طبیعتاً مثل هرچیز دیگهای مزایا و معایب خودش رو داره، فقط بدونید علاوه بر تفاوتهای فنی از نظر لایسنس گنو، GPL هست و LLVM، BSD هست.
ما از اینجا به بعد به بررسی تولچین گنو یا همون GNU Toolchain میپردازیم که اگه اسم GCC به گوشتون خورده باشه و ازش استفاده کرده باشین یعنی مشتریش بودین.
پایان بخش اول از فصل دوم.
بخش بعدی رو از اینجا میتونید مطالعه کنید، اما بهتره قبلش یه سری هم به نظرات این پایین بندازید، نظرات رو بخونید و اگر شما هم نظری دارید، مشارکت کنید!
انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ بلامانع است.
شما نیز میتوانید یکی از نویسندگان سیسوگ باشید. همکاری با سیسوگ
Rich_Dad IRANEMBEDDED
طراحی، بهینه سازی و تولید محصولات الکترونیکی، درحوزه های تجاری،صنعتی و تجهیزات پزشکی، مجری سیستم های امبدد لینوکس *
(فروش قطعات الکترونیک https://aniroot.com)
ممنونم از لطف و زحمات بی دریغتون.
واقعا با توجه به گستردگی مباحث لینوکس به یک راهنمای مناسب از جانب اشخاصی که الکترونیک کار هستن نه کامپیوتری نیاز بوده.خواهش می کنم آموزش رو متوقف نکنید و همواره تجارب شخصی و عملی کار با لینوکس رو به همراه لینک های آموزشی قرار بدید.
انشالله این بخش به یک مرجع آموزشی خوب امبدد لینوکس برای همه تبدیل بشود.
سلام بر یحیی عزیز
از حسن توجه شما به مقاله های امبدد لینوکس کمال تشکر را دارم
امیدوارم بتوانیم ارائه ای درخور داشته باشیم که باعث پیشرفت و ارتباط پایدار مابین افراد با مهارت و توانمند و صنعت کشور عزیزمان ” ایران ” گردد.
موفق باشید
سلام بر مهدی
ممنون از شما، یک نظر سنجی جدید پیرامون موضوع انتخاب سخت افزار در تلگرام گذاشتیم https://t.me/sisoog/993
به نظر میاد Raspberry Pi 3 Model B را عده ای داشته باشند و البته بقیه دوستان هم باهاش آشنا تر هستند
و از طرفی LicheePi Nano قیمت بسیار پایین تری داره (حدود یک هشتم!) و همراهان جدید با هزینه بسیار کمتری میتوانند آنرا تهیه و به ما بپیوندند.
یکی از موارد مهم در این بخش کار اینست که آموزش ها اساساً بر بستر معماری SoC انخاب شده می باشد و امکانات جانبی روی برد تاثیر عمیقی بر اصل آموزش ندارد، یعنی استفاده از LicheePi Nano از لحاظ قیمت به صرفه تر است و استفاده از Raspberry Pi 3 Model B به نظر عزیزان شاید سهل تر می آید، که البته هیچ اختلافی در زمینه سهل تر بودن یا نبودن با هم ندارند و روال کسب مهارت یکسان است.
سلام مهندس.
رزبری پای که هیچ ولی اگه لیچی پای انتخاب بشه، تقریبا فروشگاهی برای خرید پیدا نکردم.
برای اینکه از کجا تهیه بشه فکری دارید؟مثلا اگه مدیران سیسوگ بتونن وارد کنن خیلی عالی میشه.
باتشکر
ببینید مهندس رزبری پای را قبلا خیلی ها اموزش دادن ما الان گیر این ای سی هستیم که با قیمت ارزانش میشه خیلی بردهای جالب مثل همون ایفون تصویری که شما دنبالش بودید را ساخت در ضمن رزبری الان خیلی گران هم شده
سلام وقت بخیر.
توی نظرات بخش قبل گفته بودین که “در حال بررسی و آماده سازی مطلب پیرامون انتخاب سخت افزار هستیم”. میخواستم بدونم اون بخش همچنان در دست اقدامه یا دیگه نخواهیم داشت؟ چون منتظر بودم نظرات شما رو بشنوم و بعد اقدام به خریداری کنم.
با تشکر.
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
ممنونم از لطف و زحمات بی دریغتون.
واقعا با توجه به گستردگی مباحث لینوکس به یک راهنمای مناسب از جانب اشخاصی که الکترونیک کار هستن نه کامپیوتری نیاز بوده.خواهش می کنم آموزش رو متوقف نکنید و همواره تجارب شخصی و عملی کار با لینوکس رو به همراه لینک های آموزشی قرار بدید.
انشالله این بخش به یک مرجع آموزشی خوب امبدد لینوکس برای همه تبدیل بشود.
سلام بر یحیی عزیز
از حسن توجه شما به مقاله های امبدد لینوکس کمال تشکر را دارم
امیدوارم بتوانیم ارائه ای درخور داشته باشیم که باعث پیشرفت و ارتباط پایدار مابین افراد با مهارت و توانمند و صنعت کشور عزیزمان ” ایران ” گردد.
موفق باشید
سلام. خدا قوت. از سری آموزش هاتون خیلی لذت برده و استفاده می کنم. مفاهیم بسیار پیچیده را خیلی روان و قابل فهم بیان می کنید.
سلام علی آقا
خیلی ممنون از اینکه مطالب را با دقت پیگیری می کنید
موفق باشید
سلام خسته نباشید مهندس بنظر من برای سخت افزار همون برد لایچی نانو ازهمه بهتره چون همه میتونن تهیه کنن و ارزان هم هست
سلام بر مهدی
ممنون از شما، یک نظر سنجی جدید پیرامون موضوع انتخاب سخت افزار در تلگرام گذاشتیم
https://t.me/sisoog/993
به نظر میاد Raspberry Pi 3 Model B را عده ای داشته باشند و البته بقیه دوستان هم باهاش آشنا تر هستند
و از طرفی LicheePi Nano قیمت بسیار پایین تری داره (حدود یک هشتم!) و همراهان جدید با هزینه بسیار کمتری میتوانند آنرا تهیه و به ما بپیوندند.
یکی از موارد مهم در این بخش کار اینست که آموزش ها اساساً بر بستر معماری SoC انخاب شده می باشد و امکانات جانبی روی برد تاثیر عمیقی بر اصل آموزش ندارد، یعنی استفاده از LicheePi Nano از لحاظ قیمت به صرفه تر است و استفاده از Raspberry Pi 3 Model B به نظر عزیزان شاید سهل تر می آید، که البته هیچ اختلافی در زمینه سهل تر بودن یا نبودن با هم ندارند و روال کسب مهارت یکسان است.
با تشکر
موفق باشید
سلام مهندس.
رزبری پای که هیچ ولی اگه لیچی پای انتخاب بشه، تقریبا فروشگاهی برای خرید پیدا نکردم.
برای اینکه از کجا تهیه بشه فکری دارید؟مثلا اگه مدیران سیسوگ بتونن وارد کنن خیلی عالی میشه.
باتشکر
با سلام.
برای خرید LicheePi-Nano F1C100s میتونید از این فروشگاه تهییه کنید.
https://skytech.ir/product_details.aspx?ID_Parts=633&LicheePi-Nano
صرفا جهت اطلاع رسانی نه تبلیغ!
ببینید مهندس رزبری پای را قبلا خیلی ها اموزش دادن ما الان گیر این ای سی هستیم که با قیمت ارزانش میشه خیلی بردهای جالب مثل همون ایفون تصویری که شما دنبالش بودید را ساخت در ضمن رزبری الان خیلی گران هم شده
مثل همیشه عالی.👌
من همراه این آموزش بینظیر هستم
سلام، ممنون از همراهی تان
سپاس .
استفاده بردم.
سلام
موفق باشید
سلام وقت بخیر.
توی نظرات بخش قبل گفته بودین که “در حال بررسی و آماده سازی مطلب پیرامون انتخاب سخت افزار هستیم”. میخواستم بدونم اون بخش همچنان در دست اقدامه یا دیگه نخواهیم داشت؟ چون منتظر بودم نظرات شما رو بشنوم و بعد اقدام به خریداری کنم.
با تشکر.
سلام بر آرمین عزیز
بله با توجه به نظر دوستان در حال جمع بندی هستیم و به زودی اطلاع رسانی هایی انجام خواهد شد
با ما باشید