From 59f453dd1843558b6a29fc658b89fc156ca1a65c Mon Sep 17 00:00:00 2001 From: cfif Date: Wed, 18 Dec 2024 17:49:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=20=D0=B0=D0=BD=D0=B0=D0=BB=D0=B8=D0=B7=20=D0=BF=D0=B0?= =?UTF-8?q?=D0=BC=D1=8F=D1=82=D0=B8=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CliPrivate.h | 1 + ComandLineInterface.c | 1 + TasksInfo.c | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 TasksInfo.c diff --git a/CliPrivate.h b/CliPrivate.h index 7646dc4..684d4b7 100644 --- a/CliPrivate.h +++ b/CliPrivate.h @@ -8,5 +8,6 @@ #include "ComandLineInterface.h" int32_t CliCmd_baseCommandHelp(void *env, tCliCmd *cli); +void vTaskGetRunTime(void *env, tCliCmd *cli); #endif //UVEOS_ON_NATION_CLIPRIVATE_H diff --git a/ComandLineInterface.c b/ComandLineInterface.c index 05498ea..96f60dc 100644 --- a/ComandLineInterface.c +++ b/ComandLineInterface.c @@ -69,6 +69,7 @@ void Cli_Init( CliRedirectionTable_RecAddStatic(&env->redirectTable, "reboot", (cliCall) CliCmd_CmsisReboot, NULL); CliRedirectionTable_RecAddStatic(&env->redirectTable, "emerTest", (cliCall) CliCmd_EcoolSimulation, &env->sub.uvEmrgSimInter); + CliRedirectionTable_RecAddStatic(&env->redirectTable, "mem", (cliCall) vTaskGetRunTime, NULL); //Инициализируем поток InitThreadBlock(env->thread, "Cli", osPriorityNormal); diff --git a/TasksInfo.c b/TasksInfo.c new file mode 100644 index 0000000..8df4464 --- /dev/null +++ b/TasksInfo.c @@ -0,0 +1,38 @@ +// +// Created by cfif on 17.12.2024. +// +#include +#include +#include "CliPrivate.h" + +void vTaskGetRunTime(void *env, tCliCmd *cli) { + + volatile UBaseType_t uxArraySize, x; + char bufSprintf[512]; + + uxArraySize = uxTaskGetNumberOfTasks(); + + TaskStatus_t pxTaskStatusArray[uxArraySize]; + + + uxArraySize = uxTaskGetSystemState((void *) pxTaskStatusArray, uxArraySize, NULL); + + uint16_t p = 1; + bufSprintf[0] = '\n'; + + for (x = 0; x < uxArraySize; x++) { + + sprintf(&bufSprintf[p], "%lu\t%d\t%s\n", + pxTaskStatusArray[x].xTaskNumber, + pxTaskStatusArray[x].usStackHighWaterMark, + pxTaskStatusArray[x].pcTaskName); + + p = strlen(bufSprintf); + + } + + CliCmd_Print(cli, bufSprintf, p); +// LoggerStrInfo(LOGGER, LOG_SIGN, env->bufSprintf, strlen(env->bufSprintf)); + + +} \ No newline at end of file