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