I do not know exactly about your OS or board, but this is how I do it on my ARM board using Velos or ucos-ii. I just branch to the start of the code. I will be more helpful, if I can look on the source codes.
BR,
Amr Ali.
AA,
1- What does your software consists off? I mean the bootloader + OS + application statically linked in one file or not.
2- If every thing is in a single image, check ur linker settings for the code entry, find it, then invoke a branch instruction to it whenever a software reset is required.
BR,
Amr Ali.