|
|
@ -72,11 +72,7 @@ err_t xReturn = ERR_MEM;
|
|
|
|
if( *pxMailBox != NULL )
|
|
|
|
if( *pxMailBox != NULL )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_INC_USED( mbox );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( mbox.used );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* SYS_STATS */
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return xReturn;
|
|
|
|
return xReturn;
|
|
|
@ -165,11 +161,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* The queue was already full. */
|
|
|
|
/* The queue was already full. */
|
|
|
|
xReturn = ERR_MEM;
|
|
|
|
xReturn = ERR_MEM;
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_INC( mbox.err );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( mbox.err );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* SYS_STATS */
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return xReturn;
|
|
|
|
return xReturn;
|
|
|
@ -233,7 +225,7 @@ unsigned long ulReturn;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
while( pdTRUE != xQueueReceive( pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) );
|
|
|
|
while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) );
|
|
|
|
xEndTime = xTaskGetTickCount();
|
|
|
|
xEndTime = xTaskGetTickCount();
|
|
|
|
xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;
|
|
|
|
xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;
|
|
|
|
|
|
|
|
|
|
|
@ -322,20 +314,11 @@ err_t xReturn = ERR_MEM;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
|
|
|
|
SYS_STATS_INC_USED( sem );
|
|
|
|
#if SYS_STATS
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( sem.used );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_INC( sem.err );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( sem.err );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return xReturn;
|
|
|
|
return xReturn;
|
|
|
@ -386,7 +369,7 @@ unsigned long ulReturn;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
while( xSemaphoreTake( pxSemaphore, portMAX_DELAY ) != pdTRUE );
|
|
|
|
while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE );
|
|
|
|
xEndTime = xTaskGetTickCount();
|
|
|
|
xEndTime = xTaskGetTickCount();
|
|
|
|
xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;
|
|
|
|
xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;
|
|
|
|
|
|
|
|
|
|
|
@ -410,22 +393,14 @@ err_t xReturn = ERR_MEM;
|
|
|
|
|
|
|
|
|
|
|
|
*pxMutex = xQueueCreateMutex();
|
|
|
|
*pxMutex = xQueueCreateMutex();
|
|
|
|
|
|
|
|
|
|
|
|
if( *pxMutex != NULL )
|
|
|
|
if( *pxMutex != NULL )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
xReturn = ERR_OK;
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_INC_USED( mutex );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( mutex.used );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_INC( mutex.err );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_INC( mutex.err );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return xReturn;
|
|
|
|
return xReturn;
|
|
|
@ -450,11 +425,7 @@ void sys_mutex_unlock(sys_mutex_t *pxMutex )
|
|
|
|
* @param mutex the mutex to delete */
|
|
|
|
* @param mutex the mutex to delete */
|
|
|
|
void sys_mutex_free( sys_mutex_t *pxMutex )
|
|
|
|
void sys_mutex_free( sys_mutex_t *pxMutex )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_DEC( mutex.used );
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_DEC( mutex.used );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* SYS_STATS */
|
|
|
|
|
|
|
|
vQueueDelete( *pxMutex );
|
|
|
|
vQueueDelete( *pxMutex );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -491,12 +462,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
void sys_sem_free( sys_sem_t *pxSemaphore )
|
|
|
|
void sys_sem_free( sys_sem_t *pxSemaphore )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#if SYS_STATS
|
|
|
|
SYS_STATS_DEC(sem.used);
|
|
|
|
{
|
|
|
|
|
|
|
|
SYS_STATS_DEC(sem.used);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vQueueDelete( *pxSemaphore );
|
|
|
|
vQueueDelete( *pxSemaphore );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|