آموزش STM32H7: اجرای پروژه Blinky روی هستههای M7 و M4
قسمت دوم
برای دیدن قسمت اول اینجا کلیک کنید.
برای دیدن قسمت سوم اینجا کلیک کنید.
در قسمت قبل با سختافزار و امکانات برد قدرتمند STM32H745I-DISCO آشنا شدیم. حالا وقت آن است که اولین پروژه عملی را روی این برد اجرا کنیم:
روشن و خاموش کردن LED با هر کدام از هستهها، به صورت جداگانه.
در این قسمت یاد میگیریم:
- چطور یک پروژه Blinky بسازیم
- چطور بین هستهی Cortex-M7 و Cortex-M4 سوییچ کنیم
- چطور اجرای جداگانهی برنامه روی هر هسته را تنظیم کنیم
ویدیو آموزشی STM32H7 | قسمت دوم: اجرای Blinky روی هر دو هسته
در این ویدیو بهصورت کامل مراحل ایجاد پروژه، تنظیم GPIO و اجرای کد روی هر هسته بهصورت تصویری آموزش داده شده است.
مفهوم دو هستهای بودن در STM32H7
پردازندهی این برد دارای دو هستهی مجزا است:
- Cortex-M7: هستهی اصلی با عملکرد بالا، مناسب برای پردازشهای سنگین
- Cortex-M4: هستهی سبکتر، مناسب برای وظایف real-time و مصرف پایین
این دو هسته میتوانند همزمان یا جداگانه اجرا شوند. در این پروژه، هر بار فقط یکی از آنها فعال خواهد بود تا عملکرد مجزای آنها را ببینیم.
مرحله اول: نصب نرمافزارهای لازم
قبل از هر چیز، به ابزارهای زیر نیاز داریم:
- STM32CubeIDE آخرین نسخه
- درایورهای ST-LINK
- اختیاری STM32CubeProgrammer برای کنترل بوت و ریست

محیط نرم افزار STM32CubeIde
مرحله دوم: ایجاد پروژه برای هسته M7
-
اجرای STM32CubeIDE و ایجاد پروژه جدید:
- گزینهی “New STM32 Project” را انتخاب کنید.
- MCU مدل STM32H745XIH6 را جستوجو و انتخاب کنید.
- در مرحلهی انتخاب هسته، فقط Cortex-M7 را فعال بگذارید.
- پروژه را با نام مثلاً Blinky_M7 ایجاد کنید.
-
تنظیم LED در CubeMX:
- پین مربوط به LED را فعال کنید:
در این برد LED به پایه PH7 متصل است (RGB LED قرمز). - آن را به عنوان GPIO Output تنظیم کنید.
- پین مربوط به LED را فعال کنید:
-
نوشتن کد در main.c :
while (1) { ;HAL_GPIO_TogglePin(GPIOH, GPIO_PIN_7) ;HAL_Delay(500); }
-
کامپایل و پروگرام:
- برد را از طریق STLINK متصل کنید.
- پروژه را Build و Upload کنید.
- LED شروع به چشمکزدن میکند.
مرحله سوم: اجرای همان پروژه روی هسته M4
-
ایجاد پروژه جدید:
- پروژه جدیدی بسازید با نام مثلاً Blinky_M4.
- این بار فقط Cortex-M4 را فعال بگذارید.
- MCU همان STM32H745XIH6 است.
-
در بخش System Core → SYS:
- گزینهی Cortex-M4 Boot را روی “Boot from user flash” قرار دهید.
- همچنین، در تب “RCC”، تنظیمات کلاک را مشابه پروژه M7 انجام دهید.
-
پیکربندی GPIO مشابه:
- LED قرمز روی PH7 را به عنوان Output فعال کنید.
-
نوشتن کد چشمکزن:
while (1) { ;HAL_GPIO_TogglePin(GPIOH, GPIO_PIN_7) ;HAL_Delay(500); }
-
پروگرام و تست:
-
- فقط پروژه M4 را روی برد آپلود کنید.
- باید LED شروع به چشمک زدن کند.
نکته مهم درباره Boot هستهها
در حالت پیشفرض:
- فقط هسته M7 بعد از ریست فعال میشود.
- اگر بخواهید فقط M4 فعال باشد، باید در پروژه M7 کاری نکنید یا آن را خاموش نگه دارید.
این قسمت، ما هر بار فقط یکی از هستهها را پروگرام کردیم.
در آینده نحوه اجرای همزمان هر دو هسته را هم آموزش خواهیم داد.
نتیجهگیری این قسمت
در این قسمت، با ساخت دو پروژه Blinky ساده، یاد گرفتیم:
- چگونه پروژه مستقل برای هر هسته ایجاد کنیم.
- چگونه LED را از طریق CubeMX کنترل کنیم.
- تفاوت بوت و اجرای M4 و M7 را بشناسیم.