1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/firmware/thread.c b/firmware/thread.c
index 54d966f..cfd4251 100644
--- a/firmware/thread.c
+++ b/firmware/thread.c
@@ -704,7 +704,7 @@ static void __attribute__((naked))
         "mov    sp, r2                   \n" /* switch stacks */
         "adr    r2, 1f                   \n" /* r2 = new core restart address */
         "str    r2, [r1, #40]            \n" /* thread->context.start = r2 */
-        "ldr    pc, =switch_thread       \n" /* r0 = thread after call - see load_context */
+        "bx     switch_thread            \n" /* r0 = thread after call - see load_context */
     "1:                                  \n"
         "ldr    sp, [r0, #32]            \n" /* Reload original sp from context structure */
         "mov    r1, #0                   \n" /* Clear start address */