From 04d3892a1651b09f3527a68e50583cf7d0922b38 Mon Sep 17 00:00:00 2001 From: David Chalco Date: Wed, 30 Sep 2020 16:42:39 -0700 Subject: [PATCH] Make uxTopUsedPriority volatile to avoid optimizer + code comment --- tasks.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tasks.c b/tasks.c index 3e410ed6c..cbd23b98c 100644 --- a/tasks.c +++ b/tasks.c @@ -378,7 +378,11 @@ PRIVILEGED_DATA static volatile BaseType_t xNumOfOverflows = ( BaseType_t ) 0; PRIVILEGED_DATA static UBaseType_t uxTaskNumber = ( UBaseType_t ) 0U; PRIVILEGED_DATA static volatile TickType_t xNextTaskUnblockTime = ( TickType_t ) 0U; /* Initialised to portMAX_DELAY before the scheduler starts. */ PRIVILEGED_DATA static TaskHandle_t xIdleTaskHandle = NULL; /*< Holds the handle of the idle task. The idle task is created automatically when the scheduler is started. */ -const UBaseType_t uxTopUsedPriority = configMAX_PRIORITIES - 1U; + +/* Improve support for OpenOCD. The kernel tracks Ready tasks via priority lists. + * For tracking the state of remote threads, OpenOCD uses uxTopUsedPriority + * to determine the number of priority lists to read back from the remote target. */ +const volatile UBaseType_t uxTopUsedPriority = configMAX_PRIORITIES - 1U; /* Context switches are held pending while the scheduler is suspended. Also, * interrupts must not manipulate the xStateListItem of a TCB, or any of the