请问浪淘沙,在IAR EWARM中如何设定堆栈大小呢 我打开demo程序,看到例程设定堆栈大小程序始下?
;****************************************************************************** ; ARM处理器支持7种运行模式,其中6种是特权模式,一种是用户模式。除用户模式和系统 ; 模式外其他都是异常模式。每种处理器模式使用不同的寄存器组,并有自己独立的物理 ; 寄存器R13(SP)。所以在初始化时要将SP指向其运行模式的栈空间。 ;******************************************************************************
MODULE ?program_start ; Begins a library module RSEG IRQ_STACK:DATA(2) RSEG FIQ_STACK:DATA(2) RSEG UND_STACK:DATA(2) RSEG ABT_STACK:DATA(2) RSEG SVC_STACK:DATA(2) RSEG CSTACK:DATA(2) RSEG ICODE:CODE:NOROOT(2) ; NOROOT指定此段中如 PUBLIC __program_start ; Export symbles to other module EXTERN ?main ; Import an external symble CODE32 ; Generate 32-bit ARM instruction
MSR CPSR_c, #Mode_ABT|F_Bit|I_Bit ldr sp,=SFE(ABT_STACK) & 0xFFFFFFF8 ; End of ABT_STACK
MSR CPSR_c, #Mode_UNDEF|F_Bit|I_Bit ldr sp,=SFE(UND_STACK) & 0xFFFFFFF8 ; End of UND_STACK
MSR CPSR_c, #Mode_SVC|F_Bit|I_Bit ldr sp,=SFE(SVC_STACK) & 0xFFFFFFF8 ; End of SVC_STACK
...................... SFE()到的是一个怎样的函数,我在library 中找不到 仿真时可以看到堆栈大小为0x100,请问这是怎么得来的呀.
|