2017-08-02 135 views
-1

我的應用程序使用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(); 
} 

有什麼不對? 感謝所有

+0

未知函數未知行爲viour - 正確提出問題 –

+0

函數定義對於這個問題並不是不相關的。 vTaskDelay功能在FreeRTOS文檔中定義。行爲被提及。還有什麼需要? –

+0

如果不是(不要大聲對我),請自己尋找解決方案。投票擱置 –

回答

1

你需要首先把無限循環:

用法示例的

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