bootloader中的堆栈地址设计依据?

clleady 2011-03-02 01:22:52
请问bootloader中的堆栈地址设计依据?为什么要设置设置?谢谢。
UserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800 ~
SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~
UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~
AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~
IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000 ~
FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000 ~
...全文
85 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wangjinquan29 2012-07-16
在程序运行过程中,可能会发生中断等其他情况,需要用堆栈来保存
回复
子愚 2011-03-02
从这个地址来看,你的RAM大小是64M的!堆栈的设置方式一般都是放在RAM的最后的!Dispaly的framebuffer一般也是放在后面的,当然如果你能保证它们的地址不被其他程序影响到,你也可以放在其他的地方!

你上面列举了那么多,其实用到的是很少的。bootloader中一般只会用到SVC Stack IRQ和FIQ Stack(这个也基本本不用)!

程序函数的运行必不可少的需要用到堆栈的,你看linux下的lds文件的时候,你会发现里面有设置stack的起始地址和末地址的!
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2011-03-02 01:22
社区公告
暂无公告