最近在学习uC/OS-III,有些疑问,向大家请教:
在系统启动时,MCU的主堆栈指针MSP默认指向“系统堆栈”,大小也就是“Startup_
STM32f40_41xxx.s文件中Stack_Size EQU 0x00000400决定”,但是uC/OS-III启动时,
为什么单独定义主堆栈,而不采用默认的系统堆栈,在开始多任务函数OSStartHighRdy()函数中,将OS_CPU_ExceptStkBase赋值给MSP:
LDR R0, =OS_CPU_ExceptStkBase
; Ini
tialize the MSP to the OS_CPU_ExceptStkBase
LDR R1, [R0]
MSR MSP, R1
问题:为什么单独定义异常中断堆栈,而不采用默认的系统堆栈?