Comment 6 for bug 1763050

Revision history for this message
Thomas Preud'homme (thomas-preudhomme) wrote :

How about:

volatile int *cpasr_ptr = 0xE000ED88;

static void prvPortStartFirstTask( void )
{
  intptr_t stack_addr = **cpasr_ptr;
  asm ("msr msp, %0\n"
       "cpsie i\n"
       "cpsie f\n"
       "dsb\n"
       "isb\n"
       "svc 0\n" /* System call to start first task. */
       "nop\n" : "r"(stack_addr));
}

static void vPortEnableVFP( void )
{
  *cpasr_ptr = *cpasr_ptr | (0xf << 20);
}