说明:该文档可能会长期更新
报错:"The stack 'CSTACK' is filled to 100% (512bytes used out of 512). The warning threshold is set to 90%. "
出现这个报错就是说栈空间用完了,当然有时候可以忽略这个错误,它只是个warning,在设置断点的时候可能会报出来。忽略之后可能会导致无法设置断点,程序执行异常,复位等情况。
这个问题有以下几种原因:
- 数组越界
检查是否存在数组越界的情况。 - 有FreeRTOS系统(或别的系统)
检查为线程分配的栈空间是否不足 - 临时变量或全局变量过大
建议比较大的临时变量(包括形参),全局变量,使用malloc分配堆空间,只要注意哪里malloc了就对应在哪里free就可以了。 - 函数隐性定义
即没有直接包含其他文件中函数的头文件,在warning中会有提示,解决warning就可以了。
程序中的warning实际上也会提示一些致命错误,只不过这些错误并不影响程序运行起来,没有报error并不保证程序不会崩溃或者按预期运行。
网友评论