问题描述
当线程被“osThreadTerminate”函数终止时,它处于哪种状态?
功能如下:
void High_Thread(void const *argument)
{
while(1)
{
GPIOE->DOUT_BYTE=0xFF;
osThreadTerminate(ThreadId_high
}
}
解决方法
这是 CMSIS 实时操作系统。线程是不返回的简单函数。当您删除线程(我认为在这种情况下更好的名称是任务)时,任务堆栈和 TCB(任务控制块)将从 RTOS 堆中删除。
移除的任务不存在,也不处于任何状态。任务代码不改变,因为它驻留在非易失性存储器(FLASH)中
phthreads
与 CMSIS RTOS 没有任何共同点,我已删除此标签。