在一个 RT_Thread 线程中 调用一个函数,在这个函数中调用一个接口后,线程会报stack_overflow,但是把这段代码放到函数外面,放到该函数后面,运行就没问题,线程的堆栈512字节,也足够了,不知道为啥在函数里面不行,在外面可以,排查了两天了,毫无头绪;调用的函数其实也很简单,没什么复杂的操作,就是很奇怪 放里面不行,放外面行
增大task的stack试试。
出问题是因为放在循环里吧,在循环里堆栈会一直累加不被释放,很快就就不够了。
这个外部函数里面是什么?
感觉是循环创建,并没有释放,static
那是你那个函数的栈空间需求太大了
一个放主线程,一个放RT_thread 能一样吗?