请教arm9 中bios 初始化堆栈的问题

[复制链接]
2099|0
 楼主| oiu 发表于 2008-1-9 01:57 | 显示全部楼层 |阅读模式
今天看到如下的代码,相信好多高手也看到过了了,<br />InitStacks<br />&nbsp;&nbsp;&nbsp;&nbsp;mrs&nbsp;&nbsp;&nbsp;&nbsp;r0,cpsr<br />&nbsp;&nbsp;&nbsp;&nbsp;bic&nbsp;&nbsp;&nbsp;&nbsp;r0,r0,#MODEMASK<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#UNDEFMODE|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;UndefMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=UndefStack<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#ABORTMODE|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;AbortMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=AbortStack<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#IRQMODE|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;IRQMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=IRQStack<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#FIQMODE|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;FIQMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=FIQStack<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;bic&nbsp;&nbsp;&nbsp;&nbsp;r0,r0,#MODEMASK|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#SVCMODE<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;SVCMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=SVCStack<br />&nbsp;&nbsp;&nbsp;&nbsp;;USER&nbsp;mode&nbsp;has&nbsp;not&nbsp;be&nbsp;initialized.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;pc,lr&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;;The&nbsp;LR&nbsp;register&nbsp;won't&nbsp;be&nbsp;valid&nbsp;if&nbsp;the&nbsp;current&nbsp;mode&nbsp;is&nbsp;not&nbsp;SVC&nbsp;mode.<br />以上的代码和<br />InitStacks<br />&nbsp;&nbsp;&nbsp;&nbsp;mrs&nbsp;&nbsp;&nbsp;&nbsp;r0,cpsr<br />&nbsp;&nbsp;&nbsp;&nbsp;bic&nbsp;&nbsp;&nbsp;&nbsp;r0,r0,#MODEMASK|NOINT<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;r1,r0,#SVCMODE<br />&nbsp;&nbsp;&nbsp;&nbsp;msr&nbsp;&nbsp;&nbsp;&nbsp;cpsr_cxsf,r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;SVCMode<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;sp,=SVCStack<br />&nbsp;&nbsp;&nbsp;&nbsp;;USER&nbsp;mode&nbsp;has&nbsp;not&nbsp;be&nbsp;initialized.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;pc,lr&nbsp;<br /><br />有什么区别,看不出来啊。请教各位大侠为什么要怎么写?真的不明白怎么回事。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

oiu

28

主题

81

帖子

0

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