
Example usage of the mbed_stats_thread_get_each API.
Revision 0:25c062a4a1e6, committed 2018-06-05
- Comitter:
- mbed_official
- Date:
- Tue Jun 05 17:34:32 2018 +0100
- Child:
- 1:730898458807
- Commit message:
- Initial commit.
Commit copied from https://github.com/ARMmbed/mbed-os-example-thread-statistics
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Tue Jun 05 17:34:32 2018 +0100 @@ -0,0 +1,4 @@ +.build +.mbed +projectfiles +*.py*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Tue Jun 05 17:34:32 2018 +0100 @@ -0,0 +1,54 @@ +# Getting started with thread statistics on Mbed OS + +This guide reviews the steps required to get thread statistics on Mbed OS platform. + +Please install [mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). + +## Import the example application + +From the command-line, import the example: + +``` +mbed import mbed-os-example-thread-statistics +cd mbed-os-example-thread-statistics +``` + +### Now compile + +Invoke `mbed compile`, and specify the name of your platform and your favorite toolchain (`GCC_ARM`, `ARM`, `IAR`). For example, for the ARM Compiler 5: + +``` +mbed compile -m K64F -t ARM +``` + +Your PC may take a few minutes to compile your code. At the end, you see the following result: + +``` +[snip] +Elf2Bin: mbed-os-example-thread-statistics ++------------------+-------+-------+------+ +| Module | .text | .data | .bss | ++------------------+-------+-------+------+ +| [lib]\c_w.l | 11473 | 16 | 348 | +| [lib]\cpprt_w.l | 36 | 0 | 0 | +| [lib]\fz_wm.l | 18 | 0 | 0 | +| [lib]\m_wm.l | 48 | 0 | 0 | +| anon$$obj.o | 32 | 0 | 1024 | +| main.o | 196 | 0 | 0 | +| mbed-os\drivers | 130 | 0 | 0 | +| mbed-os\features | 132 | 0 | 304 | +| mbed-os\hal | 1660 | 30 | 64 | +| mbed-os\platform | 3657 | 104 | 604 | +| mbed-os\rtos | 13822 | 2310 | 4592 | +| mbed-os\targets | 9193 | 104 | 324 | +| Subtotals | 40397 | 2564 | 7260 | ++------------------+-------+-------+------+ +Total Static RAM memory (data + bss): 9824 bytes +Total Flash memory (text + data): 42961 bytes +``` + +### Program your board + +1. Connect your Mbed device to the computer over USB. +1. Copy the binary file to the Mbed device. +1. Press the reset button to start the program.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jun 05 17:34:32 2018 +0100 @@ -0,0 +1,24 @@ +#include "mbed.h" + +#if !defined(MBED_THREAD_STATS_ENABLED) +#error "Stats not enabled" +#endif + +#define MAX_THREAD_STATS 0x8 + +int main() +{ + mbed_stats_thread_t *stats = new mbed_stats_thread_t[MAX_THREAD_STATS]; + int count = mbed_stats_thread_get_each(stats, MAX_THREAD_STATS); + + for(int i = 0; i < count; i++) { + printf("ID: 0x%x \n", stats[i].id); + printf("Name: %s \n", stats[i].name); + printf("State: %d \n", stats[i].state); + printf("Priority: %d \n", stats[i].priority); + printf("Stack Size: %d \n", stats[i].stack_size); + printf("Stack Space: %d \n", stats[i].stack_space); + printf("\n"); + } + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Tue Jun 05 17:34:32 2018 +0100 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#5371c107353f20ab79edcbe8a005cb7c0ea9249e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed_app.json Tue Jun 05 17:34:32 2018 +0100 @@ -0,0 +1,3 @@ +{ + "macros": ["MBED_THREAD_STATS_ENABLED"] +}