Microchip® Advanced Software Framework

recmutex.c File Reference
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
#include "recmutex.h"

Macros

#define recmuBLOCKING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 1 )
 
#define recmuCONTROLLING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 2 )
 
#define recmuMAX_COUNT   ( 10 )
 
#define recmuNO_DELAY   ( ( portTickType ) 0 )
 
#define recmuPOLLING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 0 )
 
#define recmuSHORT_DELAY   ( 20 / portTICK_RATE_MS )
 
#define recmuTWO_TICK_DELAY   ( ( portTickType ) 2 )
 

Functions

static void prvRecursiveMutexBlockingTask (void *pvParameters)
 
static void prvRecursiveMutexControllingTask (void *pvParameters)
 
static void prvRecursiveMutexPollingTask (void *pvParameters)
 
void vStartRecursiveMutexTasks (void)
 
portBASE_TYPE xAreRecursiveMutexTasksStillRunning (void)
 

Variables

static volatile unsigned
portBASE_TYPE 
uxBlockingCycles = 0
 
static volatile unsigned
portBASE_TYPE 
uxControllingCycles = 0
 
static volatile unsigned
portBASE_TYPE 
uxPollingCycles = 0
 
static volatile portBASE_TYPE xBlockingIsSuspended = pdFALSE
 
static xTaskHandle xBlockingTaskHandle
 
static volatile portBASE_TYPE xControllingIsSuspended = pdFALSE
 
static xTaskHandle xControllingTaskHandle
 
static volatile portBASE_TYPE xErrorOccurred = pdFALSE
 
static xSemaphoreHandle xMutex
 

#define recmuBLOCKING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 1 )
#define recmuCONTROLLING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 2 )
#define recmuMAX_COUNT   ( 10 )
#define recmuNO_DELAY   ( ( portTickType ) 0 )
#define recmuPOLLING_TASK_PRIORITY   ( tskIDLE_PRIORITY + 0 )
#define recmuSHORT_DELAY   ( 20 / portTICK_RATE_MS )
#define recmuTWO_TICK_DELAY   ( ( portTickType ) 2 )

portBASE_TYPE xAreRecursiveMutexTasksStillRunning ( void  )

volatile unsigned portBASE_TYPE uxBlockingCycles = 0
static
volatile unsigned portBASE_TYPE uxControllingCycles = 0
static
volatile unsigned portBASE_TYPE uxPollingCycles = 0
static
volatile portBASE_TYPE xBlockingIsSuspended = pdFALSE
static
xTaskHandle xBlockingTaskHandle
static
volatile portBASE_TYPE xControllingIsSuspended = pdFALSE
static
xTaskHandle xControllingTaskHandle
static