It does not work properly FreeRTOS and STM32
Hi,
Recently I have problem with my CrossWorks and my project running under FreeRTOS.
I am using external build toolchain:
- arm-none-eabi-gcc (Sourcery G++ Lite 2010.09-51) 4.5.1,
- KT-LINK JTAG and
- Crossworks for ARM Release 2.1.1.2011080305.11906 (for debugging)
The CPU is STM32103ZE, the same as in STM32-LCD (Olimex).
I was very pleased to work with this combination till I was forced to reinstall my OS (windows). Under new OS I cannot debug my project properly because, the FreeRTOS cannot start. When I look with my debugger I can see that CPMU is executing infinite loop in the following code:
void vPortStartFirstTask( void )
{
__asm volatile(
" ldr r0, =0xE000ED08 \n" /* Use the NVIC offset register to locate the stack. */
" ldr r0, [r0] \n"
" ldr r0, [r0] \n"
" msr msp, r0 \n" /* Set the msp back to the start of the stack. */
" cpsie i \n" /* Globally enable interrupts. */
" svc 0 \n" /* System call to start first task. */
" nop \n"
);
}
The code has no errors because everything works OK when I download it to target using OpenOCD or disconnect the JTAG.
I have assumption that this behavior can be associated with resetting CPU. Does Board Packet has been updated after May 2011?
Could anyone know how to resolve this issue?
Please sign in to leave a comment.
Comments
0 comments