在程序开发过程中遇到的程序死机问题
导致死机的原因:内存溢出,堆栈溢出,数组越界,中断错误。。。。。。
出现这个问题,首先查看线程的调度关系
看最后是在哪个位置死机,如果rt_current_thread在main_thread,指针停止在hardfault函数里面的while循环里。
是堆栈溢出,打开rtcongfig.h文件,查看the stack size of main thread是否设置的太小,而程序中使用到的栈空间超过了这个值,就会出现堆栈溢出问题。
还有Maximal level of thread priority是指最大的优先级数,注意程序中设置的线程优先级也不能超过这个值。
修改好之后,可解决堆栈溢出导致死机的问题。