diff --git a/Inc/CliCmd.h b/Inc/CliCmd.h index 9e6b2b7..1a38841 100644 --- a/Inc/CliCmd.h +++ b/Inc/CliCmd.h @@ -57,4 +57,6 @@ void CliCmd_RxSkip(tCliCmd *cli, size_t len); // 1 если STR присутствует первым блоком в cli->data #define CliCmd_RxStartsWithStatic(CLI, STR) CliCmd_RxStartsWith(CLI,(STR),sizeof(STR) - 1) +void vTaskGetRunTime(void *env, tCliCmd *cli); + #endif //UVEOS_ON_NATION_CLICMD_H diff --git a/Src/TasksInfo.c b/Src/TasksInfo.c new file mode 100644 index 0000000..e4889dd --- /dev/null +++ b/Src/TasksInfo.c @@ -0,0 +1,40 @@ +// +// Created by cfif on 17.12.2024. +// +#include +#include +#include "CliRedirectTable.h" +#include "CmsisRtosThreadUtils.h" + +char bufSprintf[1024]; + +void vTaskGetRunTime(void *env, tCliCmd *cli) { + + volatile UBaseType_t uxArraySize, x; + + 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