mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
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.
This commit is contained in:
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"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details. You should have received a copy of the GNU General Public
|
more details. You should have received a copy of the GNU General Public
|
||||||
License and the FreeRTOS license exception along with FreeRTOS; if not it
|
License and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||||
by writing to Richard Barry, contact details for whom are available on the
|
by writing to Richard Barry, contact details for whom are available on the
|
||||||
FreeRTOS WEB site.
|
FreeRTOS WEB site.
|
||||||
|
|
||||||
|
@ -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…
Reference in a new issue