void
CallApplication(unsigned long ulBaseAddress)
{
__asm(
"mov r1, #0xE0000000\n"
"add r1, r1, #0x0000ED00\n"
"str r0, [r1,#8]\n"
"ldr sp, [r0], #4\n"
"ldr r0, [r0]\n"
"bx r0\n");
}
这段代码是bootloader的start_ewarm.c里面的
函数调用的时候,
if(CheckForceUpdate() == 0)
{
CallApplication(0x800);
}
但是函数CallApplication里面,看不出来用了0x800这个地址啊,为什么?
另外,为什么每个指令都有双引号,而且还都加了“\n”,是什么意思?
望高手指点!!! |