FreeRTOS 输出系统状态信息

FreeRTOS 输出系统状态信息

一、开发环境

1、开发工具:cubeMX+MDK

2、硬件平台:请参考例程文件的原理图与PCB

二、参考资料

三、实现过程

1、cubeMX配置FreeRTOS 输出系统状态信息_第1张图片FreeRTOS 输出系统状态信息_第2张图片

2、软件实现

/*
	configureTimerForRunTimeStats()与getRunTimeCounterValue()是cubeMX生成的,需要在getRunTimeCounterValue()添加1个计数器供RTOS使用
*/
__weak void configureTimerForRunTimeStats(void)
{

}

__weak unsigned long getRunTimeCounterValue(void)
{
	//@ 添加此变量供RTOS系统调用
	static u64 rtosStatusCount = 0;
	return rtosStatusCount++;
}
//创建一个任务,等待一定时间输出RTOS系统状态信息
void rtosDebugTask(void const * argument)
{
	static u8 pcWriteBuffer[512] = {0};
	while (1)
	{
		vTaskList((char *) &pcWriteBuffer);
		printf("任务名      任务状态 优先级   剩余栈 任务序号\r\n");
		printf("%s\r\n", pcWriteBuffer);

//		vTaskGetRunTimeStats((char *) &pcWriteBuffer);
//		printf("\r\n任务名       运行计数         使用率\r\n");
//		printf("%s\r\n", pcWriteBuffer);

		osDelay(3 * 1000);
	}
}

四、例程文件

1、原理图与PCB

2、程序源码

你可能感兴趣的:(STM32,RTOS)