Sorry,but __disable_irq() does nothing?
In the FreeRTOS ARM7_LPC2129_Keil_RVDS port, we use
#define portDISABLE_INTERRUPTS() __disable_irq()
#define portENABLE_INTERRUPTS() __enable_irq()
but a fact is that __disable_irq() and __enable_irq() can not be called from the user mode.It seems they dont function correctly, the irq is not disabled after call to portDISABLE_INTERRUPTS() or portENABLE_INTERRUPTS().
plz help me about this..
Regards.
wFrancis
Sorry,but __disable_irq() does nothing?
Tasks run in System mode, so the interrupt masks can be accessed.
Regards.
Sorry,but __disable_irq() does nothing?
Thanks for your kindly reply!
However , I found that the watchdog timer not work well with the __disable_irq().It seems that the wdt resets the whole system even if I feed it in the task using __disable_irq() and __enable_irq() to ensure the feed is successful.
void wdtFeed(void)
{
__disable_irq();
WDFEED = 0xAA;
WDFEED = 0x55;
__enable_irq();
}
void wdtInit(uint tms)
{
__disable_irq();
WDTC = (ulong)(tms * configCPU_CLOCK_HZ / 4 / 1000);
WDMOD = 0x03;
WDFEED = 0xAA;
WDFEED = 0x55;
__enable_irq();
}
What ‘s up?Can you guide me?
Regards!
wFrancis