Я полный новичок в программировании RTOS и C, и я все еще привыкаю к передовой практике C. Итак, я открыл проект, использующий FreeRTOS, и заметил, что файлы ОС используют венгерскую нотацию. Я немного знаю нотацию, но столкнулся с некоторыми новыми "стандартами" в файле FreeRTOS.h
, а именно:
#ifndef configASSERT
#define configASSERT( x )
#define configASSERT_DEFINED 0
#else
#define configASSERT_DEFINED 1
#endif
И ниже этого,
#ifndef INCLUDE_xTaskGetSchedulerState
#define INCLUDE_xTaskGetSchedulerState 0
#endif
#ifndef INCLUDE_xTaskGetCurrentTaskHandle
#define INCLUDE_xTaskGetCurrentTaskHandle 0
#endif
Я видел этот x — как и xTaskGetCurrentTaskHandle — везде. Кроме того, v, pd и подобные имена переменных, например, в строке 728
рассматриваемого заголовка:
#if configENABLE_BACKWARD_COMPATIBILITY == 1
#define eTaskStateGet eTaskGetState
#define portTickType TickType_t
#define xTaskHandle TaskHandle_t
#define xQueueHandle QueueHandle_t
#define xSemaphoreHandle SemaphoreHandle_t
#define xQueueSetHandle QueueSetHandle_t
#define xQueueSetMemberHandle QueueSetMemberHandle_t
#define xTimeOutType TimeOut_t
#define xMemoryRegion MemoryRegion_t
#define xTaskParameters TaskParameters_t
#define xTaskStatusType TaskStatus_t
#define xTimerHandle TimerHandle_t
#define xCoRoutineHandle CoRoutineHandle_t
#define pdTASK_HOOK_CODE TaskHookFunction_t
#define portTICK_RATE_MS portTICK_PERIOD_MS
/* Backward compatibility within the scheduler code only - these definitions
are not really required but are included for completeness. */
#define tmrTIMER_CALLBACK TimerCallbackFunction_t
#define pdTASK_CODE TaskFunction_t
#define xListItem ListItem_t
#define xList List_t
Я искал везде, что означают эти «инициалы», но так и не смог понять.
Итак, если кто-нибудь может помочь мне понять это или показать мне путь или что-то в этом роде, я был бы очень благодарен.