آموزش نحوه دیباگ کردن ARM در Eclipse

آموزش نحوه دیباگ کردن ARM در Eclipse
یکی از مهمترین امکاناتی که هر برنامه نویس برای پیدا کردن مشکل پروژه اش نیاز داره، وجود دیباگر هست. J-link Ulink , ST-Link و … جزء محبوب ترین پروگرامرهایی هستند که به منظور پروگرام کردن و دیباگ کردن میکروکنترلرهای ARM مورد استفاده قرار می گیرند. البته از این بین ST-LINK برای میکروهای شرکت ST کاربرد دارد و مابقی همه منظوره هستند. در این مقاله به آموزش نحوه دیباگ کردن ARM در Eclipse می پردازیم و برای این منظور از J-LINK استفاده می کنیم. به این ترتیب امکاناتی را که الکیپس (Eclipse) جهت دیباگ پروژه به برنامه نویس می دهد بررسی می کنیم و با آن ها آشنا می شویم.
آماده سازی یک پروژه جهت دیباگ
برای شروع دیباگ نیاز به یک پروژه آماده داریم. برای اینکه امکان تست کردن و دیباگ یک پروژه در حین خواندن این مقاله برای شما کاربر گرامی فراهم باشه، اگر از میکروکنترلر LPC1768 استفاده می کنید، قبلا یک مقاله برای آماده سازی یک پروژه آماده کرده ایم. اینجا کلیک کنید که به صفحه ی مقاله ی ” آموزش شروع کار با Eclipse برای lpc1768 ” هدایت شوید.
نحوه دیباگ (Debug) کردن پروژه در محیط Eclipse
تنظیمات ابزار دیباگر. مطابق تصویر ذیل از پروژه ای که باز است، وارد محیط تنظیمات دیباگر می شویم.

ایجاد تنظیمات جدید برای J-link . از پنجره باز شده، از ستون سمت چپ بر روی گزینه ی GDB SEGGER J-Link Debugging کلیک راست کرده و گزینه ی New را مطابق تصویر انتخاب می کنیم.

کنترل فیلدها. از محیط جدید باز شده در سمت راست، مطابق تصویر نام پروژه را در فیلید Project و مسیر فایل با پسوند elf را در فیلد C/C++ Application کنترل کنید. برای مثال در این تصویر نام پروژه lpc1768_blink و مسیر فایل elf برابر با Debug/lpc1768_blink بوده. در صورت نیاز این فیلدها را اصلاح و یا مطابق توضیحات پر کنید.

تنظیمات بخش Debugger . حال بخش Debugger را که مطابق تصویر در tab کناری وجود دارد را انتخاب کنید، مقابل فیلد Device name نام میکروکنترلر مورد استفاده در پروژه را بنویسید. سایر چک باکس ها را نیز کنترل کنید که مطابق تصویر باشد. از اسکرول بار در این منو استفاده کنید و به انتهای بخش Debugger مراجعه کنید، مطمئن شوید که گزینه ی Force thread list update on suspend تیک خورده باشد.


تنظیمات بخش Startup . به tab کناری با نام StartUp می رویم و تنظیمات این بخش را مطابق تصویر ذیل انجام می دهیم. در بخش CPU freq مقدار فرکانس کاری پردازنده را وارد می کنیم. برای مثال در تصویر ذیل مقدار 100MHz برای این منظور در نظر گرفته شده است، که به این مفهوم است که پردازنده با این فرکانس در حال کار کردن است. فیلد SWO freq در صورتی که برابر 0 تنظیم شود، باعث می شود، که فرکانس j-link برای برقراری ارتباط با میکروکنترلر خودکار ماکسیمم مقدار انتخاب شود. بسیار عالی، تمام تنظیمات مورد نیاز انجام شده است. حالا با انتخاب دکمه ی Run و یا Debug مطابق تصویر عملیات دیباگ شروع می شود.

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

امکانات Debug. جهت دیباگ کردن و ایستادن خط اجرای برنامه در نقطه ای خاص، نیاز است که قبل از اجرای برنامه در خطوط مدنظر اصطلاحا breakpoint قرار دهیم، برای این مورد با دابل کلیک کردن روی نوار کناری خط برنامه یک breakpoint در خط مورد نظر ایجاد می شود و زمانی که برنامه اجرا می شود، با رسیدن به این breakpoint ها برنامه متوقف می شود و برنامه نویس می تواند اقدام بعدی را انجام دهد. این مورد با شماره ی 1 در تصویر ذیل نشان داده شده است. خطی که برنامه در حال حاضر بر روی آن ایستاده است با یک فلش و بک گراند رنگی برای آن خط مشخص می شود.

توضیحات شماره های موجود در تصویر فوق به شرح ذیل است. به زودی یک ویدئو برای آشنایی بهتر در همین صفحه ارائه می شود.
2: این گزینه برای ادامه و اجرا برنامه کاربرد دارد، به این ترتیب تا نرسیدن به breakpoint بعدی برنامه متوقف نمی شود.
3: این گزینه برای pause کردن برنامه ی در حال اجرا استفاده می شود.
4: جهت Stop کردن فرایند Debug به صورت کامل مورد استفاده قرار می گیرد.
5: جهت اجرای فقط یک خط بعدی برنامه استفاده می شود، به این ترتیب بعد از اجرای یک خط متوقف می شود.
6: برای اجرای یک تابع و یک بلوک کد مورد استفاده قرار می گیرد و بعد از آن متوقف می شود.
7: در هر نقطه ای از برنامه که قرار دارد باعث می شود تا زمان خروج از تابع مربوطه اجرای برنامه ادامه یابد.
8: جهت راه اندازی مجدد و شروع برنامه از وکتور ریست و از خط اول برنامه مورد استفاده قرار می گیرد.
امیدوارم که از آموزش لذت برده باشید. اگر مشکلی در روند کار داشتید حتما در بخش نظرات بنویسید.
جهت ارتقاء سطح و کیفیت آموزش ها نظرات خودتون رو راجع به مطلب آموزشی “آموزش نحوه دیباگ کردن ARM در Eclipse” از قسمت نظرات پایین همین صفحه، با ما در میان بگذارید.
جهت مطلع شدن از آموزش های جدید به خبرنامه ی MBED بپیوندید.
درباره مرتضی زندی
خلق کردن شماره 1 علاقه مندی های من هست. برنامه نویسی بهترین ابزاری بوده که تا الان برای این کار پیدا کردم. بیس الکترونیک دارم و دستی بر آتش در دنیای رشته های مجاور. تجربه سال ها فعالیت در تیم های R&D رو دارم، در این بین در حوزه ی امبدد سیستم ها فعالیتم پررنگ تر هست. عاشق یادگیری و یاد دادن هستم و تلاش می کنم تجربیاتم رو به زبانی ساده از طریق EasyMCU.org به نحوی کاربردی و موثر با علاقه مندان این حوزه به اشتراک بذارم.
نوشته های بیشتر از مرتضی زندیمطالب زیر را حتما مطالعه کنید
آموزش نصب و راه اندازی سیستم عامل Free RTOS روی STM32
آموزش FreeRTOS نحوه استفاده از میوتکس Mutex
آموزش Free RTOS نحوه استفاده از سمافور Semaphore
آموزش STM32 راه اندازی وقفه خارجی EXTI
معرفی کتاب ARM
راه اندازی واحد سریال UART در STM32
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
دیدگاهتان را بنویسید