lpc23xx FreeRTOS and sleep or power down mode

I am trying to put an LPC2368 into power down or sleep mode.
I can get the chip to sleep and wakeup with out any problems, however I sometimes get data aborts after waking up. Now I just want to check what I am doing with FreeRTOS is correct. I have several tasks running. When it is time to sleep most of the tasks block on a semaphore. So when going to sleep, I call taskENTER_CRITICAL(), stop the RTOS timer and put the chip into power down mode. Upon waking I start the RTOS timer and call taskEXIT_CRITICAL(). Can anyone see any problems with this ? Using GCC to compile. thanks
Ben

lpc23xx FreeRTOS and sleep or power down mode

Where are the ENTER/EXIT critical functions called from, and is it as part of the same sequential code? I don’t have experience of sleep modes on LPC2000’s I’m sorry to say, so assistance will be limited if there is some quirk of the architecture that could cause a problem, but I would suggest writing a test program without FreeRTOS included to see if it is kernel related or not.  For example, have a program that sets up a tick interrupt that does nothing much (maybe toggle an LED every 100ms), then execute code to disable interrupts and put into sleep mode – then when waking up enable interrupts and see if the LED starts flashing again. Regards.

lpc23xx FreeRTOS and sleep or power down mode

the Enter- Sleep – Exit  are all inside a function called from one of the running tasks. I am re-checking all the code paths inside the Enter/Exit calls to make sure no FreeRTOS calls are made ( I don’t think any are). I think my problems are timing/interrupt based with some memory corruption, but I am not 100% sure on that. Most of the time everything resumes as normal. Fairly sure it is not a stack issue. I have plenty of free RAM and so have increased stacks sizes quite a bit.  vTaskList() reports plenty of free space for the tasks. I am assuming stopping the RTOS timer would in effect halt the RTOS and as long as I make no api calls that would result in a task switch, I would be pretty safe. If you had to suspend the RTOS to put a chip to sleep how would you go about it ?