TrueSTUDIO – ابزار محبوبِ من برای برنامه نویسی STM32

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

اگر تجربه‌ی برنامه نویسی در حوزه‌های دیگر-علی الخصوص برنامه نویسی با زبان جاوا برای اندروید- را داشته باشید، بعید نیست که با محیط توسعه‌ی اکلیپس -Eclipse- آشنا باشید. اگر چه اغلب از این IDE برای برنامه نویسی با زبان جاوا استفاده می‌کنند اما بسیاری از زبان‌های دیگر -از جمله ++C/C- را نیز پشتیبانی می‌کند.

از آنجا که اکلیپس یک نرم افزار متن باز است، گاهی شرکت‌ها در سورس آن تغییراتی ایجاد می‌کنند و به همراه ویژگی‌هایی جدید آن را برای کارهایی خاص ارائه می‌دهند. درست همان کاری که شرکت Atollic سال‌ها پیش انجام داده و نرم افزار اکلیپس بِیسِ خودش را با نام TrueSTUDIO برای میکروکنترلرها ارائه کرده. اواخر سال 2017 شرکت ST، شرکت Atollic را با همه‌ی خدم و حشمش می‌خرد و از آن زمان تا الان TrueSTUDIO منحصراً میکروهای ST را پشتیبانی می‌کند.

الان که در حال نوشتن این مطلب هستم چند ماهی می‌شود که به جای استفاده از Keil از TrueSTUDIO برای پیش بردن پروژه‌هام استفاده می‌کنم. دلیل رفتن من به سمت این IDE هم اتفاقی بود. وقتی خبر خریدن این شرکت توسط ST را شنیدم، تصمیم گرفتم امتحانی کنم و مدتی با این نرم افزار سر و کله بزنم. اوایل به خاطر عادتی که به کِیل داشتم کمی اذیت می‌شدم. اما خیلی زود عادت کردم و حالا اینقدر از این IDE راضی هستم که با وجود برخی مشکلاتش حاضر نیستم به Keil برگردم. حتی اگر یک روز قرار باشد که باز از این IDE کوچ کنم احتمالاً باز به سمت یک IDE اکلیپس بِیس خواهم رفت.

معرفی truestudio - دیجیلاگیست

TrueSTUDIO چه ویژگی‌هایی داره که اینقدر ازش تعریف می‌کنی؟

دلایل من برای انتخاب TrueSTUDIO زیادند. شاید بعضی از آن‌ها برای شما مسخره بیایند – مثلاً اینکه اگر روی یک متغیر یا تابع برویم کافیه تا F3 را بزنیم تا به محل تعریفش هدایت شیم:) – شاید بعضی از آن‌ها را بتوان در کِیل یا هر نرم افزار دیگری هم فعال کرد و من آگاهی نداشتم و فکر می‌کردم این یک ویژگی جدیده. اما با این وجود فکر میکنم بعیده که همه‌ی این دلایل را بتوان در یک IDE دیگر هم پیدا کرد. من توصیه می‌کنم حداقل برای یک مدت TrueSTUDIO را امتحان کنید. شاید شما هم مثل من خوشتان آمد و دیگر سمت IDE دیگری نرفتید. شاید هم برعکس به این نتیجه رسیدید که چقدر چرته و بهتره که برگردید سر همان IDE قبلیتان. در هر صورت اگر این امتحان را انجام دادید، حتماً در زیر این پست تجربه خودتان را برای من و سایر دیجیلاگیستیا بنویسید تا استفاده کنیم.

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

رایگان:

 قاعدتاً خیل عظیمی از جامعه ما را که با کِرَک کردن و کپی غیرقانونی نافمان را بریده‌اند، این مورد اهمیتی ندارد. اما هستند کسانی که در نصب یک برنامه ابتدا به دنبال چنین ویژگی می‌گردند تا اگر نداشت معادل متن باز و رایگانش را بیابند یا حتی بسازند. اگرچه متاسفانه تا جایی که اطلاع دارم truestudio متن باز نیست، اما از وقتی که ST آن را خریداری کرده، کاملاً برای کسانی که با میکروهای این شرکت کد می‌زنند رایگان است.

دیباگر فوق العاده:

