添加剩余堆栈监控(menu,LVGL)

This commit is contained in:
吴俊潮 2025-03-31 20:22:19 +08:00
parent 41fbcf2cba
commit f2c6fd09f5
5 changed files with 12980 additions and 12957 deletions

View File

@ -92,6 +92,7 @@ to exclude the API function. */
#define INCLUDE_vTaskDelayUntil 0 #define INCLUDE_vTaskDelayUntil 0
#define INCLUDE_vTaskDelay 1 #define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetSchedulerState 1 #define INCLUDE_xTaskGetSchedulerState 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1
/* Cortex-M specific definitions. */ /* Cortex-M specific definitions. */
#ifdef __NVIC_PRIO_BITS #ifdef __NVIC_PRIO_BITS

View File

@ -179,6 +179,7 @@ void StartDefaultTask(void const * argument)
* @param argument: Not used * @param argument: Not used
* @retval None * @retval None
*/ */
int16_t lvgl_stack_watch = 0;
/* USER CODE END Header_start_task_lcd */ /* USER CODE END Header_start_task_lcd */
void start_task_lcd(void const * argument) void start_task_lcd(void const * argument)
{ {
@ -188,6 +189,7 @@ void start_task_lcd(void const * argument)
{ {
lv_timer_handler(); //LVGL刷新任务 lv_timer_handler(); //LVGL刷新任务
osDelay(LVGL_BREATHE_INTERVAL); osDelay(LVGL_BREATHE_INTERVAL);
lvgl_stack_watch = uxTaskGetStackHighWaterMark(NULL);
} }
/* USER CODE END start_task_lcd */ /* USER CODE END start_task_lcd */
} }
@ -279,6 +281,7 @@ void start_mux_analog(void const * argument)
* @param argument: Not used * @param argument: Not used
* @retval None * @retval None
*/ */
int16_t menu_stack_watch = 0; // Word
/* USER CODE END Header_start_menu */ /* USER CODE END Header_start_menu */
void start_menu(void const * argument) void start_menu(void const * argument)
{ {
@ -289,6 +292,7 @@ void start_menu(void const * argument)
{ {
screen_run(); screen_run();
osDelay(200); osDelay(200);
menu_stack_watch = uxTaskGetStackHighWaterMark(NULL);
} }
/* USER CODE END start_menu */ /* USER CODE END start_menu */
} }
@ -299,7 +303,7 @@ void start_menu(void const * argument)
* @param argument: Not used * @param argument: Not used
* @retval None * @retval None
*/ */
char task_status[255]; //char task_status[255];
/* USER CODE END Header_start_task_monitor */ /* USER CODE END Header_start_task_monitor */
void start_task_monitor(void const * argument) void start_task_monitor(void const * argument)
{ {
@ -307,11 +311,10 @@ void start_task_monitor(void const * argument)
/* Infinite loop */ /* Infinite loop */
for(;;) for(;;)
{ {
vTaskList(task_status);
//串口打印当前各个任务的详细信息 //串口打印当前各个任务的详细信息
//任务名 状态 优先级 空闲栈 任务号 //任务名 状态 优先级 空闲栈 任务号
HAL_UART_Transmit(&huart3, (uint8_t *)task_status, 255, 0xFFFF); //vTaskList(task_status);
//HAL_UART_Transmit(&huart3, (uint8_t *)task_status, 255, 0xFFFF);
osDelay(3000); osDelay(3000);
} }
/* USER CODE END start_task_monitor */ /* USER CODE END start_task_monitor */

View File

@ -260,6 +260,16 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>RTD,0x0A</ItemText> <ItemText>RTD,0x0A</ItemText>
</Ww> </Ww>
<Ww>
<count>21</count>
<WinNumber>1</WinNumber>
<ItemText>lvgl_stack_watch,0x0A</ItemText>
</Ww>
<Ww>
<count>22</count>
<WinNumber>1</WinNumber>
<ItemText>menu_stack_watch,0x0A</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,8 @@ Dma.ADC1.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlign
Dma.Request0=ADC1 Dma.Request0=ADC1
Dma.RequestsNb=1 Dma.RequestsNb=1
FREERTOS.FootprintOK=true FREERTOS.FootprintOK=true
FREERTOS.IPParameters=Tasks01,FootprintOK,configUSE_TICKLESS_IDLE,configGENERATE_RUN_TIME_STATS,configTOTAL_HEAP_SIZE,configUSE_STATS_FORMATTING_FUNCTIONS,configUSE_TRACE_FACILITY,configUSE_IDLE_HOOK FREERTOS.INCLUDE_uxTaskGetStackHighWaterMark=1
FREERTOS.IPParameters=Tasks01,FootprintOK,configUSE_TICKLESS_IDLE,configGENERATE_RUN_TIME_STATS,configTOTAL_HEAP_SIZE,configUSE_STATS_FORMATTING_FUNCTIONS,configUSE_TRACE_FACILITY,configUSE_IDLE_HOOK,INCLUDE_uxTaskGetStackHighWaterMark
FREERTOS.Tasks01=defaultTask,-3,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;task_lcd,1,768,start_task_lcd,Default,NULL,Dynamic,NULL,NULL;task_hart,2,256,start_task_hart,Default,NULL,Dynamic,NULL,NULL;task_ble,-1,256,start_task_ble,Default,NULL,Dynamic,NULL,NULL;task_rs485,2,256,start_rs485,Default,NULL,Dynamic,NULL,NULL;task_mux_analog,3,128,start_mux_analog,Default,NULL,Dynamic,NULL,NULL;task_menu,0,512,start_menu,Default,NULL,Dynamic,NULL,NULL;task_monitor,-3,128,start_task_monitor,Default,NULL,Dynamic,NULL,NULL FREERTOS.Tasks01=defaultTask,-3,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;task_lcd,1,768,start_task_lcd,Default,NULL,Dynamic,NULL,NULL;task_hart,2,256,start_task_hart,Default,NULL,Dynamic,NULL,NULL;task_ble,-1,256,start_task_ble,Default,NULL,Dynamic,NULL,NULL;task_rs485,2,256,start_rs485,Default,NULL,Dynamic,NULL,NULL;task_mux_analog,3,128,start_mux_analog,Default,NULL,Dynamic,NULL,NULL;task_menu,0,512,start_menu,Default,NULL,Dynamic,NULL,NULL;task_monitor,-3,128,start_task_monitor,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configGENERATE_RUN_TIME_STATS=0 FREERTOS.configGENERATE_RUN_TIME_STATS=0
FREERTOS.configTOTAL_HEAP_SIZE=17360 FREERTOS.configTOTAL_HEAP_SIZE=17360