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 خورد و حالا درک می‌کنم که با چند مانیتور کار کردن چه مزه‌ای میده.

5+

5
Leave a Reply

2 Comment threads
3 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
  Subscribe  
newest oldest most voted
Notify of
سعید

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

0
فرید صراف زاده

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

1+
عضویت در خبرنامه هفتگیِ دیجیلاگیست

عضویت در خبرنامه هفتگیِ دیجیلاگیست

سلام

دوشنبه هر هفته، یک ایمیل از طرف دیجیلاگیست برای کسانی که آدرس ایمیل خودشون رو ثبت کردن ارسال میشه و توی اون در خصوص آخرین مطالب و اخبار دیجیلاگیست گزارش داده میشه.

اگه شما هم دوست داری این خبرنامه براتون ارسال بشه، تو کادر زیر آدرس ایمیل خودتون رو وارد کنید و دکمه "مشترک شوید!" را بزنید.

اشتراک شما ایجاد شد