2017-08-02 12 views
-1

私のアプリケーションは、FreeRTOS V9.0.0でstm32F4上で実行され、ソースファイル\ portable \ RVDS \ ARM_CM4F(RTE Keil経由でインポートされます)のポートファイルで実行されます。 メインでは、いくつかの初期化関数を呼び出し、タスクを作成してから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

不明な関数が不明beha viour - 問題を正しく質問してください。 –

+0

関数の定義はこの問題には関係しません。 vTaskDelay関数は、FreeRTOSのドキュメントで定義されています。行動は言及される。何がまだ必要ですか? –

+0

もしそうでないなら(私には叫ばないでください)、自分で解決策を探してください。保留を取る投票 –

答えて

1

あなたは、まず無限ループを配置する必要があります。accordinly documentationvTaskDelay機能の

使用例:

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 
に優先順位をテスト
関連する問題