最近在ST的STA8090上做项目开发,遇到个比较棘手的问题。希望各位大神能帮忙指点一下。
环境:STA8090芯片+FreeRTOS+SDK固件库
目的:需要挂起线程
我在代码里加了几个下面这样的任务做测试用。使用vTaskSuspend(xTest1Process)和vTaskResume(xTest1Process)能正常把线程挂起和恢复(有相应的PrintfStr函数LOG输出)。可是,当我挂起其他更复杂,任务里边会用到信号量,中断之类的,就会无法挂起,调用挂起函数后,串口仍然有相应任务的LOG信息输出。各位大神,这问题怎么破,在线等,感谢!
static void test1_process(void *pvParameters)
{
tU32 Time = 0;
(void)pvParameters;
portTickType xDelay = pdMS_TO_TICKS(500);
while(1)
{
Time++;
IWDG_ReloadCounter();
PrintfStr(">> test 1 process run\r\n");
vTaskDelay(xDelay);
}
}
// 创建任务
xTaskCreate(test1_process, "test1_task_ws", 1024, NULL, 14, &xTest1Process);
|