[讨论]回收main函数所用的栈空间

发布于 2013-06-18 15:26:04
程序跑飞了,查到是中断里面栈写穿了,目标硬件平台是:cortex-m
于是把MSP加大了一些,问题暂时解决。

考虑到系统启动到main()最终于执行到rt_hw_context_switch_to()也是要消耗一些栈的,
而这些栈在系统启动后就浪费掉了,因此可以考虑把这块内存回收,看了一下大概有几十个字节。


rt_hw_context_switch_to:
********
; restore MSP : MSP = *(int *)SCB->VTOR
LDR r0, =SCB_VTOR
LDR r0, [r0]
LDR r0, [r0]
NOP
MSR msp, r0

; enable interrupts at processor level
CPSIE I

; never reach here!
ENDP


后记: 程序发布前应该检查一下所有线程及所有中断ISR的栈消耗情况,同时要算上中断自动压栈的空间。

查看更多

关注者
0
被浏览
1.4k
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览