STM32 Hal库FreeRtos查看所有任务的内存栈信息使用情况剩余空间 仅需一个函数搞定 超简单

STM32F103 基于Hal库跑FreeRtos,查看所有任务的栈的信息,包括任务名,任务状态,任务优先级,空闲栈,任务号。

运行结果如下

只需要使用一个函数vTaskList :获得任务的统计信息,形式为可读的字符串。

cpp 复制代码
void vTaskList( signed char *pcWriteBuffer );

操作步骤

一、连接串口后,在freertos.c里面定义一个全局变量,存在所有任务的栈的信息,注意,pcWriteBuffer必须足够大。

cpp 复制代码
static signed char pcWriteBuffer[200];

二、保证如下条件成立

cpp 复制代码
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

一般条件1和条件3是默认成立的,如果条件2的宏定义是0(#define configUSE_STATS_FORMATTING_FUNCTIONS 0),需要配置STM32CubeMX,将其

使能,如下图所示。

三、使能钩子函数。

四、重新生成代码,在void vApplicationIdleHook( void )改成如下代码,代码在空闲任务内调用及打印结果。

cpp 复制代码
void vApplicationIdleHook( void )
{
  
	int i;
	vTaskList(pcWriteBuffer);
	for (i = 0; i < 16; i++)
		printf("-");
	printf("\n\r");
	printf("%s\n\r", pcWriteBuffer);
}

五、运行结果

源码链接

备注运行环境

单片机:STM32F103c8tx

keil版本:5.32

STM32CubeMX版本:6.8.2

相关推荐
时空自由民.15 分钟前
STM32 IIC HAL库,LL库
stm32·单片机·嵌入式硬件
辰哥单片机设计1 小时前
STM32智能门禁系统(语音版)
stm32·单片机·嵌入式硬件
映翰通朱工3 小时前
Windows 上位机 + EC3320:USB 转 CAN 通信实测(从接线到 SSH 收包)
windows·stm32·ssh
Industio_触觉智能3 小时前
瑞芯微ISP内核驱动深度解析|RKISP39从架构到Probe初始化全流程(上篇)
linux·嵌入式硬件·硬件架构·摄像头·isp·瑞芯微·rk3576
Funing74 小时前
系列一:STM32 外设初始化
stm32·单片机·嵌入式硬件
XiangrongZ5 小时前
debian中配置stm32的交叉编译环境
运维·stm32·debian
✎ ﹏梦醒͜ღ҉繁华落℘5 小时前
单片机基础知识--LVGL学习-lv_obj_add_flag()
c语言·单片机·学习
zcmodeltech5 小时前
钢铁冶金沙盘模型多工序协同控制系统设计:基于STM32与Modbus RTU的高炉-连铸-热轧全流程联动方案
stm32·单片机·嵌入式硬件·数据库架构·嵌入式实时数据库·多分类
西城微科方案开发6 小时前
充气泵PCBA方案:数字传感器VS模拟传感器
单片机
zcmodeltech6 小时前
供热系统模型多工况控制系统设计:基于STM32与Modbus RTU的热源-管网-末端联动方案
大数据·stm32·单片机·嵌入式硬件·制造·数据库系统