Add an cpsie i before the SVC call that starts the scheduler. This is just in case the C start up code leaves interrupts globally disabled.

pull/1/head
Richard Barry 14 years ago
parent 6046eea342
commit a67c624894

@ -155,7 +155,9 @@ void vPortStartFirstTask( void )
" ldr r0, [r0] \n" " ldr r0, [r0] \n"
" ldr r0, [r0] \n" " ldr r0, [r0] \n"
" msr msp, r0 \n" /* Set the msp back to the start of the stack. */ " msr msp, r0 \n" /* Set the msp back to the start of the stack. */
" cpsie i \n"
" svc 0 \n" /* System call to start first task. */ " svc 0 \n" /* System call to start first task. */
" nop \n"
); );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

@ -51,13 +51,6 @@
licensing and training services. licensing and training services.
*/ */
/*
Change from V4.2.1:
+ Introduced usage of configKERNEL_INTERRUPT_PRIORITY macro to set the
interrupt priority used by the kernel.
*/
#include <FreeRTOSConfig.h> #include <FreeRTOSConfig.h>
/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is /* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
@ -157,6 +150,7 @@ vPortStartFirstTask
/* Set the msp back to the start of the stack. */ /* Set the msp back to the start of the stack. */
msr msp, r0 msr msp, r0
/* Call SVC to start the first task. */ /* Call SVC to start the first task. */
cpsie i
svc 0 svc 0
END END

@ -149,7 +149,9 @@ __asm void vPortStartFirstTask( void )
/* Set the msp back to the start of the stack. */ /* Set the msp back to the start of the stack. */
msr msp, r0 msr msp, r0
/* Call SVC to start the first task. */ /* Call SVC to start the first task. */
cpsie i
svc 0 svc 0
nop
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

Loading…
Cancel
Save