This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/CC2640:Task_delete 引起异常

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/565862/rtos-cc2640-task_delete-causes-exception

器件型号:CC2640

工具/软件:TI-RTOS

我正在尝试使用 Task_delete 删除任务。 这会引发一个异常、程序似乎卡在 XDC_RAuntime_Error_PolicySpin__E 中  

我在删除之前添加了 Task_setPri (-1)、但这不能解决问题。 我已经连接了调用堆栈和反汇编。

#define SERVO_TASK_STACK_SIZE 480
特性伺服任务堆栈[SERVO_TASK_STACK_SIZE];
Task_Handle 伺服任务处理;

void createServoTask (){

Task_Params taskParams;

Task_Params_init (&taskParams);
taskParams.stack = servoTaskStack;
taskParams.STACKSIZE = serving_task_stack_size;
taskParams.priority = 5;

伺服任务处理= Task_create (taskFuncServo、&taskParams、NULL);
}

void deleteServoTask (){
if (servoTaskHandle){
Task_setPri (servoTaskHandle、-1);
Task_delete (&servoTaskHandle);
}
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我可以想到这种情况可能会发生的几个原因:

    • Task_delete ()可被从中断上下文调用、这是不允许的。
    • 可以启用自动删除已终止任务、在这种情况下、不允许应用程序代码删除任务。
    • 当前运行的任务是调用 Task_delete ()的任务,不允许这样做。

    谢谢、
    Gerardo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有一个建议的答案、由于此主题在一周内未激活、建议的答案被标记为验证。 请随意选择"拒绝回答"按钮、并回复更多详细信息。