vTaskDelay永不返回
问题描述:
我的应用程序使用FreeRTOS V9.0.0和端口文件Source \ portable \ RVDS \ ARM_CM4F(通过RTE Keil导入)在stm32F4上运行。 主,调用一些初始化函数,创建任务,然后调用vTaskStartScheduler。 该任务只需调用永不返回的vTaskDelay(1000)。系统不是故障。故障报告没有显示任何错误或问题。vTaskDelay永不返回
的代码是:
int main(void)
{
init_foo1()
init_foo2()
xTaskCreate(aTask, "name",1280, NULL, 6, NULL);
init_foo3();
vTaskStartScheduler();
}
void aTask()
{
vTaskDelay(1000);
bar();
}
有什么不对? 感谢所有
答
你需要首先把无限循环:
用法示例的vTaskDelay功能accordinly到documentation:
void vTaskFunction(void * pvParameters)
{
/* Block for 500ms. */
const TickType_t xDelay = 500/portTICK_PERIOD_MS;
for(;;)
{
/* Simply toggle the LED every 500ms, blocking between each toggle. */
vToggleLED();
vTaskDelay(xDelay);
}
}
另外在测试优先xTaskCreate
UBaseType_t uxPriority
未知函数未知行为viour - 正确提出问题 –
函数定义对于这个问题并不是不相关的。 vTaskDelay功能在FreeRTOS文档中定义。行为被提及。还有什么需要? –
如果不是(不要大声对我),请自己寻找解决方案。投票搁置 –