mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-19 09:38:32 -04:00
Preparing for maintenance release:
Kernel source changes: - Added xTaskNotifyStateClear() API function. - Added the GCC Cortex-R port (existed for a while) into the main download. - Improved the IAR RL78 port's handling of different memory model combinations. - Removed some compiler warnings in heap_5.c. Demo app changes: - Added example use of xTaskNotifyStateClear() to the TaskNotify standard demo tasks.
This commit is contained in:
parent
57cc3389a5
commit
d289525e1b
23 changed files with 1367 additions and 159 deletions
|
@ -356,7 +356,7 @@ const uint32_t ulBit0 = 0x01UL, ulBit1 = 0x02UL;
|
|||
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
Now try querying the previus value while notifying a task. */
|
||||
Now try querying the previous value while notifying a task. */
|
||||
xTaskNotifyAndQuery( xTaskToNotify, 0x00, eSetBits, &ulPreviousValue );
|
||||
configASSERT( ulNotifiedValue == ( ULONG_MAX & ~( ulBit0 | ulBit1 ) ) );
|
||||
|
||||
|
@ -376,6 +376,28 @@ const uint32_t ulBit0 = 0x01UL, ulBit1 = 0x02UL;
|
|||
ulExpectedValue |= ulLoop;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------------
|
||||
/* Clear the previous notifications. */
|
||||
xTaskNotifyWait( ULONG_MAX, 0, &ulNotifiedValue, 0 );
|
||||
|
||||
/* The task should not have any notifications pending, so an attempt to clear
|
||||
the notification state should fail. */
|
||||
configASSERT( xTaskNotifyStateClear( NULL ) == pdFALSE );
|
||||
|
||||
/* Get the task to notify itself. This is not a normal thing to do, and is
|
||||
only done here for test purposes. */
|
||||
xTaskNotifyAndQuery( xTaskToNotify, ulFirstNotifiedConst, eSetValueWithoutOverwrite, &ulPreviousValue );
|
||||
|
||||
/* Now the notification state should be eNotified, so it should now be
|
||||
possible to clear the notification state. */
|
||||
configASSERT( xTaskNotifyStateClear( NULL ) == pdTRUE );
|
||||
configASSERT( xTaskNotifyStateClear( NULL ) == pdFALSE );
|
||||
|
||||
|
||||
|
||||
|
||||
/* Incremented to show the task is still running. */
|
||||
ulNotifyCycleCount++;
|
||||
|
||||
|
@ -509,9 +531,9 @@ const uint32_t ulUnexpectedValue = 0xff;
|
|||
break;
|
||||
|
||||
default:/* Should never get here!. */
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
ulTimerNotificationsSent++;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue