陈老师好!
在LPC2214(RAM空间起始0x40000000,长度0x4000)移植uCOSII, 范例中使用以下语句分配了系统模式堆栈
AREA Stacks, DATA, NOINIT StackUsr
在系统初始化时设置如下 ;设置系统模式堆栈 MSR CPSR_c, #0xdf LDR SP, =StackUsr
在Keil环境下,使用ADS1.2编译工具,可以观察到SP指针被设 为0x40004000,即被设到了内存的最顶端,得到了最大的栈空间。
我将此程序移植到Keil环境下,但使用编译工具RVCT3.0(RealView) 堆栈分配、设置的语句没有改变(Target页中的IRAM1选项填写正确), 但SP指针无法指到内存的最顶端,而是得到0x40001274之类。显然是 AREA Stacks, DATA, NOINIT StackUsr 没有分配到最大的栈空间。
请问陈老师,应该在程序中如何设置,才能得到正确的结果呢? |