arm2440堆栈初始化问题?

[复制链接]
2499|2
 楼主| clleady 发表于 2010-11-10 22:34 | 显示全部楼层 |阅读模式

orr
r1,r0,#ABORTMODE|NOINT


msr
cpsr_cxsf,r1
;AbortMode


ldr
sp,=AbortStack
; AbortStack=0x33FF_6000



orr
r1,r0,#IRQMODE|NOINT


msr
cpsr_cxsf,r1
;IRQMode


ldr
sp,=IRQStack
; IRQStack=0x33FF_7000



orr
r1,r0,#FIQMODE|NOINT


msr
cpsr_cxsf,r1
;FIQMode


ldr
sp,=FIQStack
; FIQStack=0x33FF_8000


请问,这是堆栈初始化,我也知道他是把各各模式的值放入cpsr,然后然指针指向各各中断地址,但是我觉得这有种覆盖的感觉,从上执行到下后,我认为cpsr的值就是FIQMode,sp的值就是FIQStack=0x33FF_8000,那么其他模式不就没有初始化化吗?我有点搞不清楚这段语句的意思了,谢谢高手指点!
HWM 发表于 2010-11-10 23:19 | 显示全部楼层
不同模式有其自身的SP,因此是不会覆盖地。
wwqxs 发表于 2011-1-17 17:00 | 显示全部楼层
地球分为好多个国家,每个国家都有一个首都,你有好多个分身在每一个国家,而你的这些分身只能一个处于活动状态,最后你在美国的分身活动了,其它的分身就定格了,同样的道理如同ARM的mode
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:活到老学到老

219

主题

477

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部