From what I see, yes. The following is as close as I get:
vPortSuppressTicksAndSleep()
…
__asm volatile(“mov %0, r7” : “=r” (test5257));
if( xModifiableIdleTime > 0 )
{
__asm volatile ( “dsb” ::: “memory” );
__asm volatile ( “wfi” );
__asm volatile ( “isb” );
}
//__asm volatile(“mov %0, r7” : “=r” (test5258));configPOST_SLEEP_PROCESSING( xExpectedIdleTime ); __asm volatile ( "cpsie i" ::: "memory" ); __asm volatile ( "dsb" ); __asm volatile ( "isb" ); __asm volatile("mov %0, r7" : "=r" (test5259));
including the “mov” in the middle makes the device boot correctly. r7 (test5257) before sleep points to xTickCount, r7 (test5259) contains 0x0.
At this point in the boot process, my application hasn’t enabled any interrupts yet. Only the ones enabled by default and the rtos should be active. I don’t have any plain assembly ISRs.