اگر به من بگویند فقط یک ویژگی از این IDE نام ببر، به همین مورد اشاره خواهم کرد. واقعاً فوق العاده است. اگر به بلاگ Atollic سر بزنید خواهید دید که جای جای آن به این نقطه قوتشان اشاره کرده‌اند. سعی می‌کنم در آینده بیشتر در این خصوص بنویسم.

امکان نصب افزونه:

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

یه تجربه که برای خودم جالب بود بگم. چند وقت پیش متوجه شدم شرکت NXP برای IDE اکلیپس بِیس خودش -Kinetis Design Studio- یک افزونه رایگان ارائه کرده که کمک می‌کند تا کسانی که از FreeRTOS در برنامه خود استفاده می‌کنند بتوانند اطلاعاتی از وضعیت RTOS به دست آورند. افزونه خیلی خوبی بود که اتفاقاً به آن نیاز داشتم. اگرچه این افزونه برای TrueSTUDIO نوشته نشده بود، اما از آنجا که هر دوی این IDEها اکلیپس بِیس هستند، این افزونه نصب شد و تا حد قابل قبولی کار کرد.

گشت و گذار سریع و راحت در میان کد:

طی برنامه نویسی بارها لازم می‌شود تا برگردیم و توابع را نگاهی بیندازیم، ببینیم کجا متغیر ما تعریف شده و … متاسفانه در این زمینه Keil اصلا جالب عمل نمی‌کند. البته تا زمانی که از چنین ویژگی‌هایی استفاده نکرده باشید، شاید متوجه سختی این کار نشوید اما کافی است تا یک مدت با یک IDE خوب کدهایتان را بررسی کرده باشید. دیگر کدزدن با IDE قبلی برایتان سخت خواهد بود.

امکان تعریف استایل کدنویسی:

یکی از توصیه‌های کاملاً واضح که بزرگان دارند این است که کدتان را تمیز بنویسید تا اگر بیچاره‌ای قرار شد کد شما را ببیند یا حتی بعد از چند وقت خود شما قرار شد کدتان را نگاهی بیندازید، گاوگیجه نگیرید. – دلم از این بابت خونِ –

فارغ از این توصیه‌ی قشنگ اخلاقی که در ابتدا معقول می‌نماید و در عمل سخت و ناممکن، بهتر است سیستمی ساخته شود تا به راحتی این توصیه در آن عملی شود. فکر کنم دیگر لازم نباشد توضیح بدهم که شما در truestudio این امکان را دارید. برای نمونه کافی است پس از انتخاب کدتان ctrl + i را بزنید تا مرتب شدنش را در کسری از ثانیه مشاهده کنید. البته امکان تنظیمات بیشتر هم وجود دارد تا این مرتب شدن باب استایل سلیقه‌ای یا تحمیلیتان صورت گیرد.

هسته‌های درگیر کامپایل:

یکی از درد آورترین زمان‌ها برای من زمان کامپایل است. اصلاً برایم خوشایند نیست که یک دقیقه به مانیتور زل بزنم تا کامپایل تمام شود یا اینکه در سناریوی بدتر و متداول‌تر به سمت مرورگر روانه شوم و بعد از یک ربع یادم بیاید برنامه‌ای بود که مشغول نوشتنش بودم!

gcc -کامپایلر مورد استفاده در truestudio- ویژگی دارد که می‌تواند تا حد زیادی این درد را تسکین دهد. ما می‌توانیم در تنظیمات مشخص کنیم که چند هسته درگیر کامپایل شود و اگر سیستم شما چند هسته‌ای باشد به میزان قابل توجهی خواهید دید که زمان کامپایل کاهش می‌یابد.

پشتیبانی از چند مانیتور:

احتمالاً شما هم تصویر برنامه نویسای خفنی را دیده‌اید که همزمان دو یا حتی تعداد بیشتری مانیتور روبرویشان قرار داد و در حالی که هر از گاهی قهوه می‌نوشند، کافئین را به کد خالص تبدیل می‌کنند:)

اعتراف می‌کنم اوایل درک نمی‌کردم چرا باید چند مانیتور داشت و این چه مزیتی به برنامه‌نویس می‌دهد. تا اینکه تست کردم. اوایل تنها برای طراحی PCB با آلتیوم دیزاینر، از چند مانیتور بهره میبردم و واقعاً سرعت کار و تمرکز را بالا می‌برد. اما هنگام استفاده از Keil دلیلی به این کار نمی‌دیدم. تا اینکه گذرمان به TrueSTUDIO خورد و حالا درک می‌کنم که با چند مانیتور کار کردن چه مزه‌ای میده.

