Цитата
Мне больше нравится вот так:
А какие плюшки от этого?
Вообще конечно из Си-кода менять MSP/PSP не есть комильфо, но с другой стороны не вижу криминала, если в функцию перехода на приложение не передавать никаких параметров.
Цитата
0x1d01, // adds r1, r0, #4
0x6800, // ldr r0, [r0, #0]
0x4685, // mov sp, r0
0x6809, // ldr r1, [r1, #0]
0x4708 // bx r1
Страшно

И не будь тут комментариев, показалось бы ужасным костылем

Ведь функцию по сути можно было написать чисто на ассемблере (хоть в отдельном .s файле, либо внутри Си-функции инлайн-ассемблером).