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.
69 lines
2.5 KiB
69 lines
2.5 KiB
#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
|