我正在使用VisualGFX爲我的STM32F429i-Discovery板開發用戶界面。 VisualGFX內置了freeRTOS用法,創建一個GUITask來處理GUI操作。然後,我嘗試使用freeRTOS中的xTaskCreate API函數創建一個名爲ControllerTask的新任務,這與創建GUITask的功能相同。FreeRTOS宣佈第二個任務後即刻卡住
但是,只要我創建第二個任務,GUITask在我的GUI上顯示一些奇怪的值,並且沒有功能。
int main(void){
...
xTaskCreate(GUITask, (TASKCREATE_NAME_TYPE)"GUITask",
configGUI_TASK_STK_SIZE,
NULL,
configGUI_TASK_PRIORITY,
NULL);
xTaskCreate (ControllerTask, (TASKCREATE_NAME_TYPE)"ControllerTask",
configController_TASK_STK_SIZE,
NULL,
configController_TASK_PRIORITY,
NULL);
vTaskStartScheduler();
for (;;);
上面的代碼顯示了創建兩個任務。 GUITask的優先級高於ControllerTask的優先級。下一段代碼顯示了Task的實現。
static void GUITask(void* params)
{
touchgfx::HAL::getInstance()->taskEntry();
}
static void ControllerTask(void* params)
{
while(1)
{
vTaskDelay(3000);
}
}
如可以看到的,在這個時刻的ControllerTask的實施僅延緩任務爲每個它被切換到時間約3秒。
但是,GUITask卡住了,沒有GUI更新或交互是可能的。
您是否檢查過'xTaskCreate'的返回值? –
@DKrueger,我沒有檢查過。我該怎麼做 ?它應該是什麼? – 4DaMouf
您是否看到[The man](http://www.freertos.org/a00125.html).... – LPs