程序执行完汇编的初始化程序后执行
bl Main
转入C语言执行。C语言的开始部分是这样的
int Main(int argc, char **argv)
{
IRQ_Init(); // 中断矢量初始化,先屏蔽所有中断,所有中断都直接返回
........
}
奇怪的是程序一直停止在Main处不能往下执行,反汇编看程序是如此的
Main [0xe92d4010] * stmfd r13!,{r4,r14}
30004254 [0xeb00022f] bl IRQ_Init
30004258 [0xeb002082] bl SysClock_Init
3000425c [0xeb0002c9] bl LcdLight_On
30004260 [0xeb0002da] bl Lcd_Init
用汇编单步执行C程序也不往下,一直停留在 stmfd r13!,{r4,r14} 指令处,如果把 bl IRQ_Init 设置为当前的执行指令,程序却能往下运行,真奇怪啊!
请教!
|