آرم‌ات را هضم کن؛ ابزار مشاهده‌ی میکروکنترلرهای STM

آرم‌ات را هضم کن؛ ابزار مشاهده‌ی میکروکنترلرهای STM

آرم‌ات را هضم کن؛ ابزار مشاهده‌ی میکروکنترلرهای STM
آرم‌ات را هضم کن؛ ابزار مشاهده‌ی میکروکنترلرهای STM

ابزار مشاهده‌ی میکروکنترلرهای STM ;

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

توسعه‌دهندگان نرم‌افزار همواره نیاز به ابزارهایی دارند تا بتوانند مقادیر یک متغیر یا وضعیت سیستم را پس از اجرای برنامه‌شان مشاهده کنند. خوشبختانه ابزارهای خیلی مناسبی در اختیار توسعه‌دهندگان نرم‌افزارهای کامپیوترهای شخصی وجود دارد، اما این موضوع برای توسعه دهندگان میکروکنترلرها همواره یک عذاب دائمی است! یک روش متداول برای آنها، استفاده از ال ای دی ها یا پرینت کردن مقادیر توسط پورت سریال است. اگرچه این راه حل‌ها هم همیشه قابل استفاده نیستند. خوشبختانه شرکت ST ابزاری برای مشاهده ی مقادیر و وضعیت میکروکنترلرهای STM در اختیار توسعه دهنده‌ها قرار داده است که توسعه‌ی نرم‌افزار را برای آنها متحول می‌کند. در این پست این ابزار را معرفی میکنیم.

یکی از روش‌های متداول برای دیباگ برنامه‌ها استفاده از break point و اجرای خط به خط برنامه ها است. در این روش با اجرای هر خط میتوان تاثیر آن را بر وضعیت سیستم و متغیرها را مشاهده نمود. مشکل اصلی چنین روشی به ویژه در سیستم‌های میکروکنترلری، وجود واحدهای آسنکرون (برای مثال تایمر یا وقفه) نسبت به هسته‌ی پردازشی است. توقف برنامه در یک خط خاص از برنامه، تمام زمان‌بندی‌ها را به هم ریخته و در واقع اصلا نمی‌شود برنامه را آنطور که در دنیای واقعی عمل میکند دیباگ نمود.

شرکت ST این مشکل را از طریق واحد JTAG میکروکنترلرهای STM حل کرده است. از طریق ابزار STMStudio شما می‌توانید بدون آن که اجرای برنامه را متوقف کنید، مقدار یک متغیر را در یک قسمت خاص از حافظه به صورت لحظه‌ای مشاهده نمایید. مراحل کار بسیار ساده است:

1- برنامه‌ی STMStudio را از سایت شرکت ST دریافت نمایید.

2- پس از نصب برنامه و باز کزدن آن، در قسمت Display Variables راست کلیک کرده و Import را انتخاب نمایید.

import variables

3- در قسمت Executable File، به محل پروژه‌ی خود رفته و فایلی که با پسوند axf ساخته شده را انتخاب نمایید. با انتخاب این فایل، متغیرهای برنامه‌تان به همراه آدرس آن‌ها در داخل حافظه‌ی میکروکنترلر لیست می‌شود. متغیرهایی که می‌خواهید آن را مشاهده نمایید انتخاب نمایید و دکمه‌ی Import را فشار دهید.

adding axf file

4- متغیرهای اضافه شده در برنامه لیست شده‌اند. حالا باید آن‌ها را به قسمت نمایش اضافه کنید. برای اینکار بر روی متغیرمورد نظرتان راست کلیک کنید و در قسمت Send To محیط نمایش را انتخاب کنید. بدین ترتیب متغیر به لیست متغیرهای نمایش اضافه می‌شود. همچنین انتخاب نمایید که نحوه ی نمایش متغیر به چه صورت باشد.

adding variable to view

5- پروگرامر/دیباگر ST-Link/V2 را به برد وصل نمایید. حالا همه چیز آماده است، کافی است تا برد را روشن کرده و دکمه‌ی سبز رنگ استارت را در برنامه‌ی STMStudio فشار دهید تا مقدار متغیر مورد نظرتان را مشاهده کنید.

حمایت از صاد میم

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

صاد میم
صاد میم

کارشناس ارشد سخت افزار

دیدگاه ها

7 دیدگاه

  • موسوی
    ۱۰ اسفند ۱۳۹۹

    سلام، بعضی متغیرها رو نمی تونم در STM Studio ببینم، مشکل از کجاست؟

    • محمد
      ۷ دی ۱۴۰۰

      درود بر شما
      برای دانلود STM STUDIO به سایت ST مراجعه کردم اما تنها امکان دانلودSTM8 بصورت اکتیو داره
      در این صورت چه باید کرد؟

      • Saleh
        ۲۶ دی ۱۴۰۰

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

  • sajjad
    ۸ تیر ۱۳۹۸

    سلام
    ممنون بابت پستتون.
    من از محیط دیباگ keil خیلی راضی هستم و مشکلی تا حالا باهاش نداشتم و نمیدونم stmstudio چه مزیتی نسبت به محیط دیباگ keil داره. توی keil هم میشه بدون متوقف کردن روند برنامه یک متغیر رو به صورت live مشاهده کرد. ولی خیلی جاها دیدم از stmstudio استفاده میشه و تعریف میشه…

    • Zeus ‌
      زئوس Zeus
      ۹ تیر ۱۳۹۸

      سلام ؛ مهم اینه که شما با اون نرم افزاری که کار میکنید راحت باشید :/ ؛ البته اتمل استودیو دو دلیل برای برتری داره
      اول : اتمل استودیو از ویرایشگر ویژوال استودیو استفاده میکنه که در حال حاظر یکی از بهترین ویرایشگر های جهان هست
      دوم: اتمل استودیو از کامپایلر GCC استفاده میکنه که به نظر من رو دستش نیست (:دی)
      البته مشکلی که داره به نظرم اینه که اول لینوکسی نیست دوم این که خیلی سنگینه 😐

      • sajjad
        ۹ تیر ۱۳۹۸

        اتمل استودیو؟ اتمل استودیو ارتباطش با stmstudioچیه؟ من درست متوجه نشدم یا اشتباه تایپی بوده یا چی؟ 😀

        • Zeus ‌
          زئوس Zeus
          ۹ تیر ۱۳۹۸

          من اشتباه متوجه شدم ؛ فکر کردم دارید در مورد atmel studio سوال می پرسید.
          با stm32 تجربه ای نداشتم :دی

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک