[SOLVED] Decryption bootloader

Thanks for your answer ard_newbie,

The problem is I don't want to send a simple binary to customers and I'm realy interested by it.

I've some good notions in assembly and for now I just try to launch an application based at address 0x88000.

void _binExec (void * l_code_addr)
{
	__asm (	"mov	r1,	r0			\n"
			"ldr	r0,	[r1, #4]	\n"
			"ldr	sp, [r1]		\n"
			/*"msr	msp, [r1]		\n"*/
			"blx	r0"
	);
}

unsigned int main (void)
{
	void * vAppStartAddress = (void *)((unsigned int) 0x88000);
	_binExec(vAppStartAddress);
	return (unsigned int) vAppStartAddress;
}

So I load this code at address 0x80000 (start of flash), set GPNVM1 (boot from flash), and load my app at address 0x88000.
It's very simple but I think I don't launch my app correctly.