BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #4786同步于 2009/5/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

求教:U-Boot 汇编代码部分 (cpu -- PowerPC)

yihang
2009/5/13镜像同步2 回复
u-boot 代码中有下面最后4句(标记部分)不懂,求教,谢谢 /* Alignment exception. */ // 对齐中断 . = 0x600 Alignment: EXCEPTION_PROLOG // ppc_asm.tmpl的宏定义,异常入口代码,可运行在无地址转换功能时 mfspr r4,DAR stw r4,_DAR(r21) // _DAR(180) _DSISR(184) _LINK(160) 在include/ppc_defs.h中定义 mfspr r5,DSISR // DSISR(0x012) include/asm_ppc.h stw r5,_DSISR(r21) addi r3,r1,STACK_FRAME_OVERHEAD li r20,MSR_KERNEL rlwimi r20,r23,0,16,16 /* copy EE bit from saved MSR */ rlwimi r20,r23,0,25,25 /* copy IP bit from saved MSR */ lwz r6,GOT(transfer_to_handler) // lwz r6, .L_transfer_to_handler(r14) ppc_asm.tmpl定义GOT(NAME) mtlr r6 blrl .L_Alignment: .long AlignmentException - _start + EXC_OFF_SYS_RESET .long int_return - _start + EXC_OFF_SYS_RESE 主要上面的标示部分, 尤其是最后4句是干嘛用的,不懂。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
hobby机器人#1 · 2009/5/14
字面上看,是把这段代码(transfer_to_handler)的偏移地址装到r6里面 然后将将r6的内容装入spr 8寄存器(LR-link register)当中 PS:网上有关于GOT的解释,没太细看,需要的话,你可以再查查
yihang机器人#2 · 2009/5/14
blrl .L_Alignment: .long AlignmentException - _start + EXC_OFF_SYS_RESET .long int_return - _start + EXC_OFF_SYS_RESE 最主要是这四句不懂,后面两个地址干嘛用的不懂。 GOT解释正在分析