پرش به محتوای اصلی
حل شده

بررسی چگونگی اجرای تابع Main توسط میکروکنترلر ARM

تصویر امین اله دهقانامین اله دهقانپرسیده شده ۱ سال پیش۵۸ بازدید۲ پاسخ
با سلام میکروکنترلر آرم از کجا می داند که ابتدا باید تابع main را اجرا کند؟

پاسخ منتخب

تصویر مهراد معینمهراد معیناستاد· ۱ سال پیش
پاسخ منتخب
سلام دوست عزیز، در واقع این کامپایلر هست که این رو میدونه. میکرو کنترلر فقط زبان ماشین و دستورات ماشین رو میفهمه. وقتی که شما به زبان C، C++ و یا به هر زبان دیگری در یک محیط نرم افزاری کد میزنید، وقتی که کامپایل انجام میشه، اون نرم افزار کامپایلر، کد های شما رو تبدیل میکنه به کدهای ماشین که از بالا به پایین اجرا میشن و خود کامپایلر کدهای تابع main رو بالای برنامه میذاره.
  • تصویر امین اله دهقانامین اله دهقان· ۱ سال پیش
    ممنون از پاسخگویی شما. آیا اسم رجیسترهایی که برای این کار اختصاص داده شده اند را می دانید؟ کامپایلر چه رجیسترهایی را از میکرو کنترلر تنظیم می کند؟ این سوال را میپرسم چون در یک مصاحبه کاری با یک شرکت خارجی این سوال از من شد. و من نمی دانستم و نمی دانم. با تشکر از شما
  • تصویر امین اله دهقانامین اله دهقان· ۱ سال پیش
    ممنونم از وقتی که برای جواب دادن گذاشتید. بسیار مفید بود.

پاسخ‌ها (۲)

  • تصویر مهراد معینمهراد معیناستاد· ۱ سال پیش
    میکروکنترلر به میکروکنترلر متفاوت هست ولی همه پروسسور ها یک فایل user manual خیلی مفصل دارن که تمام جزییات داخل اون ذکر شده. علاوه بر اون، کد ها داخل حافظه فلش ذخیره میشن و شما میتونید از این حافظه برای نگه داری داده های غیر از کد هم استفاده کنید. داخل تنظیمات کامپایلر، میتونید دقیقا مشخص کنید که کد از کدام شماره حافظه شروع میشه و تا کجا ادامه داره. در برخی موارد هم چیزی به اسم boot loader رو در ابتدای برنامه قرار میدن که کدی هست که قبل از اجرای برنامه اصلی اجرا میشه. به طور کلی این رجیستر ها خیلی مهم هستن: Reset Vector MSP (Main Stack Pointer) PC (Program Counter) LR (Link Register)

پاسخ شما

برای پاسخ دادن به این سوال وارد شوید.