问题
C语言编写的,判断从nor启动还是nand启动的函数在编译链接时,函数并没有完全编译, 反汇编结果如下(红色字体部分), 请老师帮忙看看是什么原因, 谢谢!
c函数如下:
int isBootFromNorFlash(void)
{
vola
tile int *p = (volatile int *)0;
int val;
val = *p;
*p = 0x12345678;
if (*p == 0x12345678)
{
*p = val;
puts("boot from nor.nr");
return 0;
}
else
{
puts("boot from nand.nr");
return 1;
}
}
反汇编结果如下,红色字体部分,只编译了前面几行命令,后面都没有了。
33f802f8: e3510000 cmp r1, #0
33f802fc: 1afffff8 bne 33f802e4
33f80300: e12fff1e bx lr
33f80304 :
33f80304: e3a03000 mov r3, #0
33f80308: e5933000 ldr r3, [r3]
33f8030c: e7f000f0 udf #0
33f80310 :
33f80310: e59f2034 ldr r2, [pc, #52] ; 33f8034c
33f80314: e59fc034 ldr ip, [pc, #52] ; 33f80350