Example usage of the mbed_stats_thread_get_each API.

Files at this revision

API Documentation at this revision

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

.gitignore Show annotated file Show diff for this revision Revisions of this file
README.md Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
--- /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"]
+}