feat(freertos): Add application task tag support

This commit enables support for application task tag.

- Added CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG option
- Added basic unit test
This commit is contained in:
Darian Leung
2024-03-08 21:47:46 +08:00
parent c460e1cd7e
commit 1332f2934a
4 changed files with 47 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "unity.h"
#include "test_utils.h"
#if CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG
static BaseType_t tag_cb(void *arg)
{
BaseType_t *tag_cb_called = (BaseType_t *)arg;
*tag_cb_called = pdTRUE;
return pdTRUE;
}
TEST_CASE("Test application task tag", "[freertos]")
{
BaseType_t tag_cb_called = pdFALSE;
// Set the app task tag for current task
vTaskSetApplicationTaskTag(NULL, tag_cb);
// Check app task tag is correct
TEST_ASSERT_EQUAL(tag_cb, xTaskGetApplicationTaskTag(NULL));
// Test the app task tag by calling it
TEST_ASSERT_EQUAL(pdTRUE, xTaskCallApplicationTaskHook(NULL, (void *)&tag_cb_called));
TEST_ASSERT_EQUAL(pdTRUE, tag_cb_called);
}
#endif // CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG

View File

@@ -21,3 +21,4 @@ CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES=y
CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1=y
CONFIG_FREERTOS_USE_TICK_HOOK=y
CONFIG_FREERTOS_USE_IDLE_HOOK=y
CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG=y