Update single core CMBC and unit test (#1045)
This PR fixes CBMC and unit test for single core FreeRTOS in the FreeRTOS-Kernel PR - https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/716. - xYieldPendings and xIdleTaskHandles are now an array. Update in FreeRTOS unit test. - Update CBMC patches.pull/1046/head
parent
278e6c4b49
commit
7adb08eff5
@ -1,22 +1,22 @@
|
||||
diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c
|
||||
index 17a6964e..60ea3e69 100644
|
||||
index e87db0f45..98f77012f 100644
|
||||
--- a/FreeRTOS/Source/queue.c
|
||||
+++ b/FreeRTOS/Source/queue.c
|
||||
@@ -175,7 +175,7 @@ typedef xQUEUE Queue_t;
|
||||
@@ -177,7 +177,7 @@ typedef xQUEUE Queue_t;
|
||||
* to indicate that a task may require unblocking. When the queue in unlocked
|
||||
* these lock counts are inspected, and the appropriate action taken.
|
||||
*/
|
||||
-static void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION;
|
||||
+void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION;
|
||||
|
||||
|
||||
/*
|
||||
* Uses a critical section to determine if there is any data in a queue.
|
||||
@@ -2175,7 +2175,7 @@ static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer
|
||||
@@ -2367,7 +2367,7 @@ static void prvCopyDataFromQueue( Queue_t * const pxQueue,
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
-static void prvUnlockQueue( Queue_t * const pxQueue )
|
||||
+void prvUnlockQueue( Queue_t * const pxQueue )
|
||||
{
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */
|
||||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */
|
||||
|
||||
|
@ -0,0 +1,25 @@
|
||||
diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c
|
||||
index e87db0f45..a5f1ac9d0 100644
|
||||
--- a/FreeRTOS/Source/queue.c
|
||||
+++ b/FreeRTOS/Source/queue.c
|
||||
@@ -88,12 +88,14 @@ typedef struct SemaphoreData
|
||||
/* If the cooperative scheduler is being used then a yield should not be
|
||||
* performed just because a higher priority task has been woken. */
|
||||
#define queueYIELD_IF_USING_PREEMPTION()
|
||||
-#else
|
||||
- #if ( configNUMBER_OF_CORES == 1 )
|
||||
- #define queueYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
|
||||
- #else /* #if ( configNUMBER_OF_CORES == 1 ) */
|
||||
- #define queueYIELD_IF_USING_PREEMPTION() vTaskYieldWithinAPI()
|
||||
- #endif /* #if ( configNUMBER_OF_CORES == 1 ) */
|
||||
+#endif
|
||||
+
|
||||
+#if ( configNUMBER_OF_CORES == 1 ) && ( configUSE_PREEMPTION == 1 )
|
||||
+ #define queueYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
|
||||
+#endif
|
||||
+
|
||||
+#if ( configNUMBER_OF_CORES > 1 ) && ( configUSE_PREEMPTION == 1 )
|
||||
+ #define queueYIELD_IF_USING_PREEMPTION() vTaskYieldWithinAPI()
|
||||
#endif
|
||||
|
||||
/*
|
Loading…
Reference in New Issue