我的应用程序在stm32F4上使用FreeRTOS V9.0.0和端口文件Source \ portable \ RVDS \ ARM_CM4F(通过RTE Keil导入)运行。 主要是调用一些初始化函数,创建任务然后调用vTaskStartScheduler。 该任务只调用永不返回的vTaskDelay(1000)。系统不是故障。故障报告不会显示任何错误或问题。
代码是:
int main(void)
{
init_foo1()
init_foo2()
xTaskCreate(aTask, "name",1280, NULL, 6, NULL);
init_foo3();
vTaskStartScheduler();
}
void aTask()
{
vTaskDelay(1000);
bar();
}
有什么问题? 谢谢大家
答案 0 :(得分:1)
首先需要放置无限循环:
根据documentation vTaskDelay 功能的使用示例:
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