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
|
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
|
--- a/FreeRTOS/Source/queue.c
|
||||||
+++ b/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
|
* to indicate that a task may require unblocking. When the queue in unlocked
|
||||||
* these lock counts are inspected, and the appropriate action taken.
|
* these lock counts are inspected, and the appropriate action taken.
|
||||||
*/
|
*/
|
||||||
-static void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION;
|
-static void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION;
|
||||||
+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.
|
* 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 )
|
-static void prvUnlockQueue( Queue_t * const pxQueue )
|
||||||
+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