mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
Diff: platform/mbed_stats.h
- Revision:
- 186:707f6e361f3e
- Parent:
- 178:79309dc6340a
--- a/platform/mbed_stats.h Thu Apr 19 17:12:19 2018 +0100 +++ b/platform/mbed_stats.h Fri Jun 22 16:45:37 2018 +0100 @@ -24,11 +24,20 @@ #define MBED_STATS_H #include <stdint.h> #include <stddef.h> +#include "hal/ticker_api.h" #ifdef __cplusplus extern "C" { #endif +#ifdef MBED_ALL_STATS_ENABLED +#define MBED_SYS_STATS_ENABLED 1 +#define MBED_STACK_STATS_ENABLED 1 +#define MBED_CPU_STATS_ENABLED 1 +#define MBED_HEAP_STATS_ENABLED 1 +#define MBED_THREAD_STATS_ENABLED 1 +#endif + /** * struct mbed_stats_heap_t definition */ @@ -76,6 +85,71 @@ */ size_t mbed_stats_stack_get_each(mbed_stats_stack_t *stats, size_t count); +/** + * struct mbed_stats_cpu_t definition + */ +typedef struct { + us_timestamp_t uptime; /**< Time since system is up and running */ + us_timestamp_t idle_time; /**< Time spent in idle thread since system is up and running */ + us_timestamp_t sleep_time; /**< Time spent in sleep since system is up and running */ + us_timestamp_t deep_sleep_time; /**< Time spent in deep sleep since system is up and running */ +} mbed_stats_cpu_t; + +/** + * Fill the passed in CPU stat structure with CPU statistics. + * + * @param stats A pointer to the mbed_stats_cpu_t structure to fill + */ +void mbed_stats_cpu_get(mbed_stats_cpu_t *stats); + +/** + * struct mbed_stats_thread_t definition + */ +typedef struct { + uint32_t id; /**< Thread Object Identifier */ + uint32_t state; /**< Thread Object State */ + uint32_t priority; /**< Thread Priority */ + uint32_t stack_size; /**< Thread Stack Size */ + uint32_t stack_space; /**< Thread remaining stack size */ + const char *name; /**< Thread Object name */ +} mbed_stats_thread_t; + +/** + * Fill the passed array of stat structures with the thread stats for each available thread. + * + * @param stats A pointer to an array of mbed_stats_thread_t structures to fill + * @param count The number of mbed_stats_thread_t structures in the provided array + * @return The number of mbed_stats_thread_t structures that have been filled, + * this is equal to the number of threads on the system. + */ +size_t mbed_stats_thread_get_each(mbed_stats_thread_t *stats, size_t count); + +/** + * enum mbed_compiler_id_t definition + */ +typedef enum { + ARM = 1, /**< ARM */ + GCC_ARM, /**< GNU ARM */ + IAR /**< IAR */ +} mbed_compiler_id_t; + +/** + * struct mbed_stats_sys_t definition + */ +typedef struct { + uint32_t os_version; /**< Mbed OS Version (Release only) */ + uint32_t cpu_id; /**< CPUID Register data (Cortex-M only supported) */ + mbed_compiler_id_t compiler_id; /**< Compiler ID \ref mbed_compiler_id_t */ + uint32_t compiler_version; /**< Compiler version */ +} mbed_stats_sys_t; + +/** + * Fill the passed in sys stat structure with system stats. + * + * @param stats A pointer to the mbed_stats_sys_t structure to fill + */ +void mbed_stats_sys_get(mbed_stats_sys_t *stats); + #ifdef __cplusplus } #endif