مسئله این صورت هست که من روی میکرو یه وقفه systick دارم که هر 1ms اتفاق میفته و توی سرویس وقفه، یه سری تایمر نرم افزاری رو پدیت میکنم. از طرفی یه پورت سریال (USART) هم دارم که وقفه دریافت روش فعال هست.
حالا اگر مثلا 50 بایت رو پشت سر هم بفرستم برای میکرو، میکرو کاملا هنگ میکنه و البته نمیدونم دقیقا چه نوع faultی اتفاق میفته
تنها راهی هم که براش پیدا کردم، اینه که تعداد دستوراتی که توی وقفه systick قراره اجرا بشه رو از یه حدی کمتر کنم. یعنی زودتر از سرویس وقفه بیاد بیرون. و در غیر اینصورت حتما هنگ میکنه
- میکرو stm32f103vct6 هست
- کامپایلر IAR 7.3
- کد 3.5 Standard peripheral library
- دستکاری کردن اولویت وقفه ها فایده ای نداشت
- فقط همین دو تا وقفه رو دارم
- با غیر فعال کردن هر یک از وقفه ها مشکل برطرف میشه
- هیچ optimization ای استفاده نکردم. درصورت استفاده از size optimization، مشکل برطرف میشه. اما قسمت های دیگه برنامه رو خراب میکنه و ترجیح میدم استفاده نکنم
حالا اگر مثلا 50 بایت رو پشت سر هم بفرستم برای میکرو، میکرو کاملا هنگ میکنه و البته نمیدونم دقیقا چه نوع faultی اتفاق میفته
تنها راهی هم که براش پیدا کردم، اینه که تعداد دستوراتی که توی وقفه systick قراره اجرا بشه رو از یه حدی کمتر کنم. یعنی زودتر از سرویس وقفه بیاد بیرون. و در غیر اینصورت حتما هنگ میکنه
- میکرو stm32f103vct6 هست
- کامپایلر IAR 7.3
- کد 3.5 Standard peripheral library
- دستکاری کردن اولویت وقفه ها فایده ای نداشت
- فقط همین دو تا وقفه رو دارم
- با غیر فعال کردن هر یک از وقفه ها مشکل برطرف میشه
- هیچ optimization ای استفاده نکردم. درصورت استفاده از size optimization، مشکل برطرف میشه. اما قسمت های دیگه برنامه رو خراب میکنه و ترجیح میدم استفاده نکنم
دیدگاه