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 ) |
Referenced by vStartRecursiveMutexTasks().
#define recmuCONTROLLING_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) |
Referenced by vStartRecursiveMutexTasks().
#define recmuMAX_COUNT ( 10 ) |
Referenced by prvRecursiveMutexControllingTask().
#define recmuNO_DELAY ( ( portTickType ) 0 ) |
Referenced by prvRecursiveMutexPollingTask().
#define recmuPOLLING_TASK_PRIORITY ( tskIDLE_PRIORITY + 0 ) |
Referenced by vStartRecursiveMutexTasks().
#define recmuSHORT_DELAY ( 20 / portTICK_RATE_MS ) |
Referenced by prvRecursiveMutexControllingTask().
#define recmuTWO_TICK_DELAY ( ( portTickType ) 2 ) |
Referenced by prvRecursiveMutexControllingTask().
|
static |
References NULL, pdFALSE, pdPASS, pdTRUE, uxBlockingCycles, uxControllingCycles, vTaskSuspend(), xBlockingIsSuspended, xControllingIsSuspended, xErrorOccurred, xSemaphoreGiveRecursive, and xSemaphoreTakeRecursive.
Referenced by vStartRecursiveMutexTasks().
|
static |
References NULL, pdFALSE, pdPASS, pdTRUE, recmuMAX_COUNT, recmuSHORT_DELAY, recmuTWO_TICK_DELAY, uxControllingCycles, vTaskDelay(), vTaskSuspend(), xControllingIsSuspended, xErrorOccurred, xSemaphoreGiveRecursive, and xSemaphoreTakeRecursive.
Referenced by vStartRecursiveMutexTasks().
|
static |
void vStartRecursiveMutexTasks | ( | void | ) |
References NULL, prvRecursiveMutexBlockingTask(), prvRecursiveMutexControllingTask(), prvRecursiveMutexPollingTask(), recmuBLOCKING_TASK_PRIORITY, recmuCONTROLLING_TASK_PRIORITY, recmuPOLLING_TASK_PRIORITY, vQueueAddToRegistry, xBlockingTaskHandle, xControllingTaskHandle, xSemaphoreCreateRecursiveMutex, and xTaskCreate.
portBASE_TYPE xAreRecursiveMutexTasksStillRunning | ( | void | ) |
References pdFAIL, pdTRUE, uxBlockingCycles, uxControllingCycles, uxPollingCycles, and xErrorOccurred.
|
static |
Referenced by prvRecursiveMutexBlockingTask(), and xAreRecursiveMutexTasksStillRunning().
|
static |
|
static |
Referenced by prvRecursiveMutexPollingTask(), and xAreRecursiveMutexTasksStillRunning().
|
static |
Referenced by prvRecursiveMutexBlockingTask(), and prvRecursiveMutexPollingTask().
|
static |
Referenced by prvRecursiveMutexPollingTask(), and vStartRecursiveMutexTasks().
|
static |
|
static |
Referenced by prvRecursiveMutexPollingTask(), and vStartRecursiveMutexTasks().
|
static |
|
static |