天嵌 ARM开发社区

 找回密码
 注册
查看: 2000|回复: 2

u-boot堆栈设置疑问

 关闭 [复制链接]
Romatom 发表于 2012-11-12 10:37:25 | 显示全部楼层 |阅读模式
操作系统移植之前,bootloader的移植或编写是不可逾越的一步。但是我查阅了不少的资料,包括我阅读源码(本人是个初学者)。我发现:
1、TQ2440给test2440试验中的启动代码对栈的初始化,其完成了对6中处理器工作模式下的栈区的初始化,代码如下:
;function initializing stacks
InitStacks
;Do not use DRAM,such as stmfd,ldmfd......
;SVCstack is initialized before
;Under toolkit ver 2.5, 'msr cpsr,r1' can be used instead of 'msr cpsr_cxsf,r1'
mrs r0,cpsr
bic r0,r0,#MODEMASK
orr r1,r0,#UNDEFMODE|NOINT
msr cpsr_cxsf,r1  ;UndefMode
ldr sp,=UndefStack  ; UndefStack=0x33FF_5C00
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
bic r0,r0,#MODEMASK|NOINT
orr r1,r0,#SVCMODE
msr cpsr_cxsf,r1  ;SVCMode
ldr sp,=SVCStack  ; SVCStack=0x33FF_5800
;USER mode has not be initialized.
mov pc,lr
;The LR register will not be valid if the current mode is not SVC mode.
LTORG

注释说 “ SVCstack is initialized before ” 可是我好想没有看到。

问题2:在u-boot中,源码和资料好想都显示,在u-boot中没有对每一种工作模式下的栈区和堆栈指针进行初始化,好想是只对IRQ和FRQ下的SP进行了初始化,都不知道到底是怎么回事儿了?

大侠们,初学者,说错话了或问题,原谅了,万谢!!!!!!!
 楼主| Romatom 发表于 2012-11-12 14:11:27 | 显示全部楼层
求助啊:):):)
亚瑟王 发表于 2012-11-12 14:37:23 | 显示全部楼层

回帖奖励 +3

警告一下,不要重复发帖,这个帖子给你关闭了。详情见另外一个帖子:http://www.armbbs.net/forum.php?mod=viewthread&tid=14203
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-15 09:48 , Processed in 1.062493 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表