signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, const void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken );\r
\r
/* \r
- * xQueueAltGenericSend() is a light weight version of xQueueGenericSend().\r
- * Likewise xQueueAltGenericReceive() is a light weight version of\r
+ * xQueueAltGenericSend() is an alternative version of xQueueGenericSend().\r
+ * Likewise xQueueAltGenericReceive() is an alternative version of\r
* xQueueGenericReceive().\r
*\r
- * The source code that implements the light weight (fast) API is much \r
+ * The source code that implements the alternative (Alt) API is much \r
* simpler because it executes everything from within a critical section. \r
* This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
- * fully featured API as an alternative. The fully featured API has more \r
+ * preferred fully featured API too. The fully featured API has more \r
* complex code that takes longer to execute, but makes much less use of \r
- * critical sections. Therefore the light weight API sacrifices interrupt \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
* responsiveness to gain execution speed, whereas the fully featured API\r
* sacrifices execution speed to ensure better interrupt responsiveness.\r
*/\r
signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
-\r
-/*\r
- * The light weight versions of the fully featured macros.\r
- */\r
#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )\r
#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )\r
#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( xQueue, pvBuffer, xTicksToWait, pdFALSE )\r
* \ingroup Semaphores\r
*/\r
#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )\r
+\r
+/* \r
+ * xSemaphoreAltTake() is an alternative version of xSemaphoreTake().\r
+ *\r
+ * The source code that implements the alternative (Alt) API is much \r
+ * simpler because it executes everything from within a critical section. \r
+ * This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ * preferred fully featured API too. The fully featured API has more \r
+ * complex code that takes longer to execute, but makes much less use of \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
+ * responsiveness to gain execution speed, whereas the fully featured API\r
+ * sacrifices execution speed to ensure better interrupt responsiveness.\r
+ */\r
#define xSemaphoreAltTake( xSemaphore, xBlockTime ) xQueueAltGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )\r
\r
/**\r
* \ingroup Semaphores\r
*/\r
#define xSemaphoreGive( xSemaphore ) xQueueGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )\r
+\r
+/* \r
+ * xSemaphoreAltGive() is an alternative version of xSemaphoreGive().\r
+ *\r
+ * The source code that implements the alternative (Alt) API is much \r
+ * simpler because it executes everything from within a critical section. \r
+ * This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ * preferred fully featured API too. The fully featured API has more \r
+ * complex code that takes longer to execute, but makes much less use of \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
+ * responsiveness to gain execution speed, whereas the fully featured API\r
+ * sacrifices execution speed to ensure better interrupt responsiveness.\r
+ */\r
#define xSemaphoreAltGive( xSemaphore ) xQueueAltGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )\r
\r
/**\r
*\r
* Mutex type semaphores cannot be used from within interrupt service routines. \r
*\r
- * See xSemaphoreCreateBinary() for an alternative implemnetation that can be \r
+ * See xSemaphoreCreateBinary() for an alternative implementation that can be \r
* used for pure synchronisation (where one task or interrupt always 'gives' the \r
* semaphore and another always 'takes' the semaphore) and from within interrupt \r
* service routines.\r
signed portBASE_TYPE xReturn;\r
xTimeOutType xTimeOut;\r
\r
- /* The source code that implements the light weight (fast) API is much \r
+ /* The source code that implements the alternative (Alt) API is much \r
simpler because it executes everything from within a critical section. \r
This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
- fully featured API as an alternative. The fully featured API has more \r
+ preferred fully featured API too. The fully featured API has more \r
complex code that takes longer to execute, but makes much less use of \r
- critical sections. Therefore the light weight API sacrifices interrupt \r
+ critical sections. Therefore the alternative API sacrifices interrupt \r
responsiveness to gain execution speed, whereas the fully featured API\r
sacrifices execution speed to ensure better interrupt responsiveness. */\r
\r
xReturn = queueERRONEOUS_UNBLOCK;\r
}\r
}\r
- else\r
- {\r
- \r
- }\r
}\r
}\r
while( xReturn == queueERRONEOUS_UNBLOCK );\r
xTimeOutType xTimeOut;\r
signed portCHAR *pcOriginalReadPosition;\r
\r
- /* The source code that implements the light weight (fast) API is much \r
+ /* The source code that implements the alternative (Alt) API is much \r
simpler because it executes everything from within a critical section. \r
This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
- fully featured API as an alternative. The fully featured API has more \r
+ preferred fully featured API too. The fully featured API has more \r
complex code that takes longer to execute, but makes much less use of \r
- critical sections. Therefore the light weight API sacrifices interrupt \r
+ critical sections. Therefore the alternative API sacrifices interrupt \r
responsiveness to gain execution speed, whereas the fully featured API\r
sacrifices execution speed to ensure better interrupt responsiveness. */\r
\r