From 913550f62c23f487d0cb93fd9723b5342b76830e Mon Sep 17 00:00:00 2001 From: Darian Leung Date: Thu, 16 Nov 2023 19:45:26 +0800 Subject: [PATCH] fix(freertos/idf): Fix invalid xCoreID arguments in single-core IDF FreeRTOS v10.5.1 no longer accepts out of range xCoreID arguments in "PinnedToCore" task creation functions when building for single-core. This commit fixes those violations through ESP-IDF. --- .../kernel/stream_buffer/test_stream_buffers.c | 12 ++++++++++-- .../kernel_tests/stream_buffer/test_stream_buffers.c | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/components/freertos/test_apps/freertos/kernel/stream_buffer/test_stream_buffers.c b/components/freertos/test_apps/freertos/kernel/stream_buffer/test_stream_buffers.c index f7acea50a0..c2c8961323 100644 --- a/components/freertos/test_apps/freertos/kernel/stream_buffer/test_stream_buffers.c +++ b/components/freertos/test_apps/freertos/kernel/stream_buffer/test_stream_buffers.c @@ -61,8 +61,16 @@ TEST_CASE("Stream Buffer: Send-receive tasks", "[freertos]") test_args.done_sem = xSemaphoreCreateCounting(2, 0); TEST_ASSERT_NOT_NULL(test_args.stream_buffer); TEST_ASSERT_NOT_NULL(test_args.done_sem); - TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(sender_task, "sender", 4096, &test_args, UNITY_FREERTOS_PRIORITY + 2, NULL, 0)); - TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(receiver_task, "receiver", 4096, &test_args, UNITY_FREERTOS_PRIORITY + 1, NULL, 1)); + BaseType_t sender_core_id; + BaseType_t receiver_core_id; + sender_core_id = 0; + #if CONFIG_FREERTOS_UNICORE + receiver_core_id = 0; + #else + receiver_core_id = 1; + #endif + TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(sender_task, "sender", 4096, &test_args, UNITY_FREERTOS_PRIORITY + 2, NULL, sender_core_id)); + TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(receiver_task, "receiver", 4096, &test_args, UNITY_FREERTOS_PRIORITY + 1, NULL, receiver_core_id)); // Wait for both tasks to complete for (int i = 0; i < 2; i++) { diff --git a/tools/test_apps/linux_compatible/linux_freertos/components/kernel_tests/stream_buffer/test_stream_buffers.c b/tools/test_apps/linux_compatible/linux_freertos/components/kernel_tests/stream_buffer/test_stream_buffers.c index 51216d134b..82007c309a 100644 --- a/tools/test_apps/linux_compatible/linux_freertos/components/kernel_tests/stream_buffer/test_stream_buffers.c +++ b/tools/test_apps/linux_compatible/linux_freertos/components/kernel_tests/stream_buffer/test_stream_buffers.c @@ -60,8 +60,16 @@ TEST_CASE("Stream Buffer: Send-receive tasks", "[freertos]") test_args.done_sem = xSemaphoreCreateCounting(2, 0); TEST_ASSERT_NOT_NULL(test_args.stream_buffer); TEST_ASSERT_NOT_NULL(test_args.done_sem); - TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(sender_task, "sender", 4096, &test_args, CONFIG_UNITY_FREERTOS_PRIORITY + 2, NULL, 0)); - TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(receiver_task, "receiver", 4096, &test_args, CONFIG_UNITY_FREERTOS_PRIORITY + 1, NULL, 1)); + BaseType_t sender_core_id; + BaseType_t receiver_core_id; + sender_core_id = 0; + #if CONFIG_FREERTOS_UNICORE + receiver_core_id = 0; + #else + receiver_core_id = 1; + #endif + TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(sender_task, "sender", 4096, &test_args, CONFIG_UNITY_FREERTOS_PRIORITY + 2, NULL, sender_core_id)); + TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(receiver_task, "receiver", 4096, &test_args, CONFIG_UNITY_FREERTOS_PRIORITY + 1, NULL, receiver_core_id)); // Wait for both tasks to complete for (int i = 0; i < 2; i++) {