مشکل در دیباگ کردن برنامه ی هدربورد stm32f103

سلام
بنده برنامه ای که برای هدربورد stm32f103 نوشته میشه رو وقتی به صورت عادی (بدون دیباگ) روی میکرو میریزم،‌ به درستی اجرا میشه و هیچ مشکلی وجود نداره ولی وقتی وارد بخش دیباگ میشم با همون برنامه، دیباگ به درستی اجرا نمیشه. این مشکل رو با چشمک زدن یه led تست گرفتم یه سری مشکلات واقعا عجیب وجود داره. وقتی با step over توابع رو جلو میبرم به تابع Hal init که میرسم و step over میزنم میکرو halt میشه و led اصلا روشن نمیشه … ولی وقتی خط به خط برنامه رو میبرم جلو، به قسمت reset handler و خط BX که میرسه این اتفاق halt میوفته و عجیب اینجاست که led روشن میشه ولی خاموش نمیشه طبق برنامه و فقط روشنه … کسی به این مشکل برخورده یا ایده ای داره؟

با سلام
لطفا موارد زیر رو بررسی کنید.

  • حالت Reset (مثل Software Reset یا Hardware Reset) را بررسی کنید. گزینه‌ی Connect under Reset را تست کنید.
  • سطح بهینه‌سازی (مثل -O0 یا -O2) در حالت دیباگ و عادی باید یکسان باشد.
  • وقفه‌ها ممکن است در حالت دیباگ باعث مشکلات شوند. موقتاً غیرفعال کنید و خروجی را بررسی کنید.
  • استفاده از کلاک خارجی یا تغییر کلاک ممکن است در دیباگ مشکل ایجاد کند.
  • درون HAL_Init یک Breakpoint بگذارید و بررسی کنید کجا متوقف می‌شود.

سلام مجدد خدمت شما استاد گرامی.
سطح بهینه سازی حالت دیباگ و عادی به صورت جداگانه مگر قابل تنظیم هستند؟ بنده یک گزینه سطح بهینه سازی در تنظیمات دارم که اونرو o0 قرار میدهم.
بنده کلاک رو داخلی قرار دادم و چون برنامه یک led چشمک زن هستش وقفه ی خارجی ندارم.
بنده HAL_Init رو بررسی کردم و نتیجه این شد:
به خط
__HAL_AFIO_REMAP_SWJ_NOJTAG();
که میرسم و به خط بعد میرم وارد بخش reset_handler میشوم و بعد از اون برنامه به همان خط BX میرسد و میکرو halt میشود.

این که چرا از JTAG ارور میگیرید یک مقدار عجیب هست. لطفا مجددا چک کنید که دیباگ از طریق SWD انجام شود. به احتمال زیاد پروگرمر شما JTAG رو ساپورت نمیکند.