ابزار مشاهدهی میکروکنترلرهای STM ;
در یکی از پستهای قبلی سیسوگ تحت عنوان آرمات را قورت بده، میکروکنترلرهای STM را معرفی کردیم. میکروکنترلرهایی با کارایی بالا در برابر قیمتی بسیار مناسب. در این پست خواهید آموخت که چطور میتوانید حرفهایتر باشید و برنامههای نوشته شده برای STM را دیباگ نمایید.
توسعهدهندگان نرمافزار همواره نیاز به ابزارهایی دارند تا بتوانند مقادیر یک متغیر یا وضعیت سیستم را پس از اجرای برنامهشان مشاهده کنند. خوشبختانه ابزارهای خیلی مناسبی در اختیار توسعهدهندگان نرمافزارهای کامپیوترهای شخصی وجود دارد، اما این موضوع برای توسعه دهندگان میکروکنترلرها همواره یک عذاب دائمی است! یک روش متداول برای آنها، استفاده از ال ای دی ها یا پرینت کردن مقادیر توسط پورت سریال است. اگرچه این راه حلها هم همیشه قابل استفاده نیستند. خوشبختانه شرکت ST ابزاری برای مشاهده ی مقادیر و وضعیت میکروکنترلرهای STM در اختیار توسعه دهندهها قرار داده است که توسعهی نرمافزار را برای آنها متحول میکند. در این پست این ابزار را معرفی میکنیم.
یکی از روشهای متداول برای دیباگ برنامهها استفاده از break point و اجرای خط به خط برنامه ها است. در این روش با اجرای هر خط میتوان تاثیر آن را بر وضعیت سیستم و متغیرها را مشاهده نمود. مشکل اصلی چنین روشی به ویژه در سیستمهای میکروکنترلری، وجود واحدهای آسنکرون (برای مثال تایمر یا وقفه) نسبت به هستهی پردازشی است. توقف برنامه در یک خط خاص از برنامه، تمام زمانبندیها را به هم ریخته و در واقع اصلا نمیشود برنامه را آنطور که در دنیای واقعی عمل میکند دیباگ نمود.
شرکت ST این مشکل را از طریق واحد JTAG میکروکنترلرهای STM حل کرده است. از طریق ابزار STMStudio شما میتوانید بدون آن که اجرای برنامه را متوقف کنید، مقدار یک متغیر را در یک قسمت خاص از حافظه به صورت لحظهای مشاهده نمایید. مراحل کار بسیار ساده است:
1- برنامهی STMStudio را از سایت شرکت ST دریافت نمایید.
2- پس از نصب برنامه و باز کزدن آن، در قسمت Display Variables راست کلیک کرده و Import را انتخاب نمایید.
3- در قسمت Executable File، به محل پروژهی خود رفته و فایلی که با پسوند axf ساخته شده را انتخاب نمایید. با انتخاب این فایل، متغیرهای برنامهتان به همراه آدرس آنها در داخل حافظهی میکروکنترلر لیست میشود. متغیرهایی که میخواهید آن را مشاهده نمایید انتخاب نمایید و دکمهی Import را فشار دهید.
4- متغیرهای اضافه شده در برنامه لیست شدهاند. حالا باید آنها را به قسمت نمایش اضافه کنید. برای اینکار بر روی متغیرمورد نظرتان راست کلیک کنید و در قسمت Send To محیط نمایش را انتخاب کنید. بدین ترتیب متغیر به لیست متغیرهای نمایش اضافه میشود. همچنین انتخاب نمایید که نحوه ی نمایش متغیر به چه صورت باشد.
5- پروگرامر/دیباگر ST-Link/V2 را به برد وصل نمایید. حالا همه چیز آماده است، کافی است تا برد را روشن کرده و دکمهی سبز رنگ استارت را در برنامهی STMStudio فشار دهید تا مقدار متغیر مورد نظرتان را مشاهده کنید.
keil تو خروجی بهم axf نمیده
چرا؟
مطمئن نیستم ولی فکر کنم توی تنظیمات جایی داره که میگید این فایل رو بسازه
سلام
من یه مشکلی دارم
برنامه کامپایل میشه ولی خروجی axf نمیده چطوری باید فعالش کنم؟
فکر کنم باید گزینه ای رو فعال کنید تا فایل ساخته بشه
سلام من از ابزار J-link استفاده می کنم و می خواهم با میکرو ST در نرم افزار stmstudio ارتباط بگیرم ولی ظاهرا نمی شه با این دو تا توامان کار کرد. درست می گم؟ و آیا نرم افزار دیگه ای هست که بشه با J-link بصورت ویژوال مثل STM studio دیباگ کرد؟
فکر نمیکنم مشکلی وجود داشته باشه – نهایتا باید به شکل دستی تنظیمات اولیه رو انجام بدید
سلام، بعضی متغیرها رو نمی تونم در STM Studio ببینم، مشکل از کجاست؟
درود بر شما
برای دانلود STM STUDIO به سایت ST مراجعه کردم اما تنها امکان دانلودSTM8 بصورت اکتیو داره
در این صورت چه باید کرد؟
فکر میکنم به خاطر تحریم، امکان دسترسی به صورت مستقیم از سمت آیپی شما بسته شده باشه
سلام
ممنون بابت پستتون.
من از محیط دیباگ keil خیلی راضی هستم و مشکلی تا حالا باهاش نداشتم و نمیدونم stmstudio چه مزیتی نسبت به محیط دیباگ keil داره. توی keil هم میشه بدون متوقف کردن روند برنامه یک متغیر رو به صورت live مشاهده کرد. ولی خیلی جاها دیدم از stmstudio استفاده میشه و تعریف میشه…
سلام ؛ مهم اینه که شما با اون نرم افزاری که کار میکنید راحت باشید :/ ؛ البته اتمل استودیو دو دلیل برای برتری داره
اول : اتمل استودیو از ویرایشگر ویژوال استودیو استفاده میکنه که در حال حاظر یکی از بهترین ویرایشگر های جهان هست
دوم: اتمل استودیو از کامپایلر GCC استفاده میکنه که به نظر من رو دستش نیست (:دی)
البته مشکلی که داره به نظرم اینه که اول لینوکسی نیست دوم این که خیلی سنگینه 😐
اتمل استودیو؟ اتمل استودیو ارتباطش با stmstudioچیه؟ من درست متوجه نشدم یا اشتباه تایپی بوده یا چی؟ 😀
من اشتباه متوجه شدم ؛ فکر کردم دارید در مورد atmel studio سوال می پرسید.
با stm32 تجربه ای نداشتم :دی