From f28ee5fc88adb91b57d818d10501b54140f80b64 Mon Sep 17 00:00:00 2001 From: Partokus <75937547+Partokus@users.noreply.github.com> Date: Mon, 4 May 2026 17:12:38 +0300 Subject: [PATCH] freertos_use_task_fpu_support set by default to 0x2 for support float Question on adaptivesupport.amd.com: https://adaptivesupport.amd.com/s/feed/0D5Pd00001VvcoWKAR?language=en_US I programming cortex r5 processor on Xilinx Zynq us+ and i faced problem with garbage and impossible values in float and double. I spend WHOLE WEEK finding cause of this problem. Issue was in FreeRTOS config setting "freertos_use_task_fpu_support" (configUSE_TASK_FPU_SUPPORT). By default it set to value "1". It meens that tasks DON'T support FPU context saving when switch context between tasks. I set it to "2" and problem solved. I using 5 freertos tasks and it was crucial for me. My question is: Why in Xilinx BSP drivers in lib freertos there "freertos_use_task_fpu_support" is set to "1" by default? Okey, it increase speed of context switch between tasks, but who cares? I don't think default people want to get max speed of switch context. It is rare case when developer want to speed up context switch. Xilinx Zynq US+ very powerfull and speedy processor... Can we think about set this option by default to "2" in Xilinx BSP drivers? --- ThirdParty/bsp/freertos10_xilinx/src/freertos10_xilinx.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ThirdParty/bsp/freertos10_xilinx/src/freertos10_xilinx.cmake b/ThirdParty/bsp/freertos10_xilinx/src/freertos10_xilinx.cmake index 3d2c4fc377e..9333d0309f4 100644 --- a/ThirdParty/bsp/freertos10_xilinx/src/freertos10_xilinx.cmake +++ b/ThirdParty/bsp/freertos10_xilinx/src/freertos10_xilinx.cmake @@ -70,7 +70,7 @@ and vTaskGetRunTimeStats() functions, which format run-time data \ into human readable text." ON) set(freertos_num_thread_local_storage_pointers 0x0 CACHE STRING "Sets the number \ of pointers each task has to store thread local values.") -set(freertos_use_task_fpu_support 0x1 CACHE STRING "Set to 1 to create tasks \ +set(freertos_use_task_fpu_support 0x2 CACHE STRING "Set to 1 to create tasks \ without FPU context, set to 2 to have tasks with FPU context by default.") set_property(CACHE freertos_use_task_fpu_support PROPERTY STRINGS 0x0 0x1 0x2) set(freertos_generate_runtime_stats 0x0 CACHE STRING "Set to 1 generate \