求助!!周立功lpc2131例程的启动代码以及堆栈的几个问题
满递减堆栈中 SP指向最下面一个压入的数据那就是说再向堆栈压数据的话就是先SP-4 在放数据了
我的问题是
当栈空的时候 SP指向哪
启动代码中有这样一句
StackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4
按他这样stacksvc指栈顶 满递减压栈
那数据岂不是从第2个字开始存储吗栈顶岂不是没有数据了
假设堆栈空间是100~199 满栈时 我执行压栈指令 是否能继续压 还是能编译错误
栈空时 是否能继续推?(哪怕推出来的不知道是什么数据)
启动代码最开始定义了5个堆栈长度
SVC_STACK_LEGTH EQU 0
FIQ_STACK_LEGTH EQU 0
IRQ_STACK_LEGTH EQU 256
ABT_STACK_LEGTH EQU 0
UND_STACK_LEGTH EQU 0
这样可以吗除了IRQ其他的都是0
SvcStackSpace SPACE SVC_STACK_LEGTH * 4;Stack spaces for Administration Mode 管理模式堆栈空间
这条语句管理模式的堆栈空间是系统自动分配的吗?还是有其他语句制定具体地址
如果SVC_STACK_LEGTH=100那就是说 可能在100~500也可能在200~600是吗
AREA Stacks, DATA, NOINIT
StackUsr
这段语句里没有给出USR的具体地址
是不是默认其他未分配的空间都可以当做USR的堆栈
初学者可能问题很低级
书上实在找不到解释
希望各位大侠能指点指点
谢谢 不要一言不发啊
好歹来说两句啊。。。 我也在初学嵌入式,帮顶,坐等楼下强人解释 没有高手指点。我也是初学者
页:
[1]