امبدد لینوکس – قسمت چهاردهم – Bootloader

blog
۱۴۰۱-۰۲-۲۶
4 دقیقه

از قسمت قبل که در آن با انواع روش‌های بیلد کردن، کراس کامپایل و چالش‌های آن آشنا شدیم و حال قرار است با Bootloader آشنا شویم، زمان زیادی می‌گذرد امیدواریم عذرخواهی ما رو بابت این تأخیر و فاصله پیش‌آمده پذیرا باشید. در این مدت دوستان زیادی لطف کردند و با پیام‌های خودشان و پیگیری باعث دلگرمی شدند. امیدواریم در کنار هم باز این مقالات را ادامه بدهیم و باهم به آخرین مقاله فصل آخر برسیم.

فصل سوم: Bootloader، یار قدیمی

همه ما میدانیم (یا بدونید) خیلی از میکروکنترلرها مثل خانواده‌های STM32، بوت لودر Bootloader در ROM خودشان دارند. خیلی از ما هم ممکنه در پروژه‌های میکروکنترلری از بوت لودر (Bootloader) استفاده کرده باشیم. اما داستان در اینجا یکم متفاوت‌تر هست. اگر در پروژه‌های میکروکنترلری یه وقتایی خوب بود باشه واسه یه سری کارها مثل آپدیت کردن فریمور اینجا واجبه که باشه! چرا؟

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

برای مشاهده صفحه آموزش امبدد لینوکس  کلیک کنید.

 

چه میکنه این Bootloader

بوت لودر Bootloader دومین بخش از امبدد لینوکس ما میشه و کرنل سیستم‌عامل رو واسه ما لود میکنه. در حقیقت Bootloader دو تا وظیفه داره: راه‌اندازی اولیه سخت‌افزارها در حدی که بشه سیستم‌عامل رو اجرا کرد و بعدش اجرای سیستم‌عامل. بعد از روشن شدن پردازنده و یا ریست شدن آن سیستم ما خیلی منابع کمی داره هنوز نه رم خارجی راه‌اندازی شده، نه حافظه‌های خارجی مثل NAND فلش یا کارت حافظه و نه سایر سخت‌افزارها! درواقع فقط یک هسته از پردازنده هست و یک حافظه داخلی و ثابت همون پردازنده! به خاطر همین فرآیند بوت شدن شامل چند مرحله میشه که در هر مرحله منابع سخت‌افزاری جدیدی راه‌اندازی میشه و به سیستم اضافه میشه.

آخرین کار آماده سازی محیط لازم و اجرای کرنل هست.

 

توالی بوت

قدیما که همه‌چیز گل‌وبلبل بود (نبودا ولی همه میگن ما هم گفتیم فقط!) معمولاً از حافظه‌های NOR Flash استفاده می‌شد و این حافظه‌ها رو مستقیم مپ می‌کرد، فرآیند بوت خیلی ساده بود ولی با پردازنده‌ها و حافظه‌های الان فرآیند بوت چندمرحله‌ای شده و خیلی وابسته به SoC هست ولی معمولاً مراحلی می‌شه که در ادامه می‌گوییم.

 

مرحله یک: اجرای کد ROM

به نظرتون وقتی‌که پردازنده تازه روشن میشه یا بلافاصله بعد از ریست شدنش، چه کدی باید لود بشه و از کجا؟ دقت کنید هنوز نه رم خارجی داریم نه حافظه‌های خارجی راه‌اندازی شدن. اولین کد از حافظه فقط خواندنی خود SoC اجرا می‌شه که در زمان تولید در این حافظه ذخیره‌شده. از اونجایی که راه‌اندازی DRAM ها خیلی به مدل DRAM وابسته هست، راه‌اندازی این حافظه‌ها در کد ROM نیست و این کد فقط می‌تونه از SRAM استفاده کنه که نیازی به کنترلر نداره.

اگه مشخصات SoC ها رو دیده باشید همشون یه حافظه SRAM دارن با ظرفیت چند کیلو تا چند ده کیلوبایت. وجود این حافظه دقیقاً واسه همین هست. معمولاً کد ROM این توانایی رو داره که یک مقدار مشخص کد رو از یک محل مشخص در یک حافظه خارجی مشخص توی SRAM لود کنه و اگه این کد پیدا نشه معمولاً میتونه یک استریم رو از USB یا USART یا Ethernet بخونه. حالت آخر معمولاً برای نوشتن کد در حافظه‌های خارجی به هنگام تولید کاربرد داره.

به این مشخص‌ها دقت کنید، اطلاعات کشف کردنی نیستن! اطلاعات دیتاشیتی هستن و بسته به هر پردازنده یا شرکت تولیدکننده متفاوت هستن. مثلاً پردازنده‌های راک چیپ Rock Chip اول سکتور 0x40 کارت حافظه SD رو چک می‌کنند بعدش eMMC بعدش SPI Flash و آگه هیچ کدوم فایل idbloader.img رو نداشت میرن تو مؤدی که از طریق USB میشه حافظه‌های خارجی متصل به پردازنده رو پروگرام کرد.

