#pragma once #include "cmsis_os.h" #include "zbasic.h" namespace iflytop { class ZTaskInfo { public: osThreadId Id; }; class SysMgr { private: /* data */ public: ZTaskInfo m_task[30] = {0}; int m_ntask = 0; static SysMgr* ins(); void initedFinished(); void dumpSysInfo(); size_t osGetSysRunTime(); /*********************************************************************************************************************** * HeapMgr * ***********************************************************************************************************************/ size_t osGetMinimumEverFreeHeapSize(); size_t osGetFreeHeapSize(); size_t osGetTotalHeapSize(); size_t osGetFreeSysHeapSize(); /*********************************************************************************************************************** * TaskInfo * ***********************************************************************************************************************/ osThreadId osGetId(int offset); uint32_t osTaskStackRemainingSize(osThreadId id); const char* osTaskName(osThreadId id); void osTaskName(osThreadId id, char* name, int bufsize); void osTaskStackRemainingSize(osThreadId id, uint16_t* remainsize); void osTaskPriority(osThreadId id, uint16_t* priority); void osTaskGetState(osThreadId id, char* state); int32_t getTaskNum(); }; } // namespace iflytop