۱۲ دیدگاه‌ها

  1. با سلام. من دو روزه دارم باهاش سر وکله میزنم نسبت به keil برخی ویژگی های خاصی داره من الجمله تو دیباگ کردن و تنظیمات کامپایلر و غیره اما مشکلی که من باهاش برخوردم نمیتونین متغییرها رو به صورت زنده ببینین مگر اینه segger داشته باشین اما تو keil با پروگرمر st_link به صورت زنده میشد متغییرها رو دید….شایدم من نتوستم این ویژگی رو راه بیندازم

    • سلام
      بله در حال حاضر این امکان وجود نداره که با st link بتونید در قسمت “Live Expressions” به صورت زنده متغیرها را مشاهده کنید. اما ظاهراً مهندسین st دارن روش کار میکنن
      همونطور که خودتون هم اشاره کردید یک راه حل اینه که با j link اینکار رو انجام بدید. و راه دیگه هم اینه که از طریق ITM و پین SWO متغیر مدنظرتون رو مشاهده کنید. این روش میتونه یکسری دیتاهای فوق العاده دیگه هم بهتون بده، مثلاً اینکه از اتفاقاتی که درون متغیر میوفته یک history بهتون میده و اگه جایی ناخواسته بر روی این متغیر داره نوشته میشه مثلاً به خاطر نشت حافظه، شما با PC که بهتون میده میتونید بفهمید در کجای کدتون این نوشتن بر روی متغیر انجام میگرفته. البته این روش محدودیت های خودش رو هم داره که من انشالله به زودی با یک پست مفصل اون رو توضیح میدم.

  2. فرید صراف زاده

    تشکر از اطلاعات مفیدتون

  3. سلام
    فقط اومدم بگم که trueStudio دیگه از طرف ST پشتیبانی نمیشه، احتمالا داره Stm32CubeIDE رو جایگزین چندتا برنامه میکنه، سربزنید به سایت st متوجه میشید.

    • سلام
      بله اطلاع دارم. شرکت ST این IDE رو خرید و حالا داره با برند خودش یعنی CubeIDE اون رو توسعه میده. در واقع یه جورایی فقط اسمش عوض شده.
      متشکر از اطلاعتون.

  4. سلام . قبلا همزمان از keil, stm32cubemx , source insight استفاده می کردم. ولی STM32CUBEIDE یکپارچه ست و کار رو ساده تر می کنه ولی کمی شلوغه و یاد گیری ریزه کاری هاش زمان بره.
    یه کم طول میکشه اینو یاد بگیرم، راستش تا بیاییم یه چیزی رو خوب یاد بگیریم یه چیز جدیدتر میاد و باید کوچ کنیم، کلا سوییچ کردن هم، سخته.
    ممنونم از سایت خوبتون
    راستی یه مطلبی جامع از نویز پریزی و نویزگیزی میکرو در محیطهای صنعتی داشته باشین. اخیرا بدجوری گیر کرده بودم و خداروشکر حل کردم.

    • سلام
      استاد بزرگواری دارم که تاکید میکنه نباید به ابزارها وابسته شد. خود من هم از Keil -به خاطر شرکت- هم از CubeIDE استفاده می‌کنم. خوبی CubeIDE و سایر IDEهای اکلیپس بیس اینه که محیطشون خیلی شبیه همه و تفاوت‌های جزئی دارند. پس یک بار کافیه باهاشون کار کنی تا همیشه هر جا از این IDEها دیدی برات آشنا باشه. از اونجا که اکلیپس رایگان و متن باز هست تو خیلی جاها ما چنین IDEهایی رو داریم. موفق باشید.

  5. سلام

    من دنبال نسخه نصبی این برنامه میگردم.

    میشه راهنمایی بفرمایید که از گجا دانلود کنم؟

    • سلام علی عزیز، حقیقتش این پست رو من چند سال پیش نوشتم و از اون زمان خیلی چیزها تغییر کرده. شرکت ST بعدها اسم TrueSTUDIO رو به STM32CubeIDE تغییر داد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *