From 206f765a129a285e5db70505d2c1154564046ac8 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Sun, 7 Jul 2019 09:49:05 +0200 Subject: [PATCH] common: Implement jump_to_application(). --- src/common/startup.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/common/startup.c b/src/common/startup.c index daa8906..0a5507a 100644 --- a/src/common/startup.c +++ b/src/common/startup.c @@ -150,3 +150,17 @@ Dummy_Handler (void) for (;;) { } } + +void +jump_to_application (volatile uint32_t *address) +{ + volatile uint32_t *vtor = (uint32_t *) 0xe000ed08; + *vtor = (uint32_t) address; + + asm volatile ("" ::: "memory"); + asm volatile ("msr msp, %0" :: "r" (*(address + 0)) : "sp"); + asm volatile ("bx %0" :: "r" (*(address + 1))); + + for (;;) { + } +} -- 2.30.2