خانه » وبلاگ » الکترونیک » ابزارهای ضروری توسعه سامانه‌های نهفته
2026/05/11 توسط اسماعیل , بدون دیدگاه

ابزارهای ضروری توسعه سامانه‌های نهفته


توسعه سامانه‌های نهفته به ابزارهایی مثل Toolchain ARM، OpenOCD، CMake و … نیاز دارد. این راهنما، آن‌ها را معرفی می‌کند و برای هرکدام روش دانلود و نصب در اینترنت محدود (با حجم و دردسر کمتر) ارائه می‌دهد.

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

1. ARM GNU Toolchain

ARM GNU Toolchain مجموعه‌ای از ابزارهای کامپایل، اسمبل و لینک برای ساخت برنامه‌های سیستم‌های مبتنی بر ARM است. این همان چیزی است که برای تبدیل کدهای C/C++ (و در صورت نیاز اسمبلی) به فایل اجرایی مناسب میکروکنترلرها و SoCها استفاده می‌شود. نسخه‌ی arm-none-eabi مخصوص توسعه‌ی بدون سیستم‌عامل (bare-metal) و معمولاً برای میکروکنترلرهاست.

نکته: گزینه x86 یعنی این بسته برای اجرا/نصب روی سیستم‌های مبتنی بر معماری x86 (مثل بیشتر رایانه‌های شخصی) آماده شده است.

مناسب چه کسانی است؟

این ابزار دقیقاً چه کار می‌کند؟

کاربرد در پروژه‌های Embedded

در پروژه‌ی سامانه‌های نهفته، معمولاً فرآیند این‌گونه است:

  1. نوشتن کد (C/C++)
  2. کامپایل به فایل‌های میانی
  3. لینک با اسکریپت حافظه/ردیف‌ها (Linker Script)
  4. تولید خروجی‌هایی مثل .elf و سپس تبدیل به فایل‌های قابل فلش مثل .bin یا .hex

پیشنهاد برای استفاده سریع

برای اینکه شروع کارتان راحت‌تر شود:

چک‌لیست نصب

دانلود

Arm GNU Toolchain arm-none-eabi 14.3 rel1 x86 :
Part1 | Part2 | Part3


2. OpenOCD

OpenOCD (Open On-Chip Debugger) یک ابزار متن‌باز برای دیباگ (Debug) و پروگرام کردن (Programming/Firmware Flashing) میکروکنترلرهاست. معمولاً همراه با GDB استفاده می‌شود تا بتوانید از طریق رابط‌هایی مثل JTAG/SWD به چیپ هدف وصل شوید و هم کد را دیباگ کنید و هم روی حافظه‌اش فلش بزنید.

مناسب چه کسانی است؟

OpenOCD دقیقاً چه کار می‌کند؟

کاربرد در کنار Toolchain

ترکیب رایج در Embedded این است:

  1. ARM GNU Toolchain برای ساخت فایل خروجی (مثل .elf)
  2. OpenOCD برای اتصال و فلش
  3. GDB برای دیباگ قدم‌به‌قدم، تعیین breakpoint و بررسی متغیرها

نکات مهم قبل از نصب

دانلود

OpenOCD 0.12.0


3. CMake

CMake یک ابزار متقاطع (Cross-platform) و متن‌باز برای مدیریت فرآیند ساخت (Build) برنامه‌هاست. به جای اینکه شما مستقیماً دستورات کامپایلر و لینک‌کننده را برای هر سیستم‌عامل یا محیطی بنویسید، CMake از فایل‌های ساده‌ای به نام CMakeLists.txt استفاده می‌کند تا این کار را خودکار کند.

نکته: CMake خودش کد را کامپایل نمی‌کند، بلکه فقط فایل‌های پروژه (مانند makefile برای GNU Make، یا فایل‌های پروژه ویژوال استودیو) را تولید می‌کند.

مناسب چه کسانی است؟

CMake دقیقاً چه کار می‌کند؟

کاربرد در پروژه‌های Embedded

در کنار ابزارهایی مثل ARM GNU Toolchain، CMake بسیار مفید است:

  1. شما در CMakeLists.txt مشخص می‌کنید که پروژه شما چه فایل‌هایی دارد، چه کتابخانه‌هایی لازم دارد، و هدف نهایی چیست (مثلاً یک فایل .elf برای میکروکنترلر).
  2. سپس CMake را اجرا می‌کنید تا برای کامپایلر مورد نظرتان (مثلاً arm-none-eabi-gcc) فایل‌های لازم (مثل Makefile) را بسازد.
  3. در نهایت با دستور make (یا معادلش) برنامه را Build می‌کنید.

دانلود

CMake 4.1.1 x64


4. افزونه های VS Code

افزونه‌های VS Code مجموعه‌ای از افزونه‌ها هستند که محیط کدنویسی Visual Studio Code را برای توسعه‌ی Embedded کامل‌تر و حرفه‌ای‌تر می‌کنند. خودِ VS Code یک ویرایشگر سبک و قدرتمند است، اما برای کار با پروژه‌های C/C++، CMake، گیت، دیباگ و حتی اتصال به بردهای نهفته، معمولاً به چند افزونه‌ی کلیدی نیاز دارید.

مناسب چه کسانی است؟

چرا افزونه‌ها مهم‌اند؟

در توسعه‌ی سامانه‌های نهفته، فقط تایپ کد کافی نیست. شما معمولاً به این امکانات نیاز دارید:

افزونه‌های VS Code این قابلیت‌ها را اضافه می‌کنند.

افزونه‌های پیشنهادی برای Embedded

در ادامه چند افزونه‌ی رایج و کاربردی را معرفی می‌کنیم:

1) C/C++ Extension

افزونه‌ی اصلی برای کدنویسی C و C++ است.

کاربرد:

2) CMake Tools

اگر پروژه‌تان با CMake ساخته می‌شود، این افزونه بسیار مهم است.

کاربرد:

3) Cortex-Debug

یکی از مهم‌ترین افزونه‌ها برای دیباگ بردهای ARM Cortex-M است.

کاربرد:

4) Makefile Tools

اگر پروژه با Makefile ساخته می‌شود، این افزونه کمک زیادی می‌کند.

کاربرد:

دانلود

توجه: برای نصب کافیه فایل رو از حالت فشرده خارج کنید و در مسیر “%USERPROFILE%\.vscode\extensions” قرار بدید.

marus25.cortex-debug-1.12.1
mcu-debug.debug-tracker-vscode-0.0.15
mcu-debug.memory-view-0.0.29
mcu-debug.peripheral-viewer-1.6.1
mcu-debug.rtos-views-0.0.14
ms-vscode.cmake-tools-1.22.27
ms-vscode.cpptools-1.30.4-win32-x64
ms-vscode.cpptools-extension-pack-1.3.1
ms-vscode.cpptools-themes-2.0.0
ms-vscode.makefile-tools-0.12.17
github.vscode-github-actions-0.31.0
bmewburn.vscode-intelephense-client-1.18.2


ارسال نظر