بوت لودر چیست ؟
بوت لودر چیست ؟
احتمالا تا به حال با عبارت بوت لودر در میان روش هایی که میکروکنترلرها را با آن برنامه ریزی می کنند ، مواجه شده اید . بوت لودر روشی برای پروگرام کردن تراشه های میکروکنترلر است که توسط خود میکروکنترلر اقدام به برنامه ریزی خودش می شود . این روش از پروگرام کردن تراشه مخصوص آن دسته از میکروکنترلرها می باشد که قابلیت نوشتن در حافظهء برنامه خود را دارند .
در روش بوت لودر ، در ابتدا یک برنامه با حجم پائین در میکروکنترلر پروگرام می شود . وظیفهء این برنامه برقراری ارتباط با کامپیوتر و اجرای دستورات دریافتی از آن (خواند/نوشتن/پاک کردن و ..) می باشد . پس از اینکه برنامهء بوت لودر را بر روی میکروکنترلر پروگرام کردید ، پس از هر بار ریست شدن میکروکنترلر و یا قطع و وصل تغذیه ، ابتدا به برنامهء بوت لودر پرش می شود تا اگر ارتباط با کامپیوتر برقرار بود ، به اجرای دستورات دریافتی پرداخته شود و اگر ارتباط برقرار نبود ، به برنامهء اصلی میکروکنترلر پرش می شود (البته اگر قبلا برنامه اصلی هم پروگرام شده باشد ) .
در میان میکروکنترلرهای موجود AVR و PIC از این قابلیت پشتیبانی می کنند . در میان تراشه های خانوادهء PIC ، تراشه های زیر قابلیت پیاده سازی این روش را دارا هستند .
۱۶F870, 16F871, 16F873(A), 16F874(A), 16F876(A) and 16F877(A), 16F870, 16F871, 16F873(A), 16F874(A), 16F876(A), 16F877(A), 16F87, 16F88, 18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1220, 18F1320, 18F2220, 18F2320, 18F4220, 18F4320, 18F6620, 18F6720, 18F8620, 18F8720, 18F2331, 18F2431, 18F4331, 18F4431, 18F6585, 18F8585, 18F6680, 18F8680, 18F6627, 18F6722, 18F8627, 18F8722, 18F2525, 18F2620, 18F4525, 18F4620, 18F2455, 18F2550, 18F4455, 18F4550, 18F2420, 18F2520, 18F4420, 18F4520, 18F2439, 18F2539, 18F4439, 18F4539, 18F2480, 18F2580, 18F4480, 18F4580, 18F2585, 18F2680, 18F4585, 18F4680, 18F6520, 18F8520, 18F6525, 18F6621, 18F8525 and 18F8621.
حجم برنامهء بوت لودر که توسط نرم افزار PIC Basic Pro قابل به کار گیری است ، برای سری ۱۶ ۲۵۶ کلمه و برای سری ۱۸ برابر با ۳۳۶ کلمه است . در روشی که برای تراشه های PIC از آن کمک گرفته میشود ، استفاده از ماژول USART داخلی می باشد که توانایی ایجاد ارتباطات سریال با سرعت های بالا را دارد .
بزرگترین مزیت بوت لودر ، عدم نیاز به سخت افزار پروگرامر می باشد . به صورتی که تنها سخت افزار مورد نیاز ، مداری است که سطح ولتاژ پورتهای کامپیوتر را به سطح قابل اعمال به میکروکنترلر تبدیل کند .
در حال حاضر نرم افزارهای زیادی برای پیاده سازی این روش وجود دارند که با توجه به نوع میکروکنترلر و شرایط مداری می توان نوع مناسب آنرا انتخاب نمود .
یعنی میشه با کامپیوتر به طور Online برنامه را کنترل کرد و Debug کرد ؟
نه . ICD این کارو انجام میده که هنوز باهاش کار نکردم .
بوت لودر کاری که می کنه اینکه واسه پروگرام کردن دیگه نیازی به سخت افزار پروگرامر نیست و با وصل دو پایه به میکرو میشه اونو پروگرام کرد . البته بلافاصله بعد از پروگرام کردن میشه برنامه رو اجرا کرد ، اما این قابلیت رو نداره که برنامه رو خط به خط اجرا کنه و نتیجه رو نمایش بده .
در کل میشه گفت یه روش واسه راحتی عمل پروگرام کردن هست .
وقتی قصد دریافت و ثبت یک سری از اطلاعات رو از پورت داشته باشید ، نیازی به استفاده از بوت لودر نیست . بوت لودر در مورد پروگرام کردن کارایی داره . واسه این کار یا باید از ماژول usart داخلی pic استفاده کنید که می تونه ارتباطات سریال رو انجام بده و یا از دستورات نرم افزاری که هر کامپایلر داره . مثل serin تو pic basic pro .
سلام و خیلی ممنون از توضیحات کامل و روانی که دادید. من یه سوال داشتم. میشه با استفاده از بوت لودر یه سری دیتا از پورت بگیری و اونا رو به عنوان Constant توی برنامه ذخیره کنی؟ ممنون میشم جواب بدید.
سلام دوست عزیز.
از این روش معمولا فقط برای برنامه ریزی میکرو استفاده می کنند…
حالا منظورتون را از Constant درست متوجه نشدم…یعنی اینکه مقادیر ثابت پیش فرضی را برای اییپرام داخلی بفرستید؟
(اگر این مورد باشد چون شما تو برنامه اون مقدار را تعیین می کنید باید بشه این کار را کرد…)
موفق و پیروز باشید.
بله منظورم همون مقادیر ثابتی هست که تو برنامه میشه تعریف کرد. البته من بیشتر avr کار کردم. مثلا تو codevision با دستور const تعریف میشه.
امکان on board programing با استفاده از bootloader وجود داره؟؟؟؟
نه . ICD این کارو انجام میده که هنوز باهاش کار نکردم .
بوت لودر کاری که می کنه اینکه واسه پروگرام کردن دیگه نیازی به سخت افزار پروگرامر نیست و با وصل دو پایه به میکرو میشه اونو پروگرام کرد . البته بلافاصله بعد از پروگرام کردن میشه برنامه رو اجرا کرد ، اما این قابلیت رو نداره که برنامه رو خط به خط اجرا کنه و نتیجه رو نمایش بده .
در کل میشه گفت یه روش واسه راحتی عمل پروگرام کردن هست .