یا پردازنده‌های سیتارا تگزاس TI Sitara اول سراغ NAND Flash میرن بعدش SPI Flash بعدش SD و درنهایت eMMC. معمولاً چون حجم SRAM خیلی کم هست کد ROM نمی‌تونه یک بوت لودر Bootloader کامل رو توش کپی کنه و یک لودر مقدماتی که بش Secondary Program Loader یا به‌اختصار SPL میگن رو لود میکنه توی SRAM و بقیه کارها رو میسپاره به اون.

 

Bootloader

SPL into SROM

مرحله دوم: SPL

SPL کنترلر حافظه رو راه‌اندازی میکنه و Tertiary Program Loader (TPL) رو توی حافظه SDRAM کپی می‌کنه و کار رو به اون می‌سپاره. SPL ممکنه اپشن سورس باشه و یا به‌صورت یه فایل باینری از طرف شرکت سازنده SoC بهتون داده بشه.

 

امبدد لینوکس – قسمت چهاردهم – Bootloader

مرحله سوم: TPL

آری رسد سیستم به‌جایی که بتواند یک Bootloader کامل را اجرا کند! این Bootloader کامل میتونه گزینه‌های بسیاری باشه ولی چیزی که مرسوم‌تر و پرکاربردتر هست U-Boot هست. این بوت لودرها Bootloader معمولاً یک خط فرمان Command Line ساده دارن که با آن‌ها یک سری کارها رو میشه انجام داد. عکس زیر نشون می‌ده که در مرحله سه چه اتفاق‌هایی می‌افته. معمولاً در پایان مرحله سه اثری از Bootloader نیست.

امبدد لینوکس – قسمت چهاردهم – Bootloader

از Bootloader تا کرنل

وقتی‌که Bootloader سیستم رو داره میسپاره دست کرنل یک سری اطلاعات رو به کرنل می‌ده، این اطلاعات میتونه چیزهای مختلفی مانند machine number یا kernel command line و … باشه. پردزانده‌های ARM که بیشتر موردبحث و استفاده ما هستند امروزه تمام اطلاعات رو در غالب Device Tree به کرنل تحویل می‌دن. با Device Tree در فصل بعد که به کرنل می‌پردازیم آشنا خواهید شد. به‌پایان این بخش رسیدیم در بخش بعدی با یوبوت U-Boot آشنا می‌شیم و اون رو برای بردهامون Compile می‌کنیم.

 

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

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

 

اطلاعات
8
0
لینک و اشتراک
profile

Rich_Dad (آنی روت)

متخصص الکترونیک

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

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
صاحبی گفت :
۱۴۰۱-۰۳-۰۳ ۱۵:۳۲

سلام، من الکترونیکی نیستم، اما با آموزش‌های شما بسیار به eLinxux علاقه‌مند شدم.
دوباره اموزش ها رو از اول مرور کردم 😉 سپاس از شما 🙂

profile
Rich_Dad IRANEMBEDDED گفت :
۱۴۰۱-۰۳-۰۳ ۲۰:۲۰

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

لطفاً میفرمایید در چه حوزه و گرایشی فعالیت دارید؟

profile
radikal گفت :
۱۴۰۱-۰۳-۰۱ ۲۱:۰۷

هییییییییییییییییییچی نمیفهمم

profile
Rich_Dad IRANEMBEDDED گفت :
۱۴۰۱-۰۳-۰۲ ۱۰:۵۱

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

profile
امیر گفت :
۱۴۰۱-۰۲-۲۶ ۲۳:۴۶

خیلی ممنون
خیلی وقت بود منتظر بودم
ان شاا… قسمت های بعدی رو زودتر ببینیم
??

profile
Rich_Dad IRANEMBEDDED گفت :
۱۴۰۱-۰۳-۰۲ ۱۰:۴۸

سلام امیر جان، ما هم خوشحال هستیم که توانستیم مطالب را مجدد ادامه بدیم
در این مدت اتفاق های زیادی افتاده و گذشته!
و تشکر می کنم از پیگیری مطالب از طف شما دوست عزیز❤️

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

پایداری و ارتقاء این اکو سیستم حتماً با حمایت های همه جانبه، جامعه الکترونیک کشور، پیشرفت بیشتری خواهد داشت.?

profile
Zeus ‌ گفت :
۱۴۰۱-۰۲-۲۷ ۱۰:۰۴

ما هم خیلی چشم به راه بودیم 🙂

profile
Rich_Dad IRANEMBEDDED گفت :
۱۴۰۱-۰۳-۰۲ ۱۰:۴۹

سلام، همه ما ارادت ویژه به شما داریم ?

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله