Regarding the tickless idle implementation for the Cortex M3, I notice that it calls in this sequence:
__asm volatile( “cpsid i” ); //disable interrupt
if( xModifiableIdleTime > 0 )
__asm volatile( “wfi” );
configPOST_SLEEP_PROCESSING( xExpectedIdleTime );
__asm volatile( “cpsie i” );//enable interrupt
Why disable interrupt globally before goes to the “wfi” mode and only re-enable it after the “wfi” is woken up ?
Will this mean that the “wfi” can’t be woken up by any other interrupt (other than systick)?
Currently, I have usb audio enabled. This means that the usb interrupt comes at 1 msec interval and I keep on missing the interrupt once I enable the tickless idle option. What’s the best way to configure this tickless idle to work together with this kind of high frequency interrupt?