2012-08-14 18:00:48 -04:00
|
|
|
// case 1: Interrupt Controller available,
|
2013-10-10 20:01:51 -04:00
|
|
|
// "unconditional interrupt enabling" critical section policy
|
2012-08-14 18:00:48 -04:00
|
|
|
// (nesting of critical sections _not_ allowed)
|
|
|
|
//
|
2013-10-10 20:01:51 -04:00
|
|
|
interrupt void ISR_timer() { // entered with interrupts locked in hardware
|
|
|
|
QF_INT_ENABLE(); // enable interrupts
|
2012-08-14 18:00:48 -04:00
|
|
|
|
2013-10-10 20:01:51 -04:00
|
|
|
QF::TICK_X(0U, &l_ISR_timer); //<-- call the QF tick processing
|
2012-08-14 18:00:48 -04:00
|
|
|
|
2013-10-10 20:01:51 -04:00
|
|
|
QF_INT_DISABLE(); // disable interrupts again
|
2012-08-14 18:00:48 -04:00
|
|
|
// send the EOI instruction to the Interrupt Controller
|
|
|
|
}
|
|
|
|
|
|
|
|
// case 2: Interrupt Controller not used,
|
|
|
|
// "saving and restoring interrupt status" critical section policy
|
|
|
|
// (nesting of critical sections allowed)
|
|
|
|
//
|
|
|
|
interrupt void ISR_timer() {
|
2013-10-10 20:01:51 -04:00
|
|
|
QF::TICK_X(0U, &l_ISR_timer); //<-- call the QF tick processing
|
2012-08-14 18:00:48 -04:00
|
|
|
}
|