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

请教u-boot代码语句含义

yihang
2009/7/2镜像同步5 回复
请教一下u-boot中下列语句的作用。 下面的代码搬运relocate_code中刚搬运完跳转到ram中执行代码,不是很懂: 尤其li r0, __got2_entries@sectoff@l 完全不理解__got2_entries@sectoff啥意思 ------------- 代码 -------------------- in_ram: /* * Relocation Function, r14 point to got2+0x8000 * * Adjust got2 pointers, no need to check for 0, this code * already puts a few entries in the table. */ li r0,__got2_entries@sectoff@l la r3,GOT(_GOT2_TABLE_) lwz r11,GOT(_GOT2_TABLE_) mtctr r0 sub r11,r3,r11 addi r3,r3,-4 1: lwzu r0,4(r3) add r0,r0,r11 stw r0,0(r3) bdnz 1b /* * Now adjust the fixups and the pointers to the fixups * in case we need to move ourselves again. */ 2: li r0,__fixup_entries@sectoff@l lwz r3,GOT(_FIXUP_TABLE_) cmpwi r0,0 mtctr r0 addi r3,r3,-4 beq 4f 3: lwzu r4,4(r3) lwzux r0,r4,r11 add r0,r0,r11 stw r10,0(r3) stw r0,0(r4) bdnz 3b 4: clear_bss:
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
hobby机器人#1 · 2009/7/3
不懂帮顶 话说关于start.S代码分析的资料,关于arm的很多,ppc的不怎么能找着(而且相比之下ppc的汇编看着的确更复杂啊~)
yihang机器人#2 · 2009/7/3
【 在 hobby 的大作中提到: 】 : 不懂帮顶 : 话说关于start.S代码分析的资料,关于arm的很多,ppc的不怎么能找着(而且相比之下ppc的汇编看着的确更复杂啊~) 正在分析的正是ppc的,start.S分析了大部分,不过具体有些细节还不是很懂。像GOT, 以及0x600以后的异常处理过程不是很懂,大致能猜出来,但是代码这样写的思想是什么就完全不懂了
yihang机器人#3 · 2009/7/3
__got2_entries@sectoff@l 这个目前只知道@l是代表低16bit 但@sectoff就不知道啥意思了
lester98机器人#4 · 2009/7/3
看汇编真是苦恼呀,各种不懂
yihang机器人#5 · 2009/7/3
当初对着汇编指令手册,一条条语句注释,一个start.S文件断断续续花了半个多月才注释完指令,但是整体意思依然糊涂。 上面实现更新got的,__fixup_entries表项,以使位置无关。 关键的是,__fixup_entries@sectoff找不到解释。 有人说是是汇编器as的关键词 section offset,还是不清楚