uboot中的死循环测试

时间:2012-07-17 07:57:42

标签: assembly arm u-boot

.globl _start
_start: bl      dead_loop
        ldr     pc, _start
        ldr     pc, _undefined_instruction
        ldr     pc, _software_interrupt
        ldr     pc, _prefetch_abort
        ldr     pc, _data_abort
        ldr     pc, _not_used
        ldr     pc, _irq
        ldr     pc, _fiq

dead_loop:
        nop
        mov pc, lr

我想做一个uboot死循环测试,但发现它跳出了假定的循环,我的代码有什么问题,它在start.S。

1 个答案:

答案 0 :(得分:0)

目前无法测试缺少ARM交叉编译器,但您似乎只是缺少=。使用

ldr pc, =_start

如果您想要的是“立即跳转”。否则,汇编程序会将上述内容视为等于ldr pc, [ pc, ... ],这很可能不是您想要的。

注意ADRLDR伪指令之间的差异;在您的情况下,adr pc, _start会与ldr pc, =start相同。