今天调了个平衡车,主函数死活起不来,总进Hardfault,调了一天的堆栈大小……
开始之前,强调一下:RT-Thread相关的Hardfault几乎都是栈溢出!!!
首先需要注意的是:main()的堆栈由操作系统管理!!!调整时在rtconfig.h中修改:
#define RT_MAIN_THREAD_STACK_SIZE 1024
此处默认512字节,出问题了就往上加
然后是其他任务的栈,在我这边一般来说,如果涉及浮点运算就用512,不涉及就用128
还有一点:MSP的堆栈大小,在我这次测试中给1K刚好合适