⚙️ کالبدشکافی فنی AhuraRTOS
بخش ۵ | Integration و جمعبندی نهایی
🔧 ۹. راهنمای یکپارچهسازی با STM32CubeMX
اگر قصد دارید AhuraRTOS را به پروژهای مبتنی بر STM32CubeMX اضافه کنید، دو نکته مهم را باید در نظر بگیرید:
1️⃣ PendSV باید در اختیار RTOS باشد
در تنظیمات NVIC، تولید Handler مربوط به PendSV را غیرفعال کنید.
چرا؟
چون AhuraRTOS از PendSV برای Context Switching استفاده میکند و Kernel باید کنترل این Exception را در اختیار داشته باشد.
بهصورت ساده:
PendSV → AhuraRTOS Kernel
نه Application.
2️⃣ انتقال HAL Timebase
AhuraRTOS از SysTick برای Tick سیستم استفاده میکند.
بنابراین بهتر است Timebase مربوط به STM32 HAL روی یک Timer جداگانه، مانند:
TIM6
قرار بگیرد.
در غیر این صورت، دو مکانیزم مختلف ممکن است از یک Timebase استفاده کنند و مدیریت Tick و توابعی مانند:
HAL_Delay()
با RTOS تداخل پیدا کند.
نتیجه احتمالی این تداخل میتواند Timing Drift، تأخیرهای نادرست و رفتار غیرقابلپیشبینی باشد.
🎯 ۱۰. جمعبندی
AhuraRTOS تلاش میکند با یک معماری شفاف، وابستگیهای پنهان و پیچیدگی غیرضروری Kernel را کاهش دهد.
مهمترین ویژگیهایی که در این بررسی دیدیم:
🔹 O(1) Scheduler مبتنی بر Bitmap ۳۲ بیتی
🔹 استفاده از PendSV برای Context Switching
🔹 آزاد ماندن SVC برای Application
🔹 تفکیک دقیق Scheduler Lock و Critical Section
🔹 استفاده از PSPLIM برای محافظت از Stack در ARMv8-M
🔹 طراحی Kernel مستقل از جزئیات معماری
🔹 تمرکز بر Portability، Performance و Predictability
در نهایت، فلسفه AhuraRTOS را میتوان در یک جمله خلاصه کرد:
Kernel باید ساده، قابلپیشبینی و مستقل از Application باشد؛ در حالی که کنترل منابع همچنان در اختیار مهندس سیستم باقی بماند.
اگر با ARM Cortex-M، Firmware و سیستمهای Real-Time کار میکنید، AhuraRTOS میتواند پروژه جالبی برای بررسی یک رویکرد متفاوت در طراحی RTOS باشد.
🔗 پروژه AhuraRTOS:
https://github.com/AhuraRTOS/AhuraRTOS
👤 توسعهدهنده: مهندس عسکری (nimaltd)
@Amin_Techlab

GitHub
GitHub - AhuraRTOS/AhuraRTOS: The Versatile RTOS for All MCU
The Versatile RTOS for All MCU. Contribute to AhuraRTOS/AhuraRTOS development by creating an account on GitHub.
10August 8, 2026 787 2