#include <STM32FreeRTOS.h>
// Task Body
void task(void *pvParameters)
{
UBaseType_t prio;
TickType_t nowTick;
prio = uxTaskPriorityGet( NULL );
nowTick = xTaskGetTickCount();
printf("[%s:%d] start
Priority=%d\n",pcTaskGetName(0),nowTick,(int)prio);
vTaskDelay(10000 / portTICK_PERIOD_MS);
nowTick = xTaskGetTickCount();
printf("[%s:%d]
end\n",pcTaskGetName(0),nowTick);
vTaskDelete( NULL );
}
//------------------------------------------------------------------------------
void setup() {
portBASE_TYPE xTask;
Serial.begin(115200);
Serial.println("setup() start");
Serial.print("configTICK_RATE_HZ:");
Serial.println(configTICK_RATE_HZ);
Serial.print("portTICK_PERIOD_MS:");
Serial.println(portTICK_PERIOD_MS);
Serial.print("freeRTOS version:");
Serial.println(tskKERNEL_VERSION_NUMBER);
xTask = xTaskCreate(task, "Task",
configMINIMAL_STACK_SIZE, NULL, 2, NULL);
configASSERT( xTask );
#if 0
// start scheduler
Serial.println("Start Scheduler.....");
vTaskStartScheduler();
#endif
while (1) {
Serial.println("setup alive...");
delay(1000);
}
}
//------------------------------------------------------------------------------
// WARNING loop() called from vApplicationIdleHook(), so
don't use this function.
// loop must never block
void loop() {
// Not used.
}
|