首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

bootloader中的堆栈地址设计根据

2012-07-30 
bootloader中的堆栈地址设计依据?请问bootloader中的堆栈地址设计依据?为什么要设置设置?谢谢。UserStackEQ

bootloader中的堆栈地址设计依据?
请问bootloader中的堆栈地址设计依据?为什么要设置设置?谢谢。
UserStackEQU(_STACK_BASEADDRESS-0x3800);0x33ff4800 ~
SVCStackEQU(_STACK_BASEADDRESS-0x2800);0x33ff5800 ~
UndefStackEQU(_STACK_BASEADDRESS-0x2400);0x33ff5c00 ~
AbortStackEQU(_STACK_BASEADDRESS-0x2000);0x33ff6000 ~
IRQStackEQU(_STACK_BASEADDRESS-0x1000);0x33ff7000 ~
FIQStackEQU(_STACK_BASEADDRESS-0x0);0x33ff8000 ~


[解决办法]
从这个地址来看,你的RAM大小是64M的!堆栈的设置方式一般都是放在RAM的最后的!Dispaly的framebuffer一般也是放在后面的,当然如果你能保证它们的地址不被其他程序影响到,你也可以放在其他的地方!

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

程序函数的运行必不可少的需要用到堆栈的,你看linux下的lds文件的时候,你会发现里面有设置stack的起始地址和末地址的!

热点排行