cancel
Showing results for 
Search instead for 
Did you mean: 

Custom BootLoader jump to FreeRTOS application

pfifre
Associate II
Posted on May 19, 2014 at 10:23

Hi all,

I've develop a specific bootloader which calling my application.

My application is based on FreeRTOS.

When the application starts after the jump, the firmware crashes in hardfault.

It works fine when I don't use the FreeRTOS scheduler.

I've tested my application (with FreeRTOS enabled) by loading it with the debugger and it works fine.

FreeRTOS starts their tasks by calling SVC.

Then, i've try also to replace the FreeRTOS scheduler starting by a simply __asm volatile (''svc 0'') and I reproduce the same issue.

The application address is 0x0800C000.

Like clive suggested, I have use a system call in my bootloader :

void SVC_Handler(void)

{

pFunction  Jump_To_Application;

uint32_t  JumpAddress;

/* Jump to user application */

JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);

Jump_To_Application = (pFunction) JumpAddress;

__disable_irq();

/* Initialize user application's Stack Pointer */

__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);

Jump_To_Application();

}

I've checked the VECT_TAB_OFFSET in system_stm32f4xx.c to set it to 0xC000.

Can anybody help me ?

Thanks a lot,

Pascal

#stm32-freertos
30 REPLIES 30
Posted on March 16, 2017 at 16:47

A lot of content got damaged in the transition to Jive. Use the SEARCH function to find content relevant to your query.

I've fixed the dead-links above, but there are probably some below those, I don't have time go fix the forum, that's ST's job (you broke, you fix it)

Perhaps rather than posting against 3 year old threads, start a new one, citing the old threads, providing full context of your current issue, and what you've tried from the old ones.

Issues with the F7 parts are likely to be nuanced by things unique to those parts, you'll need to be specific about what 'problem' you are having.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..