diff --git a/FreeRTOS/Demo/Common/Minimal/IntQueue.c b/FreeRTOS/Demo/Common/Minimal/IntQueue.c index 4a68d85adc..e97eaed6dd 100644 --- a/FreeRTOS/Demo/Common/Minimal/IntQueue.c +++ b/FreeRTOS/Demo/Common/Minimal/IntQueue.c @@ -195,7 +195,7 @@ an interrupt. */ static QueueHandle_t xNormallyEmptyQueue, xNormallyFullQueue; /* Variables used to detect a stall in one of the tasks. */ -static UBaseType_t uxHighPriorityLoops1 = 0, uxHighPriorityLoops2 = 0, uxLowPriorityLoops1 = 0, uxLowPriorityLoops2 = 0; +static volatile UBaseType_t uxHighPriorityLoops1 = 0, uxHighPriorityLoops2 = 0, uxLowPriorityLoops1 = 0, uxLowPriorityLoops2 = 0; /* Any unexpected behaviour sets xErrorStatus to fail and log the line that caused the error in xErrorLine. */ @@ -207,7 +207,7 @@ static BaseType_t xWasSuspended = pdFALSE; /* The values that are sent to the queues. An incremented value is sent each time to each queue. */ -volatile UBaseType_t uxValueForNormallyEmptyQueue = 0, uxValueForNormallyFullQueue = 0; +static volatile UBaseType_t uxValueForNormallyEmptyQueue = 0, uxValueForNormallyFullQueue = 0; /* A handle to some of the tasks is required so they can be suspended/resumed. */ TaskHandle_t xHighPriorityNormallyEmptyTask1, xHighPriorityNormallyEmptyTask2, xHighPriorityNormallyFullTask1, xHighPriorityNormallyFullTask2; @@ -718,7 +718,6 @@ static UBaseType_t uxNextOperation = 0; timerNORMALLY_FULL_TX(); timerNORMALLY_FULL_TX(); timerNORMALLY_FULL_TX(); - timerNORMALLY_FULL_TX(); } return xHigherPriorityTaskWoken; diff --git a/FreeRTOS/Demo/Common/Minimal/recmutex.c b/FreeRTOS/Demo/Common/Minimal/recmutex.c index f59d360d39..f36e0b9285 100644 --- a/FreeRTOS/Demo/Common/Minimal/recmutex.c +++ b/FreeRTOS/Demo/Common/Minimal/recmutex.c @@ -123,7 +123,7 @@ be overridden by a definition in FreeRTOSConfig.h. */ #define recmuMAX_COUNT ( 10 ) /* Misc. */ -#define recmuSHORT_DELAY ( 20 / portTICK_PERIOD_MS ) +#define recmuSHORT_DELAY ( pdMS_TO_TICKS( 20 ) ) #define recmuNO_DELAY ( ( TickType_t ) 0 ) #define recmuEIGHT_TICK_DELAY ( ( TickType_t ) 8 ) @@ -227,6 +227,10 @@ UBaseType_t ux; { xErrorOccurred = pdTRUE; } + + #if( configUSE_PREEMPTION == 0 ) + taskYIELD(); + #endif } /* Having given it back the same number of times as it was taken, we @@ -344,7 +348,14 @@ static void prvRecursiveMutexPollingTask( void *pvParameters ) error will be latched if the polling task has not returned the mutex by the time this fixed period has expired. */ vTaskResume( xBlockingTaskHandle ); - vTaskResume( xControllingTaskHandle ); + #if( configUSE_PREEMPTION == 0 ) + taskYIELD(); + #endif + + vTaskResume( xControllingTaskHandle ); + #if( configUSE_PREEMPTION == 0 ) + taskYIELD(); + #endif /* The other two tasks should now have executed and no longer be suspended. */ @@ -433,7 +444,7 @@ static UBaseType_t uxLastControllingCycles = 0, uxLastBlockingCycles = 0, uxLast } else { - xReturn = pdTRUE; + xReturn = pdPASS; } return xReturn; diff --git a/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.HardwareDebuglinker b/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.HardwareDebuglinker index 8f67047ba1..cc70f7a084 100644 --- a/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.HardwareDebuglinker +++ b/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.HardwareDebuglinker @@ -87,7 +87,7 @@ - + @@ -114,11 +114,11 @@ - + - + diff --git a/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.cproject b/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.cproject index 29d7efc143..34ae58d0ef 100644 --- a/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.cproject +++ b/FreeRTOS/Demo/RX100_RX113-RSK_GCC_e2studio_IAR/.cproject @@ -49,6 +49,7 @@