سلام
چندتا سوال در مورد وقفه ها داشتم:
1- روال عادی برای راه اندازی وقفه ی سریع چیه؟ (fast interrupt)
2- وقتی وقفه ی معمولی رخ میده و به زیر برنامه ی مشخص شده پرش میکنه برای اینکه بفهمونیم که کدها تمام شدند، باید در رجیستر AIC_EOICR چیزی نوشته بشه، اما در نمونه کدی که از همین انجمن پیدا کردم کد پائین هم بود:
کد:
AT91C_BASE_AIC->AIC_ICCR = (1 << (AT91C_ID_IRQ1));
کار این کد چیه؟ اصلا کار رجیستر ICCR چیه؟(interrupt clear command register)
3- کار رجیستر AIC_DEBUG چیه؟ داخل این رجیستر یه قسمت هست به نام Protection mode، کار این قسمت چیه، از چی محافظت میکنه؟
4- AIC_SPU & AIC_IVR چه رابطه ای باهم دارن؟ AIC_SVR و AIC_IVR چه فرقی باهم دارند؟
در دیتاشیت برای توضیح فرق AIC_IVR با SVR نوشته:
• IRQV: Interrupt Vector Register
The Interrupt Vector Register contains the vector programmed by the user in the Source Vector Register corresponding to
the current interrupt.
The Source Vector Register is indexed using the current interrupt number when the Interrupt Vector Register is read.
When there is no current interrupt, the Interrupt Vector Register reads the value stored in AIC_SPU.
5- کار رجیستر AIC_SPU چیه؟
---------------------------
ببخشید دیگه.. زیاد سوال پرسیدم.
ممنون.