git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@646 35acf78f-673a-0410-8e92-d51de3d6d3f4

master
gdisirio 2009-01-19 19:50:21 +00:00
parent 3f200660f6
commit bd996b1663
5 changed files with 30 additions and 24 deletions

View File

@ -26,7 +26,7 @@
extern void FiqHandler(void); extern void FiqHandler(void);
CH_IRQ_HANDLER static void SpuriousHandler(void) { static CH_IRQ_HANDLER(SpuriousHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
@ -38,7 +38,7 @@ CH_IRQ_HANDLER static void SpuriousHandler(void) {
/* /*
* SYS IRQ handling here. * SYS IRQ handling here.
*/ */
CH_IRQ_HANDLER static void SYSIrqHandler(void) { static CH_IRQ_HANDLER(SYSIrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
@ -48,7 +48,7 @@ CH_IRQ_HANDLER static void SYSIrqHandler(void) {
chSysTimerHandlerI(); chSysTimerHandlerI();
chSysUnlockI(); chSysUnlockI();
} }
AT91C_BASE_AIC->AIC_EOICR = 0; \ AT91C_BASE_AIC->AIC_EOICR = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }

View File

@ -27,7 +27,7 @@
extern void FiqHandler(void); extern void FiqHandler(void);
CH_IRQ_HANDLER static void SpuriousHandler(void) { static CH_IRQ_HANDLER(SpuriousHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
@ -39,7 +39,7 @@ CH_IRQ_HANDLER static void SpuriousHandler(void) {
/* /*
* SYS IRQ handling here. * SYS IRQ handling here.
*/ */
CH_IRQ_HANDLER static void SYSIrqHandler(void) { static CH_IRQ_HANDLER(SYSIrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
@ -49,7 +49,7 @@ CH_IRQ_HANDLER static void SYSIrqHandler(void) {
chSysTimerHandlerI(); chSysTimerHandlerI();
chSysUnlockI(); chSysUnlockI();
} }
AT91C_BASE_AIC->AIC_EOICR = 0; \ AT91C_BASE_AIC->AIC_EOICR = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }

View File

@ -31,27 +31,29 @@
/* /*
* Non-vectored IRQs handling here. * Non-vectored IRQs handling here.
*/ */
CH_IRQ_HANDLER static void IrqHandler(void) { static CH_IRQ_HANDLER(IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
/* nothing */ /* nothing */
VICVectAddr = 0;
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }
/* /*
* Timer 0 IRQ handling here. * Timer 0 IRQ handling here.
*/ */
CH_IRQ_HANDLER static void T0IrqHandler(void) { static CH_IRQ_HANDLER(T0IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */ T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }

View File

@ -31,27 +31,29 @@
/* /*
* Non-vectored IRQs handling here. * Non-vectored IRQs handling here.
*/ */
CH_IRQ_HANDLER static void IrqHandler(void) { static CH_IRQ_HANDLER(IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
/* nothing */ /* nothing */
VICVectAddr = 0;
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }
/* /*
* Timer 0 IRQ handling here. * Timer 0 IRQ handling here.
*/ */
CH_IRQ_HANDLER static void T0IrqHandler(void) { static CH_IRQ_HANDLER(T0IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */ T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }

View File

@ -31,27 +31,29 @@
/* /*
* Non-vectored IRQs handling here. * Non-vectored IRQs handling here.
*/ */
CH_IRQ_HANDLER static void IrqHandler(void) { static CH_IRQ_HANDLER(IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
/* nothing */ /* nothing */
VICVectAddr = 0;
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }
/* /*
* Timer 0 IRQ handling here. * Timer 0 IRQ handling here.
*/ */
CH_IRQ_HANDLER static void T0IrqHandler(void) { static CH_IRQ_HANDLER(T0IrqHandler) {
CH_IRQ_PROLOGUE(); CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */ T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
VICVectAddr = 0;
CH_IRQ_EPILOGUE(); CH_IRQ_EPILOGUE();
} }