You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#pragma once
#include "cmsis_os.h"
#include "stm32basic/stm32basic.hpp"
namespace iflytop { class ZTaskInfo { public: osThreadId Id; };
typedef enum { kreset_reason_pinrst = 1, // NRST引脚复位
kreset_reason_porrst = 2, // 上电掉电复位
kreset_reason_sftrst = 3, // 软件复位
kreset_reason_iwdgrst = 4, // 独立看门狗复位
kreset_reason_wwdgrst = 5, // 窗口看门狗复位
kreset_reason_lpwrrst = 6, // 低功耗复位
kreset_reason_unkown = 7, //
} reset_reason_t;
class SysMgr { private: /* data */
public: ZTaskInfo m_task[30] = {0}; int m_ntask = 0; reset_reason_t m_reset_reason = kreset_reason_unkown;
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();
/***********************************************************************************************************************
* CHIP * ***********************************************************************************************************************/ reset_reason_t chipGetResetReason() { return m_reset_reason; }
private: void checkRst(void); };
} // namespace iflytop
|