/* Private includes -----------------------------------------------------------*/ //includes #include "user_TasksInit.h" //sys #include "sys.h" #include "stdio.h" //bsp #include "key.h" //gui #include "lvgl.h" #include "lv_lib_pm.h" //tasks #include "user_HardwareInitTask.h" #include "user_LVGLTask.h" #include "user_PDUFPTask.h" #include "user_KeyTask.h" #include "user_MessageTask.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Timers --------------------------------------------------------------------*/ osTimerId_t IdleTimerHandle; /* Tasks ---------------------------------------------------------------------*/ // Hardwares initialization osThreadId_t HardwareInitTaskHandle; const osThreadAttr_t HardwareInitTask_attributes = { .name = "HardwareInitTask", .stack_size = 128 * 10, .priority = (osPriority_t) osPriorityHigh, }; // message task osThreadId_t MessageTaskHandle; const osThreadAttr_t MessageTask_attributes = { .name = "MessageTask", .stack_size = 128 * 1, .priority = (osPriority_t) osPriorityNormal2, }; // Key task osThreadId_t KeyTaskHandle; const osThreadAttr_t KeyTask_attributes = { .name = "KeyTask", .stack_size = 128 * 1, .priority = (osPriority_t) osPriorityNormal, }; // PDUFP task osThreadId_t PDUFPTaskHandle; const osThreadAttr_t PDUFPTask_attributes = { .name = "PDUFPTask", .stack_size = 128 * 5, .priority = (osPriority_t) osPriorityLow2, }; // LVGL Handler task osThreadId_t LvHandlerTaskHandle; const osThreadAttr_t LvHandlerTask_attributes = { .name = "LvHandlerTask", .stack_size = 128 * 24, .priority = (osPriority_t) osPriorityLow, }; /* Message queues ------------------------------------------------------------*/ // Key task 中发送出的按键信息的消息队列 osMessageQueueId_t Key_MessageQueue; // UI layer发送给PDUFPTask任务的命令消息队列 osMessageQueueId_t PD_cmd_MessageQueue; // PDUFPTask任务发送给UI层的通知处理情况的消息队列 osMessageQueueId_t PD_handle_event_MsgQueue; /* Private function prototypes -----------------------------------------------*/ void LvHandlerTask(void *argument); /** * @brief FreeRTOS initialization * @param None * @retval None */ void User_Tasks_Init(void) { /* add mutexes, ... */ /* add semaphores, ... */ /* start timers, add new ones, ... */ /* add queues, ... */ Key_MessageQueue = osMessageQueueNew(4, sizeof(key_event_t), NULL); PD_cmd_MessageQueue = osMessageQueueNew(4, sizeof(PD_command_msg_t), NULL); PD_handle_event_MsgQueue = osMessageQueueNew(4, 1, NULL); // uint8_t message /* add threads, ... */ HardwareInitTaskHandle = osThreadNew(HardwareInitTask, NULL, &HardwareInitTask_attributes); PDUFPTaskHandle = osThreadNew(PDUFPTask, NULL, &PDUFPTask_attributes); KeyTaskHandle = osThreadNew(KeyTask, NULL, &KeyTask_attributes); MessageTaskHandle = osThreadNew(MessageTask, NULL, &MessageTask_attributes); LvHandlerTaskHandle = osThreadNew(LvHandlerTask, NULL, &LvHandlerTask_attributes); /* add events, ... */ /* add others ... */ }