systick is not working after jump.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-26 9:59 PM
below are the codes(0x0801E000U) which is used for jump:
#define PROJ1_FLASHADDR 0x08000000U
#define PROJ2_FLASHADDR 0x0801E000U
__disable_irq();
/* Get the main application start address */
uint32_t jump_address = *(__IO uint32_t *)(PROJ1_FLASHADDR + 4);
/* Set the main stack pointer to to the application start address */
__set_MSP(*(__IO uint32_t *)PROJ1_FLASHADDR);
/* Create function pointer for the main application*/
void (*pmain_app)(void) = (void (*)(void))(jump_address);
/* Now jump to the main application*/
pmain_app();
i am also enabling irq in the beginning of main function.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 2:37 AM
Seems like a statement of facts rather than a question.
Make sure SCB​->VTOR points to the vector table properly
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 2:42 AM
SCB->VTOR is points to correct vector table. i checked it.
i think my systick is not working properly after jump.
any suggestion will be very helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 3:14 AM
find your systick interrupt vector entry address in your new vector table. check that​ there is correct code in that address.
also capture systick registers before jump and compare with the values after jump
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 5:50 AM
Are you performing the jump within an interrupt?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 5:52 AM
Hi TDK,
i am not performing jump in an ISR.
jump performing in a task of freertos.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 5:55 AM
> __disable_irq();
Do you enable interrupts after jumping?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 6:02 AM
yes,
right after entering the main function.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 10:51 AM
>>jump performing in a task of freertos.
You'd likely want to do it from a system state.
Consider if you can generate a reset, and then transfer control immediately in Reset_Handler.
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-07-27 9:04 PM
for my project jump is required not reset.
how i can switch to system state from a